równoczesna praca kilku osi

Dyskusje dotyczące najpopularniejszego programu sterującego maszynami CNC

ezbig
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 23
Posty: 2103
Rejestracja: 07 lip 2006, 00:31
Lokalizacja: mazowieckie

#91

Post napisał: ezbig » 28 lip 2013, 22:12

tuxcnc pisze: Jeśli w jednej osi miało by jechać tam i z powrotem, a pozostałe tylko tam i wszystko w określonym czasie, to faktycznie to co napisałeś miało by sens, ale trzeba by było założenia zrobić w jednej osi, a resztę osi dopasować.
Czyli 2*Y/t=X/t=Z/t .
Mając zadane wszystkie przesunięcia i prędkość (lub czas) w jednej osi, pozostałe prędkości wychodzą z układu równań i nie można ich dowolnie założyć.
To tutaj jest problem, bo z tego co autor wątku napisał, można wywnioskować że żąda rzeczy niemożliwej.
Ja zrozumiałem, że chce kręcić silnikami z prędkościami, które są ustalone i wykonuje nimi konkretne powtarzalne ruchy. Napisałem przykład prosty, ale te ruchy mogą być dowolnie skomplikowane. Można określić prędkość dla każdej osi niezależnie, można ustalić odcinki przejazdu osi też niezależnie. Można też zatrzymywać dowolne silniki jak się chce. W tym układzie można wszystko określić, nie wiem dlaczego uważasz, że prędkości pozostałych osi są uzależnione od pozostałych. Ja pokazałem, że nie są zależne.



Tagi:

Awatar użytkownika

tuxcnc
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 21
Posty: 8107
Rejestracja: 26 lut 2011, 23:24
Lokalizacja: mazowieckie

#92

Post napisał: tuxcnc » 28 lip 2013, 22:28

ezbig pisze:nie wiem dlaczego uważasz, że prędkości pozostałych osi są uzależnione od pozostałych.
Pewnie inaczej rozumiemy znaczenie słów "zależy mi aby osie pracowały równocześnie".
Dla mnie "pracowały równocześnie" znaczy że mają ruch razem zaczynać i razem kończyć, że nie ma takiego momentu, że jedna oś jeszcze jedzie a pozostałe dawno skończyły.

Ja to piszę od początku, że problem został opisany enigmatycznie i zasadniczo nie wiadomo o co chodzi.

.


ezbig
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 23
Posty: 2103
Rejestracja: 07 lip 2006, 00:31
Lokalizacja: mazowieckie

#93

Post napisał: ezbig » 28 lip 2013, 22:47

W zasadzie to autor powinien określić co on rozumie przez "równocześnie". Ja milcząco założyłem, że równocześnie startują i poruszają się z różnymi prędkościami, a skoro mają różne prędkości odcinki do pokonania to nie muszą się równocześnie zatrzymać. Chyba że drogi zostaną tak dobrane, że to nastąpi. W każdym bądź razie moje wywody uwzględniają dowolną sytuację "równoczesności".


tomcat65
ELITA FORUM (min. 1000)
ELITA FORUM (min. 1000)
Posty w temacie: 15
Posty: 1236
Rejestracja: 15 lis 2009, 02:46
Lokalizacja: Olsztyn
Kontakt:

#94

Post napisał: tomcat65 » 29 lip 2013, 00:40

tuxcnc pisze:problem został opisany enigmatycznie i zasadniczo nie wiadomo o co chodzi.
To samo stwierdziłem i :
ezbig pisze:zasady zostały wyłożone na stół. Trzeba jakiś prosty ruch określić i można kod napisać.
Ale mamy też
grze pisze:jena oś idzie z prędkością np f150 o zadaną wartość następie się cofa, druga porusza się z prędkością f50 też o zadaną wartość i trzecia z f100. Zależy mi aby osie pracowały równocześnie.
I nie wiadomo czego się trzymać, czy stałej prędkości w osiach,co da zawsze jednoznaczny ruch po przekątnej prostopadłościanu, czy stałej wypadkowej prędkości.

Jedynie przykład kol. ma555rek z osią obrotową jest rozwiązywalny, czyli coś a'la:
http://www.youtube.com/watch?feature=pl ... aQNoM7Tuhk

Czyli chodzi o stworzenie 'elekronicznej gitary', aby cięła lub wykreślała linię śrubową o stałym kącie ( lub proporcjach boków, co na jedno wychodzi ) lub przemieszczała się po tej linii z określoną szybkością niezależnie od 'średnicy materiału'.
Podałem wzór, ale z błędem, powinno być S[[f*2√2/[z*2*pi]]*360st]
czyli dla x=a=100, z=20 wyniesie 202st34'/min.
Dla z=100 5 x wolniej,


