MC_MoveContinuousAbsolute, MCP_MoveContinuousAbsolute – Pohyb do pozice (absolutní souřadnice)

Symboly blokůPotřebná licence: MOTION CONTROL
Qt SVG Document Exported by REXYGEN Studio uAxis Execute Position Velocity Acceleration Deceleration Jerk BufferMode Direction EndVelocity yAxis InEndVelocity CommandAborted Busy Active Error ErrorID MC_MoveContinuousAbsolute Qt SVG Document Exported by REXYGEN Studio uAxis Execute yAxis InEndVelocity CommandAborted Busy Active Error ErrorID MCP_MoveContinuousAbsolute

Popis funkce

Bloky MC_MoveAbsolute a MCP_MoveAbsolute 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_MoveContinuousAbsolute přesune osu do zadané polohy za nejkratší možný čas (s respektováním zadaných omezení). Pokud není aktivován další blok, koncová rychlost zůstává konstantní na hodnotě parametru EndVelocity, osa se tedy nezastaví. V opačném případě koncová rychlost závisí na parametru BufferedMode následujícího bloku (viz popis tohoto parametru). Pro potřeby blending módu je počáteční a koncová rychlost tohoto bloku rovna jeho maximální dovolené rychlosti (tj. parametr Velocity). Pokud je směr následujícího bloku opačný, provede se přepnutí při nulové rychlosti.

Pokud je použit blending mod a následující blok je spuštěn příliš pozdě, může se stát, že není možné dosáhnout požadované rychlosti. Je několik způsobů, jak toto řešit:

1. První blok skončí s chybou a osa přejde do chybového stavu.

2. První blok skončí s chybou a řízení osy okamžitě přebírá následující blok.

3. První blok s respektováním omezení na maximální zrychlení a jerk vygeneruje trajektorii, která se co nejvíce blíží požadovanému koncovému bodu. K přepnutí řízení na následující blok dojde ve správné pozici, ale při jiné rychlosti, než je požadováno.

4. První blok „zabrzdí“, „kousek se vrátí“ a dokončí pohyb tak, že k přepnutí dojde v cílové poloze a s požadovanou rychlostí.

5. První blok blending mod ignoruje a dokončí pohyb, tj. chová se stejně, jako pro mod buffered.

Každá z uvedených variant má určité výhody a nevýhody. V současnosti je použita varianta 3 pro případ bez omezení jerku a varianta 4 pro případ s omezením jerku. Nicméně z hlediska návrhu aplikace je potřeba uvedenou situaci považovat za nedefinovaný stav a vyhnout se jí.

Poznámka 1: Jestliže je nastaven parametr EndVelocity na nulovou hodnotu, pak se chová blok stejným způsobem jako MC_MoveAbsolute.

Poznámka 2: Pokud dojde ke spuštění dalšího bloku dříve, než je dosaženo požadované polohy, blok se opět chová stejným způsobem jako MC_MoveAbsolute.

Vstupy

uAxis

Odkaz na osu (přípustné je jen spojení RM_Axis.axisRefuAxis nebo yAxisuAxis)

Reference

Execute

Náběžná hrana aktivuje blok

Bool

Position

Požadovaná poloha [unit]

Double (F64)

Velocity

Maximální povolená rychlost [unit/s]

Double (F64)

Acceleration

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

Double (F64)

Deceleration

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

Double (F64)

Jerk

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

Double (F64)

BufferMode

Režim převzetí osy

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)

Direction

Směr pohybu (jen pro cyklické osy nebo speciální případy)

Long (I32)

1 ....

kladný

2 ....

nejkratší

3 ....

záporný

4 ....

aktuální

EndVelocity

Koncová rychlost

Double (F64)

Výstupy

yAxis

Odkaz na osu (přípustné je jen spojení RM_Axis.axisRefuAxis nebo yAxisuAxis)

Reference

InEndVelocity

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
image/svg+xmlzrychleni2 25 zrychleni1 50 zpomaleni2 10 zpomaleni1 20 smer2 1 smer1 1 rychlost2 20 rychlost1 30 poloha2 150 poloh1a 100 mod2 2 mod1 2 koncova_rychlost 10 Osa [osa] MC_MoveContinuousAbsolute − blok 2 uAxisExecutePositionVelocityAccelerationDecelerationJerkBufferModeDirectionEndVelocityyAxisInEndVelocityCommandAbortedBusyActiveErrorErrorID MC_MoveAbsolute − blok 1 uAxisExecutePositionVelocityAccelerationDecelerationJerkBufferModeDirectionyAxisDoneCommandAbortedBusyActiveErrorErrorID Execute2 [execute2] Execute1 [execute1]

image/svg+xml0 5 10 15 0 0.5 1 Spusteny − blok 1 bool 0 5 10 15 0 0.5 1 Aktivni − blok 1 bool 0 5 10 15 0 0.5 1 Ukoncený − blok 1 bool 0 5 10 15 0 0.5 1 Spusteny − blok 2 bool 0 5 10 15 0 0.5 1 Aktivni − blok 2 bool 0 5 10 15 0 0.5 1 Ukonceny − blok 2 bool 0 5 10 15 0 50 Pozadovany prubeh rychlosti rychlost rychlost2rychlost1 0 5 10 15 0 100 200 300 Pozadovany prubeh trajektorie polohyCas [s] poloha

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