3D_FOLLOW (od wersji 5.0)
blok dostępny od wersji Simultus 5.0

|
Zastosowanie: |
|
SIM |
Opis skrótowy:
Blok funkcyjny służy do przemieszczania pozycji układu współrzędnych (z określoną prędkością i przyspieszeniem) z aktualnej pozycji do punktu docelowego po linii prostej.
wejścia (20 sztuk):
|
nr |
typ |
impuls |
oznaczenie |
uwagi |
| 1 | BOOL | nie | enable | aktywowanei bloku funkcyjnego (0 = false = zatrzymanie) |
| 2 | REAL | cycle_time | [µs] (>0) Czas trwania jednego cyklu | |
| 3 | REAL | vel_factor | [-] (0.0–1.0) Skalowanie prędkości i przyspieszenia globalnie | |
| 4 | REAL | max_lin_vel | [jedn. długości / s] Maksymalna prędkość liniowa | |
| 5 | REAL | max_lin_acc | [jedn. długości / s²] Maksymalne przyspieszenie liniowe | |
| 6 | REAL | max_rot_vel | [rad / s] Maksymalna prędkość rotacji | |
| 7 | REAL | max_rot_acc | [rad / s²] Maksymalne przyspieszenie rotacji | |
| 8 | REAL | treshold | [jedn. długości lub kąta] Próg tolerancji pozycji i prędkości | |
| 9 | REAL | x | [jedn. długości] Aktualna pozycja układu w osi X | |
| 10 | REAL | y | [jedn. długości] Aktualna pozycja układu w osi Y | |
| 11 | REAL | z | [jedn. długości] Aktualna pozycja układu w osi Z | |
| 12 | REAL | a | [rad] Aktualna orientacja układu wokół osi X | |
| 13 | REAL | b | [rad] Aktualna orientacja układu wokół osi Y | |
| 14 | REAL | c | [rad] Aktualna orientacja układu wokół osi Z | |
| 15 | REAL | set_x | [jedn. długości] Docelowa pozycja w osi X | |
| 16 | REAL | set_y | [jedn. długości] Docelowa pozycja w osi Y | |
| 17 | REAL | set_z | [jedn. długości] Docelowa pozycja w osi Z | |
| 18 | REAL | set_a | [rad] Docelowa orientacja wokół osi X | |
| 19 | REAL | set_b | [rad] Docelowa orientacja wokół osi Y | |
| 20 | REAL | set_c | [rad] Docelowa orientacja wokół osi Z |
wyjścia (12 sztuk):
|
nr |
typ |
impuls |
oznaczenie |
uwagi |
| 1 | BOOL | nie | error | błąd działanai bloku (0 = false = brak błędu) |
| 2 | INTEGER | phase | faza ruchu: 0 - stop, 1 - akceleracja, 2 - ruch jednostajny, 3 - deceleracja | |
| 3 | REAL | lin_dist | [jedn. długości] odległość w linii prostej od celu | |
| 4 | REAL | rot_dist | [rad] różnica kątowa orientacji aktualnego położenia do orientacji celu | |
| 5 | REAL | lin_factor | [-] (0.0–1.0) stopień automatycznego zmniejszenia prędkości liniowej | |
| 6 | REAL | rot_factor | [-] (0.0–1.0) stopień automatycznego zmniejszenia prędkości obrotowej | |
| 7 | REAL | x | [jedn. długości] nowa pozycja układu w osi X | |
| 8 | REAL | y | [jedn. długości] nowa pozycja układu w osi Y | |
| 9 | REAL | z | [jedn. długości] nowa pozycja układu w osi Z | |
| 10 | REAL | a | [rad] nowa orientacja układu wokół osi X | |
| 11 | REAL | b | [rad] nowa orientacja układu wokół osi Y | |
| 12 | REAL | c | [rad] nowa orientacja układu wokół osi Z |
ustawienia: brak
opis działania:
Blok 3D_FOLLOW służy do płynnego przemieszczania układu współrzędnych z bieżącej pozycji do pozycji docelowej po linii prostej, z uwzględnieniem ograniczeń prędkości i przyspieszenia liniowego oraz obrotowego. Na wejścia podaje się aktualne i zadane współrzędne (X, Y, Z, A, B, C), parametry ruchu oraz czas cyklu. Blok generuje kolejne pozycje pośrednie, zachowując synchroniczny ruch przestrzenny. Na wyjściach udostępnia bieżącą fazę ruchu (stop, przyspieszenie, bieg, hamowanie), odległość do celu, czynniki redukcji prędkości oraz aktualne współrzędne. Umożliwia realizację trajektorii 3D z płynną zmianą orientacji, np. w robotach kartezjańskich, systemach pozycjonujących, symulacjach kinematyki czy wizualizacji ruchu manipulatora.
Co bardzo ważne blok uwzględnia dynamikę i nie pozwala układowi poruszać się z większym przyspieszeniem i hamowaniam niż ustawione. Oznacza to, że jeżeli nagle zmienimy współrzędne punktu to układ zaczenie najpier hamować stopniowo zmianiajc kierunek ruchu. Uzwględniona przy tym jest bezwładność każdej z osi osobno (x, y, z) oraz ruchu obrotowego osobno (rot_x, rot_y, rot_z). Uzyskujemy dzieki temu efekt dynamiki ruchu.
Przykład zastosowania przedstawiono na diagramie poniżej. Pozycja docelowa jest pobierana z tabeli z punktami. układ współrzędnych AXIS_1_TARGET wskazuje punkt docelowy a układ współrzędnych AXIS_2_FOLLOWER wskazuje układ współrzędnych podążający za jego pozycją.

Zmiana aktywnego punktu w tabeli powoduje powolne przemieszczenie się układów współrzędnych AXIS_2_FOLLOWER do układu współrzędnych AXIS_1_TARGET z określoną prędkością i przyspieszeniem zarówno liniowym jak i kątowym.
Typowe ruchy i zastosowania
-
Ruch liniowy po prostej (XYZ)
– Przemieszczanie punktu roboczego z jednej pozycji do drugiej w przestrzeni.
– Idealny do ruchów typu pick & place, podjazdów, przesuwania narzędzia. -
Ruch orientacyjny (ABC)
– Obrót narzędzia lub efektora wokół osi X, Y, Z w trakcie ruchu liniowego.
– Pozwala na jednoczesną zmianę pozycji i orientacji (np. przy spawaniu, klejeniu). -
Podążanie za punktem odniesienia (target tracking)
– Układ współrzędnych „śledzi” inny układ (np. kamera, czujnik, narzędzie).
– Stosowane w aplikacjach z ruchomymi elementami – np. montaż w ruchu. -
Interpolacja pozycji z tabeli punktów
– Łagodne przejście między kolejnymi punktami zapisanymi np. przez blok3D_READ_POINT. W tym przypadku należy podać na wejście bloku współrzędne kolejnego punktu w momencie kiedy ruch przechodzi do fazy hamowania.
– Umożliwia tworzenie trajektorii ruchu z wielu punktów pośrednich. -
Synchronizacja z wirtualnym modelem lub symulacją
– W zastosowaniach dydaktycznych i wizualizacyjnych do prezentacji kinematyki robota.