Strona 1 z 1

Koncepcja sterowania

: 31 mar 2009, 14:14
autor: Prospero007
Witam
Jestem nowy na forum ... i właśnie zaczynam tak jak zapewne wielu z was od budowy swojej pierwsze maszyny cnc, i w końcu doszedłem do etapu tworzenia sterownika. Przetestowałem sobie już parę silniczków krokowych na sterowniku l287 i l298 (do testów zaprogramowałem sobie Atmege 32 na mojej płytce testowej i napisałem malutki program w gccu) i zacząłem się zastanawiać nad wyższa warstwą sterowania.
Oczywiści w typowych rozwiązaniach należało by użyć portu LPT i sprawa załatwiona ale ja takiego w swoim komputerze nie posiadam. Wiem ze są rozwiązania typu Smooth Stepper ale to rozwiązanie mi nie odpowiada.Mam inni pomysł lecz nie wiem czy jest on do zrealizowania, mianowice - chciałbym zrobić sterownik do osi XYZ i komunikować się z kompem za pomocą protokołu modbus, zaś na komputerze miał bym zainstalowany program Macha3 który ten protokół obsługuje.Tyle ze nie jestem pewnie czy obsługuje również obsługę osi XYZ ... Na stronach internetowych znalazłem jedynie obsługę urządzeń dodatkowych jak np tu: http://www.machsupport.com/videos.php lub tu: http://www.henriksplace.se/CNC/CNC_Mach3_modbus_1.html ale skoro twórcy Macha udostępnili SDK - można by samemu coś pokombinować i wtedy oczywiści należało by określić przeznaczenie poszczególnych rejestrów w sterowniku i de facto stworzyć własny standard. Jakie jest Wasze zdanie na ten temat?

: 31 mar 2009, 15:05
autor: k-m-r1

: 31 mar 2009, 16:50
autor: jarekk
Modbus kiepsko nadaje się do obsługi ruchu - no bo trzeba przewalić naprawdę dużo danych do trajketorii ruchu ( a struktura rejestrowa Modbusa jest raczej do mniejszej objętosciowo komunikacji).

Moim zdaniem tak się da zrobić tylko bardzo proste sterownie któe nie obsługuje przyspieszeń/hamowań w ruchu.

: 01 kwie 2009, 00:37
autor: Prospero007
Zgadzam się z powyższym ale taka sytuacja ma miejsce w przypadku gdy przesyłamy dane do rejestrów dosłownie krok po kroku - czy może chodziło jeszcze o coś innego? Myślałem o tym żeby mój sterownik był na tyle autonomiczny aby sam sterował pojedynczymi krokami silników krokowych a program sterujący przesyłał by mu tylko kolejne instrukcje przemieszczenie wrzeciona na daną pozycje... w praktyce należano by utworzyć szereg rejestrów zawierających takie dane jak np:

Zmienne tylko do odczytu
0 [numer instrukcji]
1 [flaga wykonania instrukcji]
2 [pozycja początkowa X]
3 [pozycja początkowa Y]
4 [pozycja początkowa Z] - jeżeli instrukcja została wykonana pozycje korcowe zajmują miejsce funkcji początkowych (przy założeniu ze realizowane jest programowanie przyrostowe)

Zmienne do odczytu i do zapisu
0 [rodzaj interpolacji] np. 0 - obsługa jednej osi,1-interpolacja liniowa, interpolacja kołowa
1 [Stop]
2 [Reset]
3 [pozycja końcowa X] - pozycje podane w jednostkach kroków na jedną oś dla uproszczeniu obliczeń.
4 [pozycja końcowa Y]
5 [pozycja końcowa Z]
.. pozostałe zmienne potrzebne do obsługi poszczególnych rodzajów interpolacji

Tak więc sterownik realizował by interpolacje kołową i liniową 2D.

Na komputerze trzeba by w takim wypadku zaprogramować funkcje konwersji z G-kodu na mój protokół.

: 01 kwie 2009, 10:01
autor: jarekk
Tak się też da - masz na pokładzie zmiennoprzecinkowy procesor sygnałowy ? I dużo pamięci aby przeliczyć kilka kroków do przodu ?

Mam taki soft i sterownik, ale większosć przeliczeń jest na PC - do procka idą wstępnie przygotowane wektory ruchu ( już stałoprzecinkowe, przeliczenia były robione na całym pliku).

Rada od kogos kto tę drogę przeszedł - zrób taki soft na PC. Niech na początku tylko wyswietla scieżkę - wtedy będziesz miał pojęcie ile trzeba mocy procka aby to wszystko działało.

: 02 kwie 2009, 22:52
autor: muskiel
Witam,

Kolega jarekk ma racje.

Cytat z machsupport:
A Modbus device is the preferred way of expanding input/output capability for signals which are not time-critical.
Modbus zostal przewidziany w Mach3 dla obslugi np. PLC (I/O)

pzdr
Piotr