RM_AxesGroup – Skupina os pro koordinované řízení pohybu
Symbol blokuPotřebná licence: COORDINATED MOTION
Popis funkce
Blok RM_AxesGroup je základní blok skupiny os pro koordinovaný pohyb. Představuje sdílenou strukturu, kde jsou uloženy všechny stavy a parametry skupiny. Algoritmus tohoto bloku představuje kontrolu nastavených mezí, havarijní zastavení v případě potřeby, předávání dat do a z bloků RM_Axis podřízených os, přepočet všech stavů a výstupů pro případ, že žádný blok není aktivní, ale je potřeba generovat pohyb (např. zastavení v PCS a částečně i algoritmus pro generování požadované trajektorie). Výstupem tohoto bloku jsou pouze stavové a pomocné signály (viz dále).
Před spuštěním koordinovaného pohybu je nutné ke skupině (bloku RM_AxesGroup) připojit jednotlivé osy (spuštěním bloku MC_AddAxisToGroup pro každou osu), přiřadit kinematickou transformaci (spuštěním bloku jednoho z bloků MC_SetKinTransform_Xxx) a skupinu povolit (spuštěním bloku MC_GroupEnable).
Další důležité administrativní bloky pro řízení stavu skupiny os jsou MC_GroupReset (smaže chybu, tj. přepíná skupinu ze stavu ErrorStop do stavu Standstill), MC_GroupDisable (přepíná skupinu os do stavu PowwerOff) a MC_UngroupAllAxis (ruší všechna nastavení, tj. odebere osy, odebere kinematickou transformaci, přepne do stavu PowwerOff).
Implicitní hodnoty parametrů (zejména limity na rychlost a zrychlení) jsou záměrně nastaveny na 0, což je nedovolená hodnota. Všechny parametry tak musí nastavit uživatel podle skutečných možností připojeného motoru a stroje.
Víme, že blok RM_AxisSpline může být v rychlejší úloze než blok RM_Axis a pak se musí provádět interpolace polohy a rzchlosti. Podobně bloky RM_Axis mohou být v rychlejší úloze než RM_AxesGroup a pak je potřeba provádět interpolaci. Interpolaci je potřeba provádět v rychlejší úloze (tj. v blocích RM_Axis), ale režim interpolace se zadává v bloku RM_AxesGroup parametrem InterpolationMode.
Vektortové parametry min a max jsou nepovinné. Pokud jsou zadány, zadávají se ve stejném formátu jako poloha skupiny (tj. např. parametr Position bloku MC_MoveLinearAbsolute). Tento formát je definován kinematickou transformací, tj. blokem MC_SetKinTransform_Lin nebo podobným (tj. MC_SetKinTransform_Xxx). Pohyb je zastaven (a blok RM_AxesGroup přejde do stavu ErrorStop, pokud hrozí překročení hodnoty v kterékoliv souřadnici. Rotační souřadnice se ale nekontrolují.
Poznámka: U omezení na rychlost otáčení (parametr VelRot) je základní jednotka radián za sekundu. Připojená kinematická transformace však může změnit jednotku pro zadávání úhlu (např. na úhlové stupně nebo otáčky) a pak se rychlost zadává v těchto jednotkách za sekundu. Stejné pravidlo platí pro zrychlení a jerk, tj. parametry AccRot a JerkRot.
Parametry
Velocity | Maximální povolená rychlost [unit/s] | Double (F64) |
Acceleration | Maximální povolené zrychlení [unit/s] | Double (F64) |
Jerk | Maximální povolená změna zrychlení [unit/s] | Double (F64) |
VelRot | Maximální povolená rychlost otáčení [rotunit/s] | Double (F64) |
AccRot | Maximální povolené zrychlení v otáčení [rotunit/s] | Double (F64) |
JerkRot | Maximální povolená změna zrychlení v otáčení [rotunit/s] | Double (F64) |
InterpolationMode | Algoritmus pro interpolaci 2 | Long (I32) |
|
|
|
min | Minimální poloha v MCS (vektor). Při překročení kterékoliv souřadnice je pohyb zastaven a blok přejde do stavu ErrorStop [] | Double (F64) |
max | Maximální poloha v MCS (vektor). Při překročení kterékoliv souřadnice je pohyb zastaven a blok přejde do stavu ErrorStop [] | Double (F64) |
Výstupy
refGroup | Odkaz na skupinu os | Reference |
refPos | Vektor generovaných poloh a rychlostí v MCS | Reference |
iState | Stav skupiny | Long (I32) |
|
|
|
ErrorID | Výsledek poslední operace | Error |
|
|
|
Stavový diagram skupiny os
Čtení z výstupu refPos
Z výstupu refPos bloku RM_AxesGroup lze číst aktuální polohu a rychlost (stejně
jako pomocí bloků MC_GroupReadActualPosition,
MC_GroupReadActualVelocity; zrychlení zde není vyčíslováno
a musí se použít MC_GroupReadActualAcceleration).
Výstup refPos je vektorový, pro získání konkrétních hodnot je nutné
použít blok VTOR z knihovny MATRIX. Tento blok má 8 výstupů.
Pokud je souřadnic více než 8, vyřeší se to paralelním připojením
dalšího bloku VTOR (viz. Obr. níže) do kterého je nutné
zadat jako parametr správný offset (od jakého indexu se mají dát data na
výstup). Např. robot AGEBOT (jeho sestavení jako skupiny os viz. níže) má
čtyři osy. Bude mít tedy čtyři souřadnice pro polohu a rychlost. Jedním
blokem VTOR získáme informaci o poloze a rychlosti (výstupy
–
a
–
bloku
VTOR1).
Sestavení skupiny os
Pro správné spuštění bloku generujícího víceosý pohyb je nutné definovat
jednotlivé osy RM_Axis a postupně je všechny přidat do skupiny os
pomocí bloku MC_AddAxisToGroup. Dále je třeba nastavit
kinematickou transformaci (dle typu stroje jeden z bloků MC_SetKinTransform_xxx). Nakonec
je třeba aktivovat skupinu os blokem MC_GroupEnable.
Pro pohyby v PCS je nutné ještě přidat kartézkou transformaci (blok
MC_SetCartesianTransforms). Zpět do výchozího
stavu (tj. před přiřazení os do skupiny) se skupina dostane spuštěním bloku
MC_UngroupAllAxis. Příklad sestavení osy je uveden na
obrázku níže.
[Na začátek] [Výše] [Další]
2023 © REX Controls s.r.o., www.rexygen.com