Wlasny program do sterowania silnikiem

Rozmowy dotyczące oprogramowania sterującego maszynami CNC i sterowników CNC obrabiarek numerycznych

Autor tematu
pjb
Nowy użytkownik, używaj wyszukiwarki
Nowy użytkownik, używaj wyszukiwarki
Posty w temacie: 1
Posty: 3
Rejestracja: 30 mar 2009, 15:45
Lokalizacja: Krakow

Wlasny program do sterowania silnikiem

#1

Post napisał: pjb » 30 mar 2009, 15:57

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



Tagi:


jarekk
ELITA FORUM (min. 1000)
ELITA FORUM (min. 1000)
Posty w temacie: 2
Posty: 1701
Rejestracja: 17 mar 2006, 08:57
Lokalizacja: Gdańsk

#2

Post napisał: jarekk » 30 mar 2009, 16:30

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....


Leoo
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 1
Posty: 4017
Rejestracja: 15 lis 2006, 22:01
Lokalizacja: Tarnobrzeg

#3

Post napisał: Leoo » 30 mar 2009, 19:51

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.


jarekk
ELITA FORUM (min. 1000)
ELITA FORUM (min. 1000)
Posty w temacie: 2
Posty: 1701
Rejestracja: 17 mar 2006, 08:57
Lokalizacja: Gdańsk

#4

Post napisał: jarekk » 30 mar 2009, 21:25

Pojedynczy ARM pociągnie 50..100kHz dla 4 osi. Sprawdziłem osobiście.


lisow1
Specjalista poziom 1 (min. 100)
Specjalista poziom 1 (min. 100)
Posty w temacie: 1
Posty: 295
Rejestracja: 02 gru 2004, 23:51
Lokalizacja: polska

#5

Post napisał: lisow1 » 30 mar 2009, 22:07

spróbuj pod dosem!

Awatar użytkownika

markcomp77
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 1
Posty: 3975
Rejestracja: 18 wrz 2004, 12:51
Lokalizacja: k/w-wy
Kontakt:

#6

Post napisał: markcomp77 » 30 mar 2009, 23:04

jest jeszcze realny RealTime pod linuksem... i gotowe rozwiązanie do zastosowania -> EMC2, hal...
wszystko udokumentowane... otwarte...

[ Dodano: 2009-03-30, 23:09 ]
pjb pisze:trzeba generowac impuls na LPT co 10 milisekund
w EMC2 te 10us będzie zależeć od zdolności sprzętu...
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

ODPOWIEDZ Poprzedni tematNastępny temat

Wróć do „Ogólne Dyskusje na Temat Systemów Sterowania CNC”