Interpreter GCode

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

Autor tematu
yakhub
Nowy użytkownik, używaj wyszukiwarki
Nowy użytkownik, używaj wyszukiwarki
Posty w temacie: 1
Posty: 5
Rejestracja: 12 paź 2006, 19:16
Lokalizacja: Tarnów

Interpreter GCode

#1

Post napisał: yakhub » 01 maja 2007, 12:51

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 ?



Tagi:

Awatar użytkownika

webserver
Specjalista poziom 3 (min. 600)
Specjalista poziom 3 (min. 600)
Posty w temacie: 3
Posty: 989
Rejestracja: 01 sty 2005, 17:48
Lokalizacja: Bełchatów
Kontakt:

#2

Post napisał: webserver » 01 maja 2007, 14:53

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


misiekagh
Czytelnik forum poziom 3 (min. 30)
Czytelnik forum poziom 3 (min. 30)
Posty w temacie: 4
Posty: 33
Rejestracja: 17 maja 2007, 21:53
Lokalizacja: Sandomierz

#3

Post napisał: misiekagh » 17 maja 2007, 22:02

Witam.
Pozwolcie ze sie podepne do tematu...
Zaczynam wlasnie tworzyc elektronike do frezarki 3D na mikrokontrolerach i prosilbym o adresy stron z ktorych korzystaliscie.

Dziekuje z gory.
Pozdrawiam.

Awatar użytkownika

webserver
Specjalista poziom 3 (min. 600)
Specjalista poziom 3 (min. 600)
Posty w temacie: 3
Posty: 989
Rejestracja: 01 sty 2005, 17:48
Lokalizacja: Bełchatów
Kontakt:

#4

Post napisał: webserver » 17 maja 2007, 22:44

Niestety ja nie wspieralem sie na zadnych stronach :sad:
Pozdrawiam PlotComplex.com


misiekagh
Czytelnik forum poziom 3 (min. 30)
Czytelnik forum poziom 3 (min. 30)
Posty w temacie: 4
Posty: 33
Rejestracja: 17 maja 2007, 21:53
Lokalizacja: Sandomierz

#5

Post napisał: misiekagh » 17 maja 2007, 23:27

Glownie interesuja mnie sygnaly jakie wychodza z LPT i ich funkcje.
No i ten g-code ;/.

Dzieki za checi ;)

Awatar użytkownika

webserver
Specjalista poziom 3 (min. 600)
Specjalista poziom 3 (min. 600)
Posty w temacie: 3
Posty: 989
Rejestracja: 01 sty 2005, 17:48
Lokalizacja: Bełchatów
Kontakt:

#6

Post napisał: webserver » 17 maja 2007, 23:31

misiekagh pisze:glownie interesuja mnie sygnaly jakie wychodza z LPT i ich funkcje.
No i ten g-code ;/.
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 czyli
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


misiekagh
Czytelnik forum poziom 3 (min. 30)
Czytelnik forum poziom 3 (min. 30)
Posty w temacie: 4
Posty: 33
Rejestracja: 17 maja 2007, 21:53
Lokalizacja: Sandomierz

#7

Post napisał: misiekagh » 18 maja 2007, 00:06

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.

Awatar użytkownika

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

#8

Post napisał: markcomp77 » 18 maja 2007, 23:11

misiekagh 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?
tak - np. mikrokrok 1/128... lub po prostu krok 1/128 - to podział każdego kroku na 128 kroczków malutkich
misiekagh pisze:Po co są właściwie te mikrokroki?By poprawić rozdzielczość?
do pewnych granic podziału kroku - poprawa rozdzielczości jest możliwa przez stosowaniu mikrokroku...
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!
misiekagh pisze:W jakim celu jest ENABLE kiedy krokowce nie będą działać jak im nie damy step?
podczas normalnego cyklu pracy - enable nie jest potrzebne...
przydaje się po to aby uwolnić silniki od momentu trzymającego
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?
to Musisz oszacować!
raczej z dużą jeśli maiłaby stosować bardzo rzadki mikrokrok (>100KHz np. mogło by się przydać na linii step... a nawet 200KHz)
misiekagh pisze:A co z czujnikami krancowymi? Wymiary powierzchni ktora obrabiamy ustawia sie w programie wykonawczym a moze podczas projektowania obiektu?
krańcówki - to ostatnia linia obrony maszyny przed kolizjami na końcach osi
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


misiekagh
Czytelnik forum poziom 3 (min. 30)
Czytelnik forum poziom 3 (min. 30)
Posty w temacie: 4
Posty: 33
Rejestracja: 17 maja 2007, 21:53
Lokalizacja: Sandomierz

#9

Post napisał: misiekagh » 19 maja 2007, 00:51

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

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 :smile:
Pozdrawiam.

Awatar użytkownika

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

#10

Post napisał: markcomp77 » 19 maja 2007, 01:10

misiekagh pisze:1. Jak wyglada transmisja typowych programow cnc ze sprzetem poprzez zlacze USB lub RS-232?
ja uważam za typowe te programy które zawiadują maszyną za pomocą LPT
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...
misiekagh pisze:Wiesz moze gdzie taki opis transmisji mozna znalezc? Mi sie niestety nie udalo
mi również się nie udało...
misiekagh pisze:2. Czy jest jakokolwiek sens stosowania przejsciowki USB->LPT skoro to nie przyspiesza transmisji?
może wtedy - kiedy brak innej możliwości...
misiekagh pisze:Jak taka przejsciowka wykrywana jest w systemia? Jako LPT?
tak
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.
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...
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...
misiekagh 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.
w programach takich jak mach, turbocnc, emc2 - ustawienia są dowolne
są pewne tradycje... są domyślne nastawy...
są oczywiście również programy "na sztywno" przypisane do określonych pinów grafcnc np...
misiekagh pisze:4. Czy dobrym rozwiazaniem jest zastosowac czujniki krancowe tak aby wrzeciono nigdy nie dojechalo do konca materialu? Taki margines jak w drukarce.
raczej krańcowka zabezpiecza przed rozwaleniem maszyny.... nie koniec materału jest badany, a koniec prowadnicy... to zabezpeiczenie przed kolizją!!!
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”