#20
Post
napisał: Piotr Rakowski » 29 sie 2006, 23:28
Problem gubienia kroków nie jest jedynie problemem konstrukcji i sterowania (co już było poruszane), a przede wszystkim oprogramowania. I wbrew pozorom nie prędkości pracy komputera. Do mojej maszyny (silniki 1.89, sterowniki 4.2A M542, duża i względnie ciężka rama) mam podłączony bardzo stary komputer PII 266 MHz + Win95. I zabawa jest taka: zawsze, gdy nie jestem pewien zgubionych, bądź nie, kroków zaczynam sterowanie pod DOSem w TurboCNC. To jest program, który jest najlepiej napisanym programem sterującym spośród tych, które są względnie darmowe (czyli np. shareware).
Jak wiecie trochę programuję, sam piszę program sterujący i wiem jak taki program nie powinien pracować. Otóż niektóre programy, np. KCam, moim zdaniem nie przełączają portu LPT na pracę w trybie SPP. Co więcej, sterownik portu nie stara się go "przejąć na wyłączność".
Nie staram się także pracować w Windows powyżej 98. Teoretycznie można wywłaszczyć port LPT, ale mam dziwne wrażenie że windowsy nadal go "pingują", starając się sprawdzić "jakby" jego istnienie.
Na mojej maszynie bez problemu uzyskuję 1m/min bez żadnego gubiebnia kroków (mam ustawiony skok 400 kroków/1mm), choć powiedzmy sobie szczerze mnie się także wydaje, że te silniki są tylko teoretycznie 1.89 NM. Ważne jest, by sterownik rzeczywiście dawał te 3A na wyjściu.
Teraz sprawa Macha i tego typu programów pod Windows. Z programistycznego punktu widzenia sterowanie silnikami (wysyłanie sygnałów do portów) i wyświetlanie pozycji XYZ na ekranie to dwa oddzielne procesy - z resztą jeden zakłóca pracę drugiego. W Machu zrealizowane jest to za pomocą dwóch oddzielnych wątków. Jeden steruje, drugi wyświetla. Ale ponieważ w "tle" windozy zawsze jeszcze chcodzą jakieś procesy (choćby systemowe) co pewien czas jeden z tych procesów może być zakłócony przez inny. A do tego musicie wiedzieć, że pracę może spowolnić marna karta graficzna (tak, tak..). Wyświetlanie wartości XYZ w takim okienku, jak pokazuje to Mach zabiera sporo czasu procesora i jeśli jeszcze tzw. zasoby kontrolki wyświetlającej są zbyt rozbudowane (pamięciożerne) - wyświetlanie pracuje strasznie wolno. Wtedy właśnie może występować gubienie kroków. Radą może być wyłączenie podglądu w Machu lub użycie szybszego komputera.
Sprawę ciekawie ominął kolega "Korinsj" w swoim programie. Sterowanie jest jednym procesem, a wyświelanie pozycji XYZ nie jest procesem oddzielnym, a raczej siedzi na timerze systemowym (przerwaniu) i pozycja na ekranie jest "updatowana" co np. 250 ms. Powoduje to takie śmieszne "pukanie maszyny" w momencie pingu timera, ale komputer nie gubi wysyłania kroków.
Dlatego też ludzie, którzy robią maszyny na sprzedaż, np. "PiotrJub" korzystają z rozwiązań opartych na sterowaniu mikroporcesorowym, polegającym na buforowaniu wysyłanych danych. Program sterujący wysyła procesorowi paczkę ruchów do wykonania, a sam zajmuje się jedynie wyświetlaniem stanu aktualnego na ekranie pobierając (a nie wysyłając) dane z mikroprocesora sterującego. Dodatkowo to sterownik zajmuje się sprawdzaniem stanu krańcówek, wyłącznika awaryjnego etc.
POSTULAT DO ELEKTONIKÓW NA FORUM: Zróbcie taki sterownik - ja napiszę do niego oprogramowanie i problem gubienia kroków przestanie istnieć!
Maszyny i oprogramowanie CNC: eduCAD, STEP2CNC, LynxCUT, Styro3D, Tapper, cncCAD, Image2CAM, Turn3D, TERMCUT, LynxNEST (Nesting)