ezbig
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 23
Posty: 2103
Rejestracja: 07 lip 2006, 00:31
Lokalizacja: mazowieckie

#95

Post napisał: ezbig » 29 lip 2013, 04:05

grze pisze:Mnie zależy na ustawieniu różnych prędkości dla trzech osi /nieduża maszynka, nie ploter/, czyli jena oś idzie z prędkością np f150 o zadaną wartość następie się cofa, druga porusza się z prędkością f50 też o zadaną wartość i trzecia z f100. Zależy mi aby osie pracowały równocześnie.
Nie wiem tomcat65 czy celowo pominąłeś "/nieduża maszynka, nie ploter/", bo dla mnie to istotna informacja, że to jest jakaś maszyna, ale nie jest to ploter. Wszyscy się zafiksowali, że to ma być jakaś udziwniona frezarka, czy tokarka, gdzie osie pracują w powiązany sposób. Przecież ta maszyna może równie dobrze przesuwać jakieś pudełka.
tomcat65 pisze:I nie wiadomo czego się trzymać, czy stałej prędkości w osiach,co da zawsze jednoznaczny ruch po przekątnej prostopadłościanu, czy stałej wypadkowej prędkości.
Przecież z punktu g-kodu to zawsze będzie ruch po przekątnej prostopadłościanu o stałej wypadkowej prędkości. W wyniku czego planer w mach-u czy linuxCNC wygeneruje ruch silników z prędkościami posuwu wcześniej zakładanymi. Tylko to opisuje nam jeden mały fragment kiedy wszystkie silniki jadą w jedną stronę. Cały ruch to nie tylko wypadkowa, ale i złożenie kilku ruchów.

Każda sytuacja zakończenie ruchu osi lub zmiana kierunku to nowa linia kodu. Zmiana kierunku dla osi to w praktyce - jeśli np. Z szło od 0 do 100, to teraz musi wrócić do 0. W przestrzeni wektor prędkości wypadkowej obróci się, ale składowe wartości bezwzględne prędkości po XYZ będą te same (czyli X i Y idą do przodu, a Z będzie teraz wracać). grze nic nie pisze, że przy powrocie powrocie zmienia się prędkość, ale to nie jest problem (tylko wtedy trzeba będzie policzyć nową prędkość wypadkową dla wszystkich osi).

Każde zatrzymanie jednej osi wymaga nowej linii g-kodu i obliczenia nowej prędkości wypadkowej.

Weźmy dane z tego co podał grze:
1. "jedna oś idzie z prędkością np f150 o zadaną wartość następie się cofa"
- niech to będzie oś X, nie ma zadanej wartości - niech będzie 90, cofa chyba do 0
2. "druga porusza się z prędkością f50 też o zadaną wartość"
- niech to będzie oś Y, nie ma zadanej wartości - niech będzie 75
3. "i trzecia z f100"
- oś Z, nie ma zadanej wartości - niech będzie 45

Zbierzmy to razem:
F150 X0 -> X90 -> X0
F50 Y0 -> Y75 -> stop
F100 Z0 -> Z45 -> stop

Teraz tłumaczymy na właściwy g-kod:

1. Najpierw trzeba określić czasy ruchów osi.

F150 X0 -> X90 - 0,6 min, X90 -> X0 - 0,6 min
F50 Y0 -> Y75 - 1,5 min
F100 Z0 -> Z45 - 0,45 min

2. Mamy punkty na osi czasu, gdzie się coś zmienia (silnik staje lub zmienia kierunek) - tworzymy g-kod.

0 - 0,45 min - kończy ruch oś Z, a w tym czasie:
- X przejedzie do 0,45 x 150 = 67,5
- Y przejedzie do 0,45 x 50 = 22,5

Liczmy prędkość wypadkową jak jadą wszystkie osie:

F= sqrt(150^2+50^2+100^2)= 187,08

piszemy:

F187,08
G1 X67,5 Y22,5 Z45

0,45 - 0,6 min - oś Z stoi, oś X zmieni kierunek, ale zanim to zrobi dojedzie do 90,
a Y przejedzie do 0,6 x 50 = 30

Liczymy prędkość:

F= sqrt(150^2+50^2+0^2)= 158,11

kolejna linia:

F158,11
G1 X90 Y30

