Algorytm obliczania interpolacji kołowej G2/G3

Dyskusje dotyczące programowania G-Code

Autor tematu
typniepokorny86
Specjalista poziom 1 (min. 100)
Specjalista poziom 1 (min. 100)
Posty w temacie: 3
Posty: 168
Rejestracja: 08 lut 2009, 17:04
Lokalizacja: Żołyń

Algorytm obliczania interpolacji kołowej G2/G3

#1

Post napisał: typniepokorny86 » 14 sty 2017, 00:28

Witam,
pytanie generalnie takie jak w temacie, trochę fantastycznonaukowe:> Zacznę od tego, że pytanie wiąże się z tym, że ostatnio na frezarce haasa pojawił mi się alarm iż pozycja końca łuku, lub środka nie mieści się w zakresie 0,01mm. Kolega miał coś podobnego na innej maszynie z Fanuciem.
Dla jasności, nie chodzi mi o to jak się programuje interpolację kołową bo to wiem (a przynajmniej tak mi się wydaje), ani o to w jaki sposób sterownik steruje serwomotorami. Chodzi mi o to jak sterownik przelicza wartości, współrzędne,... przy programowaniu G2/G3 z użyciem parametrów I i J. Dlaczego to takie ciekawe..? Otóż dlatego, że żeby w pełni utwierdzić łuk na płaszczyźnie, lub jak kto woli odebrać mu wszystkie stopnie swobody wystarczy nadać mu 5 (pięć) więzów lub wymiarów. Programując G2/G3 z użyciem parametru R (wartością promienia łuku) mamy 5 danych (X i Y początku łuku, X i Y końca, oraz R) i teoretycznie układ jest w porządku. Zaś programując G2/G3 z użyciem I i J mamy takich danych 6, czyli układ jest przewymiarowany.
Tak więc pytanie, jak sterownik przelicza, jakich algorytmów matematycznych używa, aby przeliczyć ten nadmiar informacji?



Tagi:


capt.d.
Specjalista poziom 2 (min. 300)
Specjalista poziom 2 (min. 300)
Posty w temacie: 1
Posty: 387
Rejestracja: 25 lut 2016, 19:23
Lokalizacja: Tarnowskie Góry

#2

Post napisał: capt.d. » 14 sty 2017, 17:55

Aloha
typniepokorny86 pisze:aby przeliczyć ten nadmiar informacji?
Nie mamy do czynienia z nadmiarem. Parametry I i J służą do określenia położenia środka okręgu względem aktualnej pozycji narzędzia (w bloku G2/G3) i promienia toru narzędzia.

Pozdrawiam


Autor tematu
typniepokorny86
Specjalista poziom 1 (min. 100)
Specjalista poziom 1 (min. 100)
Posty w temacie: 3
Posty: 168
Rejestracja: 08 lut 2009, 17:04
Lokalizacja: Żołyń

#3

Post napisał: typniepokorny86 » 16 sty 2017, 14:01

To że parametry I i J służą do określenia środka łuku, a w związku z tym i jego promienia to ja wiem. Ale sterownik to liczy. Bo z matematycznego punktu widzenia, nie da się tego policzyć w jednym równaniu.

Awatar użytkownika

WZÓR
Moderator
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 1
Posty: 7974
Rejestracja: 01 sty 2009, 20:01
Lokalizacja: Oława

#4

Post napisał: WZÓR » 16 sty 2017, 18:12

typniepokorny86 pisze:To że parametry I i J służą do określenia środka łuku, a w związku z tym i jego promienia to ja wiem. Ale sterownik to liczy. Bo z matematycznego punktu widzenia, nie da się tego policzyć w jednym równaniu.
A kogo to obchodzi .... (?)
Jak większość z nas skupia się raczej na pracy , a nie na rozmyślaniu.

P.s.
Pytanie w sam raz do studentów .... , najlepiej w sobotę przy piwku.
Wtedy wszyscy są mądrzy. :neutral:

Mariusz.
Pomagam w:
HAAS - frezarki, tokarki


Autor tematu
typniepokorny86
Specjalista poziom 1 (min. 100)
Specjalista poziom 1 (min. 100)
Posty w temacie: 3
Posty: 168
Rejestracja: 08 lut 2009, 17:04
Lokalizacja: Żołyń

#5

Post napisał: typniepokorny86 » 18 sty 2017, 16:10

WZÓR pisze: A kogo to obchodzi .... (?)
Jak większość z nas skupia się raczej na pracy , a nie na rozmyślaniu.

Mariusz.
To tak jak jeden z operatorów powiedział mi, że nie musi (przynajmniej trochę) znać G-kodu. Zwłaszcza, że nie robi tylko "na guziku", a musi ustawiać robotę.

Swoją drogą, to rzeczywiście, nie jest to najważniejsza rzecz jaką powinienem wiedzieć. Po prostu mnie to ciekawi, zwłaszcza, że z tego powodu są generowane alarmy.

Awatar użytkownika

cosimo
Specjalista poziom 3 (min. 600)
Specjalista poziom 3 (min. 600)
Posty w temacie: 1
Posty: 631
Rejestracja: 21 maja 2008, 10:02
Lokalizacja: Damasławek

#6

Post napisał: cosimo » 08 lut 2017, 12:03

Zaś programując G2/G3 z użyciem I i J mamy takich danych 6, czyli układ jest przewymiarowany.
Sam piszesz, że wiesz iż I,J wyznaczają środek okręgu - potrzeba do tego dwóch liczb więc co tu jest „nadmiarowe/przewymiarowane” ?
Zacznę od tego, że pytanie wiąże się z tym, że ostatnio na frezarce haasa pojawił mi się alarm iż pozycja końca łuku


I,J wyznacza środek względem aktualnej pozycji narzędzia zatem łatwo policzyć odległość (pitagoras) aktualnej pozycji od punktu środka i w ten sposób masz „R”. Alarm pojawi się wtedy gdy zadeklarowany koniec ruchu (XY) znajduje się w innej odległości od środka niż R. Taki błąd teoretycznie może się zdarzyć gdy łuk zaczynasz nie tam gdzie powinieneś, albo ktoś zaoszczędził na cyfrach po przecinku w kodzie, albo pisał z palca i się pomylił...
Tak więc pytanie, jak sterownik przelicza, jakich algorytmów matematycznych używa, aby przeliczyć ten nadmiar informacji?
Aby narysować okręg albo łuk trzeba mieć jego środek – to w prosty sposób załatwiają I,J. Kiedy masz podane samo R i tak musisz obliczyć środek – i to jest dopiero problem ;-)

ODPOWIEDZ Poprzedni tematNastępny temat

Wróć do „G-CODE - programowanie”