MC_MoveAdditive, MCP_MoveAdditive – Pohyb do pozice (relativně ke konci předchozího pohybu)
Symboly blokůPotřebná licence: MOTION CONTROL
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_MoveAdditive přesune osu do zadané polohy za nejkratší možný čas (s respektováním zadaných omezení). Koncová poloha se určí tak, že se k aktuální poloze v okamžiku převzetí řízení osy přičte hodnota parametru Distance. Pokud není aktivován další blok, osa se v koncovém bodu zastaví. 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 (tj. stejně jako pro mód buffered).
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í.
Vstupy
uAxis | Odkaz na osu (přípustné je jen spojení RM_Axis.axisRef–uAxis nebo yAxis–uAxis) | Reference |
Execute | Náběžná hrana aktivuje blok | Bool |
Distance | Požadovaná vzdálenost (od okamžiku začátku řízení osy blokem) [unit] | Double (F64) |
Velocity | Maximální povolená rychlost [unit/s] | Double (F64) |
Acceleration | Maximální povolené zrychlení [unit/s] | Double (F64) |
Deceleration | Maximální povolené zpomalení [unit/s] | Double (F64) |
Jerk | Maximální povolená změna zrychlení [unit/s] | Double (F64) |
BufferMode | Režim převzetí osy | Long (I32) |
|
|
|
Výstupy
yAxis | Odkaz na osu (přípustné je jen spojení RM_Axis.axisRef–uAxis nebo yAxis–uAxis) | 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 |
|
|
|
Příklad
[Předchozí] [Na začátek] [Výše] [Další]
2020 © REX Controls s.r.o., www.rexygen.com