GC_MOVE_PREP (176)
ID 176
Zastosowanie: |
PLC |
Grupa: Motion
Opis skrótowy:
Funkcja przygotowująca parametry ruchu dla aktualnego G-kodu związanego z ruchem.
Wejścia (3 sztuk):
nr |
typ |
impuls |
oznaczenie |
Uwagi |
1 |
B |
tak ( 0->1 ) |
exe |
Zmiana z 0 na 1 – aktywowanie bloku |
2 | B | tak ( 0->1 ) | vector_end | sygnał zakończenia ruchu z interpolacją liniową w trybie wygładzania trajektorii ruchu M1008=1 |
3 | R | - | e | wartość max uchybu dla trybu Smooth (dla M1008=1) |
4 | R | - | cos_f | cos kata przy którym uznaje się ze wektory są rownolegla warosc z przedzialu (0,1) |
Wyjścia (19 sztuk):
nr |
typ |
impuls |
oznaczenie |
Uwagi |
1 |
B |
tak ( 0->1->0 ) |
G0_ptp |
Pozycjonowanie bez interpolacji |
2 |
B |
tak ( 0->1->0 ) |
G1_vector |
Pozycjonowanie z interpolacją liniową |
3 |
B |
tak ( 0->1->0 ) |
G2_circle_cw |
Pozycjonowanie z interpolacją kołowa zgodnie z ruchem wskazówek zegara |
4 |
B |
tak ( 0->1->0 ) |
G3_circle_ccw |
Pozycjonowanie z interpolacją kołowa przeciwnie do ruchu wskazówek zegara |
5 |
R |
- |
X |
Pozycja docelowa X |
6 |
R |
- |
Y |
Pozycja docelowa Y |
7 |
R |
- |
Z |
Pozycja docelowa Z |
8 |
R |
- |
I |
Pozycja I |
9 |
R |
- |
J |
Pozycja J |
10 |
R |
- |
vel |
Prędkość ruchu wypadkowa |
11 |
R |
- |
vel_begin |
Prędkość ruchu początkowa |
12 |
R |
- |
vel_end |
Prędkość ruchu końcowa |
13 |
R |
- |
acc |
Przyspieszenie |
14 |
R |
- |
dec |
Hamowanie |
15 |
R |
- |
acc_jerk |
Zryw przyspieszenia |
16 |
R |
- |
dec_jerk |
Zryw hamowania |
17 |
B |
nie |
xy |
Wybór płaszczyzny ruchu po okregu |
18 |
B |
nie |
xz |
Wybór płaszczyzny ruchu po okregu |
19 |
B |
nie |
yz |
Wybór płaszczyzny ruchu po okregu |
20 | R | - | r_out | obliczony promień łuku dla trybu Smooth (dla M1008=1) |
21 | B | nie | smooth | załączone przy starcie ruchu VECTOR jeżeli będzie wykonywany łuk po prostej w trybie wygładzania trajektorii ruchu, wyłączany po przyjściu sygnału vector_end |
22 | B | tak ( 0->1->0 ) | Error | Sygnalizacja błędu |
23 | I | - | Error_ID |
Numer błędu : 1-aktualny gkod nie jest typu G, bląd dotyczy rejestru R3091, 2-aktualny gkod nie jest ruchem, bląd dotyczy rejestru R3071, 3-przypadek wygładzania nie istnieje - dotyczy łączenia prostych z łukami |
Ustawienia (X sztuk):
nr | typ | impuls | oznaczenie | uwagi |
1 | I | - | virt_X | |
2 | I | - | virt_Y | |
3 | I | - | virt_Z | |
4 | R | - | acc | |
5 | R | - | dec | |
6 | R | - | acc_jerk | |
7 | R | - | dec_jerk | |
8 | R | - | psf | współczynnik skalujący pozycję: X, Y, Z, I, J, Next_X, Next_Y, Next_Z, earc |
Działanie funkcji:
Blok ustawia parametry ruchu dla danej linii z tabeli G-kodów jeżeli linia ta jest związana z wykonywaniem ruchu. Blok jest wykorzystywany tylko podczas pierwszego cyklu każdego ruchu. Wyjścia PTP, Vector, Circle_CW, Circle_CCW są aktywne na jeden cykl pracy sterownika. Wyjścia te powinny zostać podłączone do wejść bloków PTP, VECTOR lub CIRCLE.
Funkcja korzysta z markera M1008. M1008 = 1 - załączono wygładzanie, M1008 = 0 - wyłączono wygładzaniePrzed zadaniem nowych parametrów ruchu i uruchomieniem wyjść Vector, Circle_CW i Circle_CCW:
- funkcja sprawdza stany rejestrów specjalnych: _Last_G, _Last_M1008 (czyli M1009)
- funkcja sprawdza czy następny G-kod to ruch R3097 (_Next_G)=1
- sprawdza stan markera M1008
- sprawdza warunek '-2' i '-3'
- korzystając z tabeli poniżej nadaje odpowiednie wartości na wyjścia vel_begin oraz vel_end
- uruchamia wyjście vector
- warunkowo czeka na aktywacje wejścia vector_end
- warunkowo uruchamia wyjście Circle_CW lub Circle_CCW
Wyróżniono 6 sposobów działania funkcji (ostatnia kolumna tabeli)
1: vel_begin = 0, vel_end = 0, punkt docelowy przekazujemy bezpośrednio z aktualnego G-kodu, uruchamiamy VECTOR, nie czekamy na aktywację vector_end
2: vel_begin = vel, vel_end = 0, punkt docelowy przekazujemy bezpośrednio z aktualnego G-kodu, uruchamiamy VECTOR, nie czekamy na aktywację vector_end
3. vel_begin = 0, vel_end = vel, obliczamy nowy punkt docelowy dla VECTOR i dla CIRCLE, uruchamiamy VECTOR,załączamy wyjście smooth = 1, czekamy na aktywację vector_end, wstawiamy vel_begin = vel, wykonujemy CIRCLE, wyłączamy wyjście Smooth = 0
4. vel_begin = vel, vel_end = vel, obliczamy nowy punkt docelowy dla VECTOR i dla CIRCLE, uruchamiamy VECTOR, czekamy na aktywację vector_end, wykonujemy CIRCLE
5. vel_begin = vel, vel_end = vel, punkt docelowy przekazujemy bezpośrednio z aktualnego G-kodu, uruchamiamy VECTOR, nie czekamy na aktywację vector_end
6. vel_begin = 0, vel_end = vel, punkt docelowy przekazujemy bezpośrednio z aktualnego G-kodu, uruchamiamy VECTOR, nie czekamy na aktywację vector_end
Kalkulator ustawień bloku gc_move_prep
tabela działania funkcji Smooth:
TESTY:
(* SHAPE Nr: 0 *)
G0 X 20.000 Y 30.000
G1 X 20.000 Y 150.000
G1 X 120.000 Y 150.000
G1 X 120.000 Y 30.000
G1 X 20.000 Y 30.000
(* SHAPE Nr: 1 *)
G0 X 74.127 Y 30.552
G1 X 19.901 Y 86.947
G1 X 65.372 Y 150.070
G1 X 119.598 Y 93.675
G1 X 74.127 Y 30.552
(* SHAPE Nr: 2 *)
G0 X 22.220 Y 32.703
G1 X 22.220 Y 102.329
G1 X 91.847 Y 102.329
G1 X 91.847 Y 32.703
G1 X 22.220 Y 32.703
(* SHAPE Nr: 3 *)
G0 X 24.396 Y 34.879
G1 X 24.396 Y 93.734
G1 X 63.899 Y 93.734
G1 X 63.899 Y 34.879
G1 X 24.396 Y 34.879
(* SHAPE Nr: 4 *)
G0 X 26.186 Y 36.668
G1 X 26.186 Y 78.640
G1 X 62.513 Y 78.640
G1 X 62.513 Y 36.668
G1 X 26.186 Y 36.668
(* SHAPE Nr: 5 *)
G0 X 28.137 Y 38.620
G1 X 28.137 Y 41.209
G1 X 114.587 Y 41.209
G1 X 114.587 Y 38.620
G1 X 28.137 Y 38.620
(* SHAPE Nr: 6 *)
G0 X 70.858 Y 32.557
G1 X 70.858 Y 40.015
G1 X 82.348 Y 40.015
G1 X 82.348 Y 32.557
G1 X 70.858 Y 32.557
(* SHAPE Nr: 7 *)
G0 X 79.905 Y 72.154
G1 X 99.564 Y 67.986
G1 X 45.071 Y 44.136
G1 X 32.999 Y 69.375
G1 X 64.040 Y 72.617
G1 X 61.281 Y 63.586
G1 X 74.731 Y 37.421
G1 X 103.702 Y 62.197
G1 X 57.487 Y 57.335
G1 X 95.425 Y 48.304
G1 X 36.448 Y 34.643
(* SHAPE Nr: 8 *)
G0 X 63.090 Y 139.257
G1 X 48.961 Y 120.380
G1 X 35.893 Y 89.636
G1 X 47.549 Y 101.772
G1 X 74.392 Y 88.018
G1 X 30.595 Y 110.941
G1 X 58.145 Y 144.381
G1 X 88.167 Y 131.167
G1 X 106.887 Y 122.267
G1 X 85.695 Y 93.681
G1 X 55.672 Y 110.941
G1 X 104.062 Y 81.815
G1 X 36.952 Y 81.815
M2 (Program end)
https://projekty.multiprojekt.pl/laravel-filemanager/files/8/Nowy dokument tekstowy (3).txt