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: