Interpreter GCode
-
Autor tematu - Nowy użytkownik, używaj wyszukiwarki
- Posty w temacie: 1
- Posty: 5
- Rejestracja: 12 paź 2006, 19:16
- Lokalizacja: Tarnów
Interpreter GCode
Witam. Jestem w trakcie konstruowania frezarki.
Wymyśliłem sobie (wiem, głupio sobie wymyśliłem), że nie ma sensu, aby każdym krokiem silnika z osobna sterował PC przez port lpt (tak, jak to robi np. Mach2), więc do elektroniki maszyny dołączyłem mikrokontroler (AVR). Chodzi mi o to, aby maszyna była bardziej "inteligentna", i aby odciążyć PC przejmując część najprostszych zadań.
Ten mikrokontroler komunikuje się z PC przez rs232 (port szeregowy). Na chwilę obecną oprogramowany jest tak, że przyjmuje od PC 3 liczby i przesuwa 3 silniki o zadaną liczbę kroków (czyli właściwie - przyjmuje wektor przesunięcia i przesuwa silniki o taką wartość). Nie ma problemu, aby ten program zmodyfikować, dodać kilka dodatkowych komend, przyjmować dane w innej postaci i tak dalej - ale raczej nie będzie to interpretacja GCode (po 1. nie czuję się na siłach pisania interpretera języka, którego praktycznie nie znam, po 2. chyba przekracza to możliwości mikrokontrolera).
W związku z tym mam pytania:
1. Czy jest jakiś program, który przyjmuje GCode, a wyrzuca... coś prostszego? Na przykład listę wektorów przesunięć ?
2. Przyznaję, że oprócz Mach-a nie sprawdzałem innych programów - czy któryś z nich potrafi sterować maszynę inaczej, niż sterując każdym krokiem przez lpt ?
Wymyśliłem sobie (wiem, głupio sobie wymyśliłem), że nie ma sensu, aby każdym krokiem silnika z osobna sterował PC przez port lpt (tak, jak to robi np. Mach2), więc do elektroniki maszyny dołączyłem mikrokontroler (AVR). Chodzi mi o to, aby maszyna była bardziej "inteligentna", i aby odciążyć PC przejmując część najprostszych zadań.
Ten mikrokontroler komunikuje się z PC przez rs232 (port szeregowy). Na chwilę obecną oprogramowany jest tak, że przyjmuje od PC 3 liczby i przesuwa 3 silniki o zadaną liczbę kroków (czyli właściwie - przyjmuje wektor przesunięcia i przesuwa silniki o taką wartość). Nie ma problemu, aby ten program zmodyfikować, dodać kilka dodatkowych komend, przyjmować dane w innej postaci i tak dalej - ale raczej nie będzie to interpretacja GCode (po 1. nie czuję się na siłach pisania interpretera języka, którego praktycznie nie znam, po 2. chyba przekracza to możliwości mikrokontrolera).
W związku z tym mam pytania:
1. Czy jest jakiś program, który przyjmuje GCode, a wyrzuca... coś prostszego? Na przykład listę wektorów przesunięć ?
2. Przyznaję, że oprócz Mach-a nie sprawdzałem innych programów - czy któryś z nich potrafi sterować maszynę inaczej, niż sterując każdym krokiem przez lpt ?
Tagi:
-
- Specjalista poziom 3 (min. 600)
- Posty w temacie: 3
- Posty: 989
- Rejestracja: 01 sty 2005, 17:48
- Lokalizacja: Bełchatów
- Kontakt:
Witam wlasnie opracowalem bardzo podobny projekt tylko ze u mnie dane sa przesylane przez USB jestem w trakcie pisania reszty oprogramowania. Ale nie wiem w czym masz problem jezeli masz juz g-code a musisz go miec bo tak jest latwiej pozatym wszystkie maszyny dzialaja wedlug niego wiec co za problem policzyc z kazdeli jego lini wektor przesuniecia ? i wysylac to po kolei do procesora ? i jeszcze jedno napisales algorytm do sterowania 2.5D czy do 3D ?
Pozdrawiam PlotComplex.com
-
- Specjalista poziom 3 (min. 600)
- Posty w temacie: 3
- Posty: 989
- Rejestracja: 01 sty 2005, 17:48
- Lokalizacja: Bełchatów
- Kontakt:
z LPT to wychodza konkretne impulsy dla kazdego sterownika po 2 impulsy step (krok) i dir( kierunek) + dla wszystkich entable( wlaczenie silnika) i tak dla kazdej osi czylimisiekagh pisze:glownie interesuja mnie sygnaly jakie wychodza z LPT i ich funkcje.
No i ten g-code ;/.
2 step x
3 dir x
4 step y
5 dir y
6 step z
7 dir z
17 entable
to jakie najbardziej powszechny rozklad sygnalow poczytaj na forum jest duzo informacji na temat sygnalow z pt.
opis g-code tez znajdziesz na forum
Pozdrawiam PlotComplex.com
-
- Czytelnik forum poziom 3 (min. 30)
- Posty w temacie: 4
- Posty: 33
- Rejestracja: 17 maja 2007, 21:53
- Lokalizacja: Sandomierz
Dzieki wielkie za wskazowki. Mam jeszcze pytanie co do mikrokroku. Czy jest on wystawiany tez na STEP z ta roznica ze jak chcemy wykonac krok to robimy kilka mikrokrokow?
Po co sa wlasciwie te mikrokroki?By poprawic rozdzielczosc?
W jakim celu jest ENABLE kiedy krokowce nie beda dzialac jak im nie damy step?
Tak na dobra sprawe to moj mikrokontroler musi tylko wykonywac kolejno zadane kroki zgodnie lub przeciwnie do ruchu wskazowek zegara z duza szybkoscia?
A co z czujnikami krancowymi? Wymiary powierzchni ktora obrabiamy ustawia sie w programie wykonawczym a moze podczas projektowania obiektu?
Z gory przepraszam jesli to co napisalem to totalna glupota.
Po co sa wlasciwie te mikrokroki?By poprawic rozdzielczosc?
W jakim celu jest ENABLE kiedy krokowce nie beda dzialac jak im nie damy step?
Tak na dobra sprawe to moj mikrokontroler musi tylko wykonywac kolejno zadane kroki zgodnie lub przeciwnie do ruchu wskazowek zegara z duza szybkoscia?
A co z czujnikami krancowymi? Wymiary powierzchni ktora obrabiamy ustawia sie w programie wykonawczym a moze podczas projektowania obiektu?
Z gory przepraszam jesli to co napisalem to totalna glupota.
-
- Lider FORUM (min. 2000)
- Posty w temacie: 2
- Posty: 3975
- Rejestracja: 18 wrz 2004, 12:51
- Lokalizacja: k/w-wy
- Kontakt:
tak - np. mikrokrok 1/128... lub po prostu krok 1/128 - to podział każdego kroku na 128 kroczków malutkichmisiekagh pisze:Mam jeszcze pytanie co do mikrokroku. Czy jest on wystawiany tez na STEP z ta różnicą ze jak chcemy wykonać krok to robimy kilka mikrokrokow?
do pewnych granic podziału kroku - poprawa rozdzielczości jest możliwa przez stosowaniu mikrokroku...misiekagh pisze:Po co są właściwie te mikrokroki?By poprawić rozdzielczość?
jednak dokładność ustalenia pozycji typowego silnika - to ok. 5%
więc => stosowanie ukroku mniejszego niż 1/20 niema sensu ze względu na rozdzielczość... po wielkość uKroku 1/20 jest porównywalna z wartością błędu ustalenia pozycji
jednak - stosując malutkie kroczki... silnik przekazuję do układu mechanicznego energię mniejszymi porcjami, a to oznacza bardziej płynną pracę i mniejszą podatność na rezonanse - czyli wyższą kulturę pracy!
podczas normalnego cyklu pracy - enable nie jest potrzebne...misiekagh pisze:W jakim celu jest ENABLE kiedy krokowce nie będą działać jak im nie damy step?
przydaje się po to aby uwolnić silniki od momentu trzymającego
to Musisz oszacować!Tak na dobra sprawe to mój mikrokontroler musi tylko wykonywać kolejno zadane kroki zgodnie lub przeciwnie do ruchu wskazówek zegara z duża szybkoscia?
raczej z dużą jeśli maiłaby stosować bardzo rzadki mikrokrok (>100KHz np. mogło by się przydać na linii step... a nawet 200KHz)
krańcówki - to ostatnia linia obrony maszyny przed kolizjami na końcach osimisiekagh pisze:A co z czujnikami krancowymi? Wymiary powierzchni ktora obrabiamy ustawia sie w programie wykonawczym a moze podczas projektowania obiektu?
natomiast setup - i soft limity nie zawsze zadziałają jak trzeba...
SpotkanieCNC: STOM-TOOL Marzec 2014
http://www.cnc.info.pl/topics79/spotkan ... t55028.htm
http://www.cnc.info.pl/topics79/spotkan ... t55028.htm
-
- Czytelnik forum poziom 3 (min. 30)
- Posty w temacie: 4
- Posty: 33
- Rejestracja: 17 maja 2007, 21:53
- Lokalizacja: Sandomierz
Dziekuje markcomp77 za odpowiedzi.
Mam jeszcze kilka pytan:
1. Jak wyglada transmisja typowych programow cnc ze sprzetem poprzez zlacze USB lub RS-232?
Wiesz moze gdzie taki opis transmisji mozna znalezc? Mi sie niestety nie udalo .
2. Czy jest jakokolwiek sens stosowania przejsciowki USB->LPT skoro to nie przyspiesza transmisji?
Jak taka przejsciowka wykrywana jest w systemia? Jako LPT?
Zastanawiam sie nad zastosowaniem USB ze wzgledu na brak LPT w nowych komputerach oraz na szybkosc transmisji i estetyke wykonania(lepszy sterownik na zlaczu USB niz jakas przejsciowka).
Najpierw zrobie na LPT.
3. Na ktore nozki nalezy podlaczyc czujniki krancowe do zlacza LPT? Sa jakies ustalone czy wybiera sie w programie? Moge do dowolnych nozek czy niektore sa "na sztywno" zarezerwowane dla czegos innego.
4. Czy dobrym rozwiazaniem jest zastosowac czujniki krancowe tak aby wrzeciono nigdy nie dojechalo do konca materialu? Taki margines jak w drukarce.
Przpraszam za off-top
Pozdrawiam.
Mam jeszcze kilka pytan:
1. Jak wyglada transmisja typowych programow cnc ze sprzetem poprzez zlacze USB lub RS-232?
Wiesz moze gdzie taki opis transmisji mozna znalezc? Mi sie niestety nie udalo .
2. Czy jest jakokolwiek sens stosowania przejsciowki USB->LPT skoro to nie przyspiesza transmisji?
Jak taka przejsciowka wykrywana jest w systemia? Jako LPT?
Zastanawiam sie nad zastosowaniem USB ze wzgledu na brak LPT w nowych komputerach oraz na szybkosc transmisji i estetyke wykonania(lepszy sterownik na zlaczu USB niz jakas przejsciowka).
Najpierw zrobie na LPT.
3. Na ktore nozki nalezy podlaczyc czujniki krancowe do zlacza LPT? Sa jakies ustalone czy wybiera sie w programie? Moge do dowolnych nozek czy niektore sa "na sztywno" zarezerwowane dla czegos innego.
4. Czy dobrym rozwiazaniem jest zastosowac czujniki krancowe tak aby wrzeciono nigdy nie dojechalo do konca materialu? Taki margines jak w drukarce.
Przpraszam za off-top
Pozdrawiam.
-
- Lider FORUM (min. 2000)
- Posty w temacie: 2
- Posty: 3975
- Rejestracja: 18 wrz 2004, 12:51
- Lokalizacja: k/w-wy
- Kontakt:
ja uważam za typowe te programy które zawiadują maszyną za pomocą LPTmisiekagh pisze:1. Jak wyglada transmisja typowych programow cnc ze sprzetem poprzez zlacze USB lub RS-232?
a z LPT idzie bezpośrednie sterowanie sygnałami...
STEP/DIR osi X - to np. pin 2,3 w/g db25
itd...
protokołu szeregowe programów CNC... są zazwyczaj komercyjnie utajnione
zazwyczaj...
mi również się nie udało...misiekagh pisze:Wiesz moze gdzie taki opis transmisji mozna znalezc? Mi sie niestety nie udalo
może wtedy - kiedy brak innej możliwości...misiekagh pisze:2. Czy jest jakokolwiek sens stosowania przejsciowki USB->LPT skoro to nie przyspiesza transmisji?
takmisiekagh pisze:Jak taka przejsciowka wykrywana jest w systemia? Jako LPT?
szybkość - jeśli LPT ma sterować STEP/DIR jest oganiczona zdolnością komputera do precyzyjnego ustalnia interwałów czasowych... z tym w PC jest dość kiepsko...misiekagh pisze:Zastanawiam sie nad zastosowaniem USB ze wzgledu na brak LPT w nowych komputerach oraz na szybkosc transmisji i estetyke wykonania(lepszy sterownik na zlaczu USB niz jakas przejsciowka).
Najpierw zrobie na LPT.
to nawet nie chodzi o system wielozdaniomy, a często o realizację sprzętową płyty gównej (czasami procesora i systemów dynamicznej zmiany szybości)
nieważne co jest przyczyną!!
skutek jest taki, iż dla wielu PCetów problemem jest ustalenie impulsu długości 10us w sposób powtarzalny
i nie o szybość tu chodzi, a o tzw. Średnie Maksymalne Opóżnienie
jeśli ŚMO jest większe niż 10us - to niema gawarancji, że ustaiony w programie czas trwania impulsu step 10us na tym komputerze będzie zawsze miał 10us... czasami będzie miał 0us!!, a czasami 20us!!
sorry - to taka dygresja wynikająca z analizy jaką ostanio przeprowadzam...
w programach takich jak mach, turbocnc, emc2 - ustawienia są dowolnemisiekagh pisze:3. Na ktore nozki nalezy podlaczyc czujniki krancowe do zlacza LPT? Sa jakies ustalone czy wybiera sie w programie? Moge do dowolnych nozek czy niektore sa "na sztywno" zarezerwowane dla czegos innego.
są pewne tradycje... są domyślne nastawy...
są oczywiście również programy "na sztywno" przypisane do określonych pinów grafcnc np...
raczej krańcowka zabezpiecza przed rozwaleniem maszyny.... nie koniec materału jest badany, a koniec prowadnicy... to zabezpeiczenie przed kolizją!!!misiekagh pisze:4. Czy dobrym rozwiazaniem jest zastosowac czujniki krancowe tak aby wrzeciono nigdy nie dojechalo do konca materialu? Taki margines jak w drukarce.
SpotkanieCNC: STOM-TOOL Marzec 2014
http://www.cnc.info.pl/topics79/spotkan ... t55028.htm
http://www.cnc.info.pl/topics79/spotkan ... t55028.htm