Własny program sterujący
-
Autor tematu - Nowy użytkownik, używaj wyszukiwarki
- Posty w temacie: 1
- Posty: 5
- Rejestracja: 26 mar 2006, 20:41
- Lokalizacja: Gdynia
Własny program sterujący
Witam szanownych forumowiczów!
Chciałbym sam napisać swój własny program do sterowania frezarką CNC. Chciałbym znać opinie ludzi, którzy coś takiego mają już za sobą. Na jakiego typu problemy mogę napotkać podczas pisania takiego programu?
Chciałbym sam napisać swój własny program do sterowania frezarką CNC. Chciałbym znać opinie ludzi, którzy coś takiego mają już za sobą. Na jakiego typu problemy mogę napotkać podczas pisania takiego programu?
Tagi:
-
- Czytelnik forum poziom 2 (min. 20)
- Posty w temacie: 2
- Posty: 23
- Rejestracja: 22 lip 2005, 23:39
- Lokalizacja: pl
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.
-
- ELITA FORUM (min. 1000)
- Posty w temacie: 4
- Posty: 1701
- Rejestracja: 17 mar 2006, 08:57
- Lokalizacja: Gdańsk
Sterownik to może załatwić. Trzeba tylko jak najniżej podpiąć się pod przerwania zegarowe, na najniższy ring. Wtedy będziesz miał rozwiązanie podobne do Macha. Jest to łatwe w Linuxie (aczkolwiek nieco zawodne gdyż niektóre drivery wyłączają przerwania na długo
), w Windowsach trzeba się napracować (drajwer jest bardziej skomplikowany), ale dobrze zrobiony ma większą szansę na równą pracę (w Windowsach nieco trudniej jest zblokować na sztywno przerwania na tak niskim poziomie, raczej używa się spin-lock'ów)

-
- Specjalista poziom 1 (min. 100)
- Posty w temacie: 4
- Posty: 254
- Rejestracja: 19 lis 2005, 16:17
- Lokalizacja: Siedlce
- Kontakt:
No niektórzy to już nawet LPT nie mają
tylko USb i FireWire
.
A g-cody i tak trzeba przekształcać na kroki...
Odnosnie pamieci to jak długie G-cody się wykonuje przy amatroskich CNC ?
Czy np. 512kB pamięci nie wystarczy ? A wrazie czego pzostaje jeszcze jedno wyjscie:
Plik z kodem do obróbki dzieli mi program na PC na kawałki na jakie mi pozwala pamięć przy procku. Ładuje kawałek, wykonuje, pow ykonaniu mikrokontroler wysyła że chce następny... itd. Jedyna niedogodnosć to przerwy w obróbce na czas załadowania do pamięci kolejnej porcji danych... Pzdr!


A g-cody i tak trzeba przekształcać na kroki...
Odnosnie pamieci to jak długie G-cody się wykonuje przy amatroskich CNC ?
Czy np. 512kB pamięci nie wystarczy ? A wrazie czego pzostaje jeszcze jedno wyjscie:
Plik z kodem do obróbki dzieli mi program na PC na kawałki na jakie mi pozwala pamięć przy procku. Ładuje kawałek, wykonuje, pow ykonaniu mikrokontroler wysyła że chce następny... itd. Jedyna niedogodnosć to przerwy w obróbce na czas załadowania do pamięci kolejnej porcji danych... Pzdr!
-
- ELITA FORUM (min. 1000)
- Posty w temacie: 3
- Posty: 1121
- Rejestracja: 13 kwie 2006, 02:59
- Lokalizacja: planeta ziemia
czy jesli maszyna bedzie pobierac program z wlasnej pamieci to czy mozna meic kontrole manualna nad tym co sie dzieje? mam na mysli np. nowy program ktory moze byc popaprany i trzeba np. zmniejszyc posow lub chece wystartowac od danej linii programu.
czy takie rozwiazanie w dalszym rozbudowywaniu (dodawanie dodatkowych opcji) nie prowadzi do tego ze na maszynie w koncu znajdzie sie kompletny uklad sterujacy a w rezultacie wrocimy do punktu gdzie jestesmy teraz?
czy takie rozwiazanie w dalszym rozbudowywaniu (dodawanie dodatkowych opcji) nie prowadzi do tego ze na maszynie w koncu znajdzie sie kompletny uklad sterujacy a w rezultacie wrocimy do punktu gdzie jestesmy teraz?
POZDRAWIAM
-
- ELITA FORUM (min. 1000)
- Posty w temacie: 3
- Posty: 1121
- Rejestracja: 13 kwie 2006, 02:59
- Lokalizacja: planeta ziemia