Znaleziono 2 wyniki
Wróć do „Własny program sterujący”
- 21 maja 2006, 16:37
- Forum: Ogólne Dyskusje na Temat Systemów Sterowania CNC
- Temat: Własny program sterujący
- Odpowiedzi: 16
- Odsłony: 4696
Waśnie robiłem testy mojego programu ustawionego na real time. Widać zdecydowaną poprawę teraz na dużych obrotach silnik chodzi znacznie gładziej niż wcześniej. Oczywiście nie jest to idealne rozwiązanie, szarpnięcia czasami zdarzają się ale znacznie, znacznie rzadziej. To tylko na razie prowizoryczne rozwiązanie ale dla mnie jest wystarczające, nie mam jakiś dobrych silników, nie da się ich rozpędzić do bardzo dużych prędkości. Na razie najlepszym rozwiązaniem wydaje się napisanie sterownika. Można by jeszcze sprawdzić ten program pod dosem, tam system jest jednowątkowy dlatego program powinien bez problemu działać i dawać równe impulsy. Tyle że w tym przypadku zrobienie interfejsu dla użytkownika jest trudniejsze.
- 11 maja 2006, 17:06
- Forum: Ogólne Dyskusje na Temat Systemów Sterowania CNC
- Temat: Własny program sterujący
- Odpowiedzi: 16
- Odsłony: 4696
Największy problem mam z wysyłaniem danych na port lpt. Nierówno wysyła impulsy. Sterowałem silnikiem krokowym i np. wysyłałem impulsy co 1 ms to nie zawsze impuls był wysłany co 1 ms i było czuć szarpnięcia na silniku. Jak sprawdzałem dla 100000 impulsów to prawie wszystkie były wysłane dobrze tylko 100 z nich przekroczyło czas 1 ms, w większości przypadków było to coś ok 1,3 ms ale kilka zdarzyło się nawet od 3 do 10 ms i w tych właśnie momentach następowały szarpnięcia silnika, bo nagle zmieniała się jego prędkość. W takich momentach może nastąpić zgubienie kroku przez silnik. Jest to spowodowane tym że w windowsie jest uruchomionych wiele programów system przełącza czas procesora między nimi, dlatego impuls czasami przychodzi mi później. Pomiar czasu realizuję przez pobranie częstotliwości procesora i zliczanie ile wykonał taktów procesor, korzystanie z funkcji winapi tu nie wystarcza. Można by nawet wyeliminować te spóźnienia robiąc oddzielny wątek i ustawiając mu priorytet wysoki albo real time, ale to też nie zbyt eleganckie rozwiązanie. Teraz mam książkę o pisaniu sterowników do windowsa, może pisząc sterownik można wyeliminować ten efekt, może będzie wysyłał impulsy ze stałą częstotliwością. Innym rozwiązaniem tego problemu może być zastosowanie mikroprocesora, po prostu wysyłasz kilka G-kodów do przodu i mikroprocesor powinien bez problemu idealnie sterować silnikiem.
Z tego co patrzyłem to Mach jakoś radzi sobie z tym problemem, wiedziałem że z machem się instaluje sterownik, może w taki sposób należy wykonać taki pogram. Nie wiem czy to sterownik wszystko załatwi, bo nigdy nie pisałem sterowników ale jak przeczytam tą książkę to może się dowiem.
Z tego co patrzyłem to Mach jakoś radzi sobie z tym problemem, wiedziałem że z machem się instaluje sterownik, może w taki sposób należy wykonać taki pogram. Nie wiem czy to sterownik wszystko załatwi, bo nigdy nie pisałem sterowników ale jak przeczytam tą książkę to może się dowiem.