MC_GroupHalt, MCP_GroupHalt – Zastavení koordinovaného pohybu (přerušitelné)

Symboly blokůPotřebná licence: COORDINATED MOTION
Qt SVG Document Exported by REXYGEN Studio uAxesGroup Execute Deceleration Jerk LimitMode BufferMode Superimposed yAxesGroup Done CommandAborted Busy Active Error ErrorID MC_GroupHalt Qt SVG Document Exported by REXYGEN Studio uAxesGroup Execute yAxesGroup Done CommandAborted Busy Active Error ErrorID MCP_GroupHalt

Popis funkce

Bloky MC_GroupHalt a MCP_GroupHalt mají naprosto shodnou funkci, jediným rozdílem je, že MCP_ varianta bloku má méně vstupů a potřebné konstanty se zadávají jako parametry bloku.

Blok MC_GroupHalt zahajuje řízené zastavení pohybu. Osa se přesune do stavu „GroupMoving“, dokud není rychlost nulová. Společně s nastavením výstupu Done je stav změněn na „GroupStandby“.

Poznámka 1: Blok MC_GroupHalt se používá k zastavení skupiny os za normálních provozních podmínek. V non-buffered režimu je možné zadat další pohybový příkaz při zpomalení osy, který zruší MC_GroupHalt a bude ihned proveden.

Poznámka 2: Je-li tento příkaz aktivní, další příkaz může být aktivován (spuštěn). Např. vozidlo bez řidiče detekuje překážku a potřebuje zastavit. MC_GroupHalt je aktivován. Před dosažením stavu „GroupStandby“ je překážka odstraněna a pohyb může pokračovat nastavením dalšího pohybového příkazu, aby vozidlo nemuselo zastavit.

Poznámka 3: Blok nemá parametr CoordSystem, protože jej přejímá z předchozího bloku.

Vstupy

uAxesGroup

Odkaz na skupinu os

Reference

Execute

Náběžná hrana aktivuje blok

Bool

Deceleration

Maximální povolené zpomalení [unit/s2]

Double (F64)

Jerk

Maximální povolená změna zrychlení [unit/s3]

Double (F64)

LimitMode

Volba jednotek pro limity (Deceleration, Jerk)  1

Long (I32)

1 ....

Relative [part of group limit]

2 ....

Absolute [unit/s, unit/s2, unit/s3]

BufferMode

Režim převzetí osy  1

Long (I32)

1 ....

Aborting (nový blok se spustí okamžitě)

2 ....

Buffered (nový blok se spustí po dokončení předchozího)

3 ....

Blending low (nový blok se spustí po dokončení předchozího, původní pohyb skončí s nižší rychlostí z obou bloků)

4 ....

Blending high (nový blok se spustí po dokončení předchozího, původní pohyb skončí s vyšší rychlostí z obou bloků)

5 ....

Blending previous (nový blok se spustí po dokončení předchozího, původní pohyb skončí se svojí koncovou rychlostí)

6 ....

Blending next (nový blok se spustí po dokončení předchozího, původní pohyb skončí s počáteční rychlostí nového bloku)

Superimposed

Příznak vykonání jako vedlejší (superimposed) pohyb

Bool

Výstupy

yAxesGroup

Odkaz na skupinu os

Reference

Done

Příznak dokončení algoritmu

Bool

CommandAborted

Příznak přerušení funkce bloku

Bool

Busy

Příznak, že algoritmus ještě neskončil

Bool

Active

Příznak, že blok řídí osu

Bool

Error

Příznak chyby

Bool

ErrorID

Výsledek poslední operace

Error

i ....

obecná chyba systému REXYGEN

Příklad

Pro porovnání je následující příklad totožný jako u bloku MC_GroupStop. Časové průběhy v levém sloupci odpovídají bloku MC_GroupStop. Průběhy v pravém sloupci bloku MC_GroupHalt. Je vidět, že při použití bloku MC_GroupHalt dojde k dojetí do požadované polohy již na druhé spuštění exekutivy bloku MC_MoveLinearAbsolute.

image/svg+xmlzrychleni1 1 zpomaleni 0.75 souradnicovy system1 2 skupina os [skupina_os] rychlost1 0.4 rezim prevzeti osy1 1 rezim michani pohybu1 1 poloha z1 1 poloha y1 1.1 poloha x1 0.9 parametr pro navazani pohybu1 1 natoceni efektoru1 −1.5 execute2 [execute2] execute1 [execute1] RTOV1 uVecu1u2u3u4u5u6u7u8yVec MC_MoveLinearAbsolute − blok1 uAxesGroupExecutePositionVelocityAccelerationJerkCoordSystemBufferModeTransitionModeTransitionParameteryAxesGroupDoneCommandAbortedBusyActiveErrorErrorID MC_GroupHalt uAxesGroupExecuteDecelerationJerkyAxesGroupDoneCommandAbortedBusyActiveErrorErrorID

