GC_MOVE_PREP (176)


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ładzanie

Przed 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:

https://projekty.multiprojekt.pl/laravel-filemanager/files/7/tabela prawdy dla SMOOTH 2017_10_05.docx

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)

kod bloku funkcyjnego

https://projekty.multiprojekt.pl/laravel-filemanager/files/8/Nowy dokument tekstowy (3).txt