VECTOR (178)


VECTOR (178)

ID                          178

 

 

Zastosowanie:

PLC

 

Grupa: MOTION

 

Opis skrótowy:

Funkcja wykonująca ruch z interpolacją liniową między 2 lub 3 osiami.

 

Wejścia (12 sztuk):

nr

typ

impuls

oznaczenie

Uwagi

1

B

tak ( 0->1 )

start

Uruchomienie pozycjonowania

2

B

tak ( 0->1 )

stop

Zatrzymanie ruchu

3

R

-

x

Pozycja docelowa X

4

R

-

y

Pozycja docelowa Y

5

R

-

z

Pozycja docelowa Z

6

R

-

vel

Prędkość ruchu wypadkowa

7

R

-

vel_begin

Prędkość ruchu początkowa

8

R

-

vel_end

Prędkość ruchu końcowa

9

R

-

acc

Przyspieszenie

10

R

-

dec

Hamowanie

11

R

-

acc_jerk

Zryw przyspieszenia

12

R

-

dec_jerk

Zryw hamhamowania

 

Uwaga: parametry wejściowe: vel, acc, dec, acc_jerk, dec_jerk muszą być różne od zera w przeciwnym wypadku blok nie wykona ruchu. 

Wartości 

Wyjścia (3 sztuki):

nr

typ

impuls

oznaczenie

Uwagi

1

B

nie

In_motion

=1 gdy ruch trwa

2 B nie error =0 gdy brak błędów
3 B nit err_id kodbłędu = 0 gdy błąd nie występuje

 

Ustawienia:

nr

typ

oznaczenie

uwagi

1

I

X_axis

Nr osi przypisanej do osi X

2

I

Y_axis

Nr osi przypisanej do osi Y

3

I

Z_axis

Nr osi przypisanej do osi Z

4 I Iter Dokładność obliczeń bloku. Dozwolone wartości 1-50

 

OPIS:

Po otrzymaniu sygnału na wejściu ‘start’ blok w każdym kolejnym cyklu generuje trajektorię ruchu. Prędkość, pozycja i przyspieszenie każdej osi są przekazywane do odpowiednich rejestrów przypisanych do danych osi wirtualnych. Ruch odbywa się po linii prostej z prędkością wypadkową zadaną na wejściu bloku. Prędkość wypadkowa początkowa ruchu to vel_begin, prędkość końcowa to vel_end.

Sygnał na wejściu stop powoduje wytracenie prędkości do zera.

Dobór parametrów ruchu:

Rysunek B.178.1 ilustruje wykonanie ruchu osi X, Y, Z z interpolacją liniową we współrzędnych absolutnych z pozycji aktualnej P1 = (X1, Y1, Z1) do pozycji bezwzględnej P2 = (X2, Y2, Z2).

 

wstawić rysunek

wstawić rysunek

Rys. B.178.1. Ilustracja ruchu od punktu P1 do P2 osi X, Y, Z z interpolacją liniową.

Rys. B.178.2. Przebiegi prędkości, przyspieszenia oraz zrywu w trakcie ruchu.

 

 

Na rysunku B.178.2. przedstawiono wykresy przebiegów prędkości, przyspieszenia oraz zrywów w trakcie ruchu. Przyjęto następujące oznaczenia:

 

vmax – prędkość [uu/s]

aacc – przyspieszenie [uu/s2]

adec – opóźnienie [uu/s2]

j1 – zryw dla przyspieszenia [uu/s3]

j2 – zryw dla opóźnienia [uu/s3]

tacc – czas przyspieszania [s]

tdec – czas hamowania [s]

tj1 – czas trwania zrywu przy przyspieszaniu [s]

tj2 – czas trwania zrywu przy przyspieszaniu [s]

 

Poniżej podano zależności między danymi wielkościami służące do ich obliczenia. Wartości wynikowe są w impulsach dlatego wzory uwzględniają współczynnik pos_scale_factor wpisywany do bloku funkcyjnego STEP_DIR (nr. 150) w celu przeliczenia wartości na jednostki inżynierskie oznaczone we wzorach jako [uu] (user units), (np. [mm], [cm], [m] itd.). Poniższy przykład obliczania wartości parametrów ruchu podano dla jednostek użytkownika w [mm].

 

1. Obliczenie współczynnik skalującego pos_scale_factor dla danej osi.