image/svg+xml0 1 2 3 4 5 6 7 8 9 10 −0.2 0 0.2 0.4 0.6 0.8 1 1.2 Spusteny − MC_MoveLinearAbsolute bool 0 1 2 3 4 5 6 7 8 9 10 −0.2 0 0.2 0.4 0.6 0.8 1 1.2 Ukonceny − MC_MoveLinearAbsolute bool 0 1 2 3 4 5 6 7 8 9 10 −0.2 0 0.2 0.4 0.6 0.8 1 1.2 Chyba − MC_MoveLinearAbsolute bool 0 1 2 3 4 5 6 7 8 9 10 −0.2 0 0.2 0.4 0.6 0.8 1 1.2 Spusteny − MC_GroupStop bool 0 1 2 3 4 5 6 7 8 9 10 −0.2 0 0.2 0.4 0.6 0.8 1 1.2 Ukonceny − MC_GroupStop bool 0 1 2 3 4 5 6 7 8 9 10 −0.2 0 0.2 0.4 0.6 Rychlost skupiny os Rychlost [rad/s] 0 1 2 3 4 5 6 7 8 9 10 0.5 0.6 0.7 0.8 0.9 1 1.1 1.2 Cas [s] Poloha [rad] Poloha skupiny os poz. poloha xpoz. poloha y osa x osa y 0 1 2 3 4 5 6 7 8 9 10 −0.2 0 0.2 0.4 0.6 0.8 1 1.2 Spusteny − MC_MoveLinearAbsolute bool 0 1 2 3 4 5 6 7 8 9 10 −0.2 0 0.2 0.4 0.6 0.8 1 1.2 Ukonceny − MC_MoveLinearAbsolute bool 0 1 2 3 4 5 6 7 8 9 10 −0.2 0 0.2 0.4 0.6 0.8 1 1.2 Chyba − MC_MoveLinearAbsolute bool 0 1 2 3 4 5 6 7 8 9 10 −0.2 0 0.2 0.4 0.6 0.8 1 1.2 Spusteny − MC_GroupHalt bool 0 1 2 3 4 5 6 7 8 9 10 −0.2 0 0.2 0.4 0.6 0.8 1 1.2 Ukonceny − MC_GroupHalt bool 0 1 2 3 4 5 6 7 8 9 10 −0.2 0 0.2 0.4 0.6 Rychlost skupiny os Rychlost [rad/s] 0 1 2 3 4 5 6 7 8 9 10 0.5 0.6 0.7 0.8 0.9 1 1.1 1.2 Cas [s] Poloha [rad] Poloha skupiny os poz. poloha xpoz. poloha y osa x osa y

V druhém příkladě je spuštěn blok MC_MoveLinearAbsolute, který je následně přerušen blokem MC_GroupHalt. Ještě před zastavením je spuštěn druhý pohyb blokem dalším MC_MoveLinearAbsolute. Příklad ilustruje to, že pro možnost spuštění dalšího pohybu, nemusí dojít k úplnému zastavení skupiny os.

image/svg+xmlzrychleni2 1 zrychleni1 1 zpomaleni 0.75 souradnicovy system2 2 souradnicovy system1 2 skupina os [skupina_os] rychlost2 0.4 rychlost1 0.4 rezim prevzeti osy2 1 rezim prevzeti osy1 1 rezim michani pohybu2 1 rezim michani pohybu1 1 poloha z2 1 poloha z1 1 poloha y2 0.7 poloha y1 1.1 poloha x2 0.8 poloha x1 0.9 parametr pro navazani pohybu2 1 parametr pro navazani pohybu1 1 natoceni efektoru2 −1.5 natoceni efektoru1 −1.5 execute3 [execute3] execute2 [execute2] execute1 [execute1] RTOV2 uVecu1u2u3u4u5u6u7u8yVec RTOV1 uVecu1u2u3u4u5u6u7u8yVec MC_MoveLinearAbsolute − blok2 uAxesGroupExecutePositionVelocityAccelerationJerkCoordSystemBufferModeTransitionModeTransitionParameteryAxesGroupDoneCommandAbortedBusyActiveErrorErrorID MC_MoveLinearAbsolute − blok1 uAxesGroupExecutePositionVelocityAccelerationJerkCoordSystemBufferModeTransitionModeTransitionParameteryAxesGroupDoneCommandAbortedBusyActiveErrorErrorID MC_GroupHalt uAxesGroupExecuteDecelerationJerkyAxesGroupDoneCommandAbortedBusyActiveErrorErrorID

image/svg+xml0 1 2 3 4 5 6 0 0.5 1 Spusteny − MC_MoveLinearAbsolute −− blok1 bool 0 1 2 3 4 5 6 0 0.5 1 Ukonceny − MC_MoveLinearAbsolute −− blok1 bool 0 1 2 3 4 5 6 0 0.5 1 Spusteny − MC_MoveLinearAbsolute −− blok2 bool 0 1 2 3 4 5 6 0 0.5 1 Ukonceny − MC_MoveLinearAbsolute −− blok2 bool 0 1 2 3 4 5 6 0 0.5 1 Spusteny − MC_GroupHalt bool 0 1 2 3 4 5 6 0 0.5 1 Ukonceny − MC_GroupHalt bool 0 1 2 3 4 5 6 −0.2 0 0.2 0.4 Rychlost skupiny os Rychlost [rad/s] 0 1 2 3 4 5 6 0.6 0.8 1 1.2 Cas [s] Poloha [rad] Poloha skupiny os poz. poloha xpoz. poloha y osa x osa y

2024 © REX Controls s.r.o., www.rexygen.com