Witam
Pisze swoj program do sterowania silnikiem krokowym, ale powyzej predkosci 100 krokow/sek silnik sie zacina, gubi kroki itd. Podejrzewam gdzie tkwi problem tylko nie umiem go obejsc. Jak policzylem przy predkosci 100krokow/sek trzeba generowac impuls na LPT co 10 milisekund, tymczasem windows przelacza sterowanie miedzy aplikacjami z ta wlasnie czestotliwoscia, co oznacza, ze wiekszej dokladnosci sterowania impulsami w prosty sposob nie osiagne, silnik otrzymuje nieregularne impulsy przez co rozjezdza sie faza w jakiej sie sam znajduje z przychodzacymi impulsami.
Nie wie ktos jak to obejsc? Zwiekszyc w windows czestotliwosc przelaczania procesora miedzy aplikacjami? Wrzucac dane na port nie poprzez pojedyncze instrukcje zapisu do portu, tylko jakims buforem, ustawic predkosc transmisji i niech hardware pilnuje odstepow czasowych? Podejrzewam, ze sposob drugi bedzie dobry, moze ma ktos kawalek kodu ktory to robi? Wszedzie znalazlem tylko setki przykladow z zapisywaniem na port pojedynczych bajtow.
PB
Wlasny program do sterowania silnikiem
-
- ELITA FORUM (min. 1000)
- Posty w temacie: 2
- Posty: 1701
- Rejestracja: 17 mar 2006, 08:57
- Lokalizacja: Gdańsk
Niewielu potrafi.
Rozwiązaniem dobrym jest własny driver do Windows ( będzie buforował dane i sam je wysyłał). Tak działa Mach.
Ale to już bardzo wysoka pólka jeżeli chodzi o stopień skomplikowania.
Nieco pomaga ustawienie dla aplikacji wysokiego priorytetu ( typu real-time) i odmierzanie impulsów licznikami z procka.
Najprociej mały zewnętrzny procesorek po USB....
Rozwiązaniem dobrym jest własny driver do Windows ( będzie buforował dane i sam je wysyłał). Tak działa Mach.
Ale to już bardzo wysoka pólka jeżeli chodzi o stopień skomplikowania.
Nieco pomaga ustawienie dla aplikacji wysokiego priorytetu ( typu real-time) i odmierzanie impulsów licznikami z procka.
Najprociej mały zewnętrzny procesorek po USB....
-
- Lider FORUM (min. 2000)
- Posty w temacie: 1
- Posty: 4017
- Rejestracja: 15 lis 2006, 22:01
- Lokalizacja: Tarnobrzeg
Przechodziłem podobny etap.
Borland C++, port LPT i szukanie po sieci komponentów do szybkiej obsługi.
Na szczęście projekt szybko porzuciłem.
Kolega ściągnie sobie TurboCNC albo kupi STEP2CNC i sprawa załatwiona. Zaoszczędzony czas można poświęcić budowie czegoś bardziej materialnego.
Znacznie szybciej Kolega zbuduje sterowanie na własnej platformie. Istnieją wysokowydajne i tanie procesory np. ARM.
Borland C++, port LPT i szukanie po sieci komponentów do szybkiej obsługi.
Na szczęście projekt szybko porzuciłem.
Kolega ściągnie sobie TurboCNC albo kupi STEP2CNC i sprawa załatwiona. Zaoszczędzony czas można poświęcić budowie czegoś bardziej materialnego.
Znacznie szybciej Kolega zbuduje sterowanie na własnej platformie. Istnieją wysokowydajne i tanie procesory np. ARM.
-
- Lider FORUM (min. 2000)
- Posty w temacie: 1
- Posty: 3962
- Rejestracja: 18 wrz 2004, 12:51
- Lokalizacja: k/w-wy
- Kontakt:
jest jeszcze realny RealTime pod linuksem... i gotowe rozwiązanie do zastosowania -> EMC2, hal...
wszystko udokumentowane... otwarte...
[ Dodano: 2009-03-30, 23:09 ]
na poziomie 10us jest niepewność czasowa dobrze dobranego PCeta - zmierzone w rtai...
często jednak - to poziom 60us... a czasem i więcej
wszystko udokumentowane... otwarte...
[ Dodano: 2009-03-30, 23:09 ]
w EMC2 te 10us będzie zależeć od zdolności sprzętu...pjb pisze:trzeba generowac impuls na LPT co 10 milisekund
na poziomie 10us jest niepewność czasowa dobrze dobranego PCeta - zmierzone w rtai...
często jednak - to poziom 60us... a czasem i więcej
SpotkanieCNC: STOM-TOOL Marzec 2014
http://www.cnc.info.pl/topics79/spotkan ... t55028.htm
http://www.cnc.info.pl/topics79/spotkan ... t55028.htm