0,6 - 1,2 min - kończy ruch oś X na 0, oś Y przejedzie 1,2 x 50 = 60

Prędkość wypadkowa się nie zmienia (dalej 158,11)

kolejna linia:

G1 X0 Y60

1,2 - 1,5 min - oś X stoi, oś Y kończy ruch na 75

Dla jednej osi prędkości nie trzeba liczyć, ale jak ktoś chce to może policzyć ;) - wyjdzie 50

kolejna linia:

F50
G1 Y75


Cały kod:

Kod: Zaznacz cały


G0 X0 Y0 Z0

F187,08 G1 X67,5 Y22,5 Z45
F158,11 G1 X90 Y30
F158,11 G1 X0 Y60
F50 G1 Y75

Mam nadzieję, że się tam gdzieś nie machnąłem po drodze :). Prościej już tego rozpisać chyba nie umiem. Może ktoś to sprawdzi na maszynie, sam jestem ciekaw (tylko maszyna musi sterować silnikami bez rampy, bo nic z tego nie wyjdzie).

Awatar użytkownika

tuxcnc
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 21
Posty: 8107
Rejestracja: 26 lut 2011, 23:24
Lokalizacja: mazowieckie

#96

Post napisał: tuxcnc » 29 lip 2013, 05:05

ezbig pisze:Przecież z punktu g-kodu to zawsze będzie ruch po przekątnej prostopadłościanu o stałej wypadkowej prędkości. W wyniku czego planer w mach-u czy linuxCNC wygeneruje ruch silników z prędkościami posuwu wcześniej zakładanymi.
Chyba jednak nie rozumiesz zasady działania planera.
Weźmy dla uproszczenia dwie osie i sytuację gdy jedna jedzie tam i z powrotem, a w tym samym czasie druga tylko tam.
Rozbicie tego ruchu na dwie linie kodu daje następujący efekt :
1. jedna oś jedzie tam, druga połowę drogi.
2. obie osie się zatrzymują (!!!)
3. jedna oś wraca, druga jedzie dalej.
O ile pierwsza oś nie może pojechać inaczej, bo prawa fizyki wymagają rozpędzenia i hamowania, to druga oś przecież ani nie musi, ani być może nie powinna zatrzymać się pośrodku drogi.
Czyli być może takie rozwiązanie jest nie do przyjęcia.

.


ezbig
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 23
Posty: 2103
Rejestracja: 07 lip 2006, 00:31
Lokalizacja: mazowieckie

#97

Post napisał: ezbig » 29 lip 2013, 09:33

Napisałem na końcu bardzo istotną uwagę. Program musi być skonfigurowany tak, żeby silniki pracowały bez rampy. W mach-u wiem że to możliwe, a chyba linuxCNC też pozwala na takie ustawienie. Przy małych prędkościach to możliwe. Chyba, że niezależnie od tego program i tak staje na każdej linii kodu (ale chyba tak to nie ma).


Raven
Specjalista poziom 3 (min. 600)
Specjalista poziom 3 (min. 600)
Posty w temacie: 2
Posty: 681
Rejestracja: 24 paź 2011, 11:54
Lokalizacja: Warszawa

#98

Post napisał: Raven » 29 lip 2013, 11:08

Absurdalna wysokość przyspieszenia w configu, praktycznie wykluczy rampę w LinuxCNC.


ma555rek
ELITA FORUM (min. 1000)
ELITA FORUM (min. 1000)
Posty w temacie: 19
Posty: 1214
Rejestracja: 15 paź 2007, 00:45
Lokalizacja: nie ważne

#99

Post napisał: ma555rek » 29 lip 2013, 12:59

Największy ubaw ma kol GRZE jak widzi jaki granat wrzucił w bagienko. Każdej małpie z tego cyrku dał żółtego banana co sprawiło że jest to najbardziej energetyzujący temat od początku mojego istnienia na forum :mrgreen:
Pasjonat


ezbig
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 23
Posty: 2103
Rejestracja: 07 lip 2006, 00:31
Lokalizacja: mazowieckie

#100

Post napisał: ezbig » 29 lip 2013, 13:24

:) a bo to pierwszy taki temat? Często ktoś o coś zapyta nieskałdnie, ludzie znajdują coraz wymyślniejsze rozwiązania. Każdy swojego broni, a autor chciał tak, z ciekawości zapytać i boi się teraz odezwać, bo mu to do niczego nie było potrzebne :)

ODPOWIEDZ Poprzedni tematNastępny temat

Wróć do „Mach 2 / 3 / 4 (ArtSoft software)”