Wartość współczynnika wpisywana jest jako paramentr we właściwościach bloku STEP_DIR (opis obliczeń znajduje się w opisie bloku funkcyjnego nr 150).

 

np.: pos_scale_factor = 100

 

2. Przyjęcie maksymalnej prędkości ruchu osi

Maksymalna prędkość osi wynika zazwyczaj z maksymalnej prędkości jaką może uzyskać silnik lub z maksymalnej prędkości vmax jaką chcemy aby uzyskał element przemieszczany.

 

vmax = _MaxSpeed_1 [pps] = vmax [mm/s] * pos_scale_factor

 

Dane:

Prędkośc maksymalna: vmax = 100 [mm/s],

 

Obliczenia:

vmax = 100 * 100 = 10000 [pps]

 

3. Obliczenie maksymalnego przyspieszenia i opóźnienia dla danej osi

 

Dane:

moment napędowy silnika obrotowego: Ms [Nm] = 0,25 [Nm]

masa napędzana: m [kg] = 0,1 [kg]

 

Obliczenia:

aacc = _MaxAcceleration_1 [pps2] = aacc [uu/s2] * pos_scale_factor  = aacc [pps2] = n * ( 103 * Ms [Nm] * pos_scale_factor [-] ) / m [kg]

adcc = _MaxDeceleration_1 [pps2] = adec [uu/s2] * pos_scale_factor  = adec [pps2] = n * ( 103 * Ms [Nm] * pos_scale_factor [-] ) / m [kg]

 

aacc = 0,5 * ( 103 * 0,25 [Nm] * 100 ) / 0,1 [kg] = 125 000 [pps2]

adcc = 125 000 [pps2]

 

Współczynnik 103 wynika z przyjętych w przykładzie jednostek. We wzorze zastosowano współczynnik n i przyjęto jego wartość na poziomie 0,5. Uwzględnia on moment bezwładności silnika, przekładni oraz innych elementów przekazujących napęd. Ich moment bezwładności zredukowany do momentu bezwładności na silniku można obliczyć korzystając z odpowiednich wzorów. Ponadto silnik należy dobierać z zapasem momentu obrotowego na poziomie przynajmniej 30%.

 

4. Przyjęcie wartości zrywów przy przyspieszaniu j1 oraz przy hamowaniu j2.

 

Dane:

j1 = j2 = 20 000 [mm/s3]

 

Obliczenia:

j1 = _AccelJERK_1 [pps3] = j1 [uu/s3] * pos_scale_factor = 20 000 [mm/s3] * 100 = 2 000 000 [pps3]

j2 = _DecelJERK_1 [pps3] = j2 [uu/s3] * pos_scale_factor = 20 000 [mm/s3] * 100 = 2 000 000 [pps3]

 

Wartość zrywu przyjmuje się eksperymentalnie. Zryw to szybkość narastania przyspieszenia do jego maksymalnej prędkości. Zryw o wartości 1 [mm/s3] oznacza, że przyspieszenie będzie zwiększało się o 1 [mm/s2] w ciągu jednej sekundy. Im większa sztywność maszyny tym zryw może być większy. Większy zryw wpłyta na większe wibracje spodowodane szarpnięciem układu napędowego przy przyspieszeniu i hamowaniu. Zryw wpływa na czas przyspieszania i hamowania. Czasy te można obliczyć stosując poniższe wzory.

 

tj1 [s] = _MaxAcceleration_1 [pps2] / j1 [pps3] = R3107 / R3109 = 125 000 / 2 000 000 = 62,5 [ms]

tj2 [s] = _MaxDeceleration_1 [pps2] / j2 [pps3] = R3108 / R3110 = 125 000 / 2 000 000 = 62,5 [ms]

tacc [s] =  ( _MaxSpeed_1 [pps] – ( _MaxAcceleration_1 [pps2] / j1 [pps3]) ) / _MaxAcceleration_1 [pps2] = ( R3106 – ( R3107 / R3109 ) ) / R3107 = (10 000 – ( 125 000 / 2 000 000 ) ) / 125 000 = 80 [ms]

tdec [s] =  ( _MaxSpeed_1 [pps] – ( _MaxDeceleration_1 [pps2] / j1 [pps3]) ) / _MaxDeceleration_1 [pps2] = ( R3108 – ( R3108 / R3110 ) ) / R3108 = (10 000 – ( 125 000 / 2 000 000 ) ) / 125 000 = 80 [ms]

 

zmiany: