Strona 1 z 1

Interpreter GCode

: 01 maja 2007, 12:51
autor: yakhub
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 ?

: 01 maja 2007, 14:53
autor: webserver
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 ?

: 17 maja 2007, 22:02
autor: misiekagh
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.

: 17 maja 2007, 22:44
autor: webserver
Niestety ja nie wspieralem sie na zadnych stronach :sad:

: 17 maja 2007, 23:27
autor: misiekagh
Glownie interesuja mnie sygnaly jakie wychodza z LPT i ich funkcje.
No i ten g-code ;/.

Dzieki za checi ;)

: 17 maja 2007, 23:31
autor: webserver
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 ;)

: 18 maja 2007, 00:06
autor: misiekagh
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.

: 18 maja 2007, 23:11
autor: markcomp77
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...

: 19 maja 2007, 00:51
autor: misiekagh
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.

: 19 maja 2007, 01:10
autor: markcomp77
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ą!!!