RM_Axis – Osa pro řízení pohybu

Symbol blokuPotřebná licence: MOTION CONTROL
Qt SVG Document Exported by REXYGEN Studio uChain axisRef CommandedPosition CommandedVelocity CommandedAcceleration CommandedTorque State ErrorID PhysicalPosition RM_Axis

Popis funkce
Blok RM_AXIS je základní blok osy pro řízení pohybu. Představuje sdílenou strukturu, kde jsou uloženy všechny stavy a parametry osy. Algoritmus tohoto bloku se stará o kontrolu nastavených mezí, havarijní zastavení v případě potřeby a přepočet všech stavů a výstupů pro případ, že žádný blok není aktivní, ale osa (motor) má nenulovou rychlost. Výstupem tohoto bloku jsou pouze požadované hodnoty polohy, rychlosti, popřípadě zrychlení a momentu. Pokud nejde o virtuální osu a osa je spojena s reálným motorem, je nutné realizovat ještě regulátor polohy a rychlosti, který není součástí tohoto bloku – zpětnovazební signály jsou použity pouze pro kontrolu správné činnosti regulátoru, například odchylka nesmí překročit stanovenou mez, viz dále. Dále je mohou využívat některé speciální bloky, například bloky pro nalezení výchozí polohy. Zpětnovazební signál se připojují pomocí bloku RM_AxisSpline.

Parametry tohoto bloku jsou stejné, jaké vyžaduje PLCopen pro osu. Pokud jsou zadány parametry nesprávně (nekonzistentně), výstup errorID je nastaven na hodnotu -700 (neplatný parametr) a všechny ostatní bloky navázané na osu skončí s chybou -703 (chybný stav).

Parametry pro omezení rychlosti a zrychlení jsou dvojí. Aplikační parametry omezují hodnoty, které lze zadat do pohybových bloků, ale skutečná rychlost nebo zrychlení může být někdy větší. Systémové paramtry se překročit nesmí a pokud k tomu dojde, je pohyb zastaven a osa přejde do stavu errorstop.

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.

Vstupy

uChain

blok vstup nepoužívá, ale je možné připojit libovolný signál a tím definovat pořadí spouštění bloků

Long (I32)

Výstupy

axisRef

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

Reference

CommandedPosition

Požadovaná poloha osy Poloha, která se zadává do pohybových bloků. V případě homingu nebo cyklické osy se liší od PhysicalPosition

Double (F64)

CommandedVelocity

Požadovaná rychlost osy

Double (F64)

CommandedAcceleration

Požadované zrychlení osy

Double (F64)

CommandedTorque

Požadovaný moment/síla

Double (F64)

State

Stav osy pro řízení pohybu

Long (I32)

0 ....

Disabled (osa blokována)

1 ....

Stand still (osa připravena)

2 ....

Homing (hledání výchozí polohy)

3 ....

Discrete motion (jednorázový pohyb)

4 ....

Continuous motion (trvalý pohyb)

5 ....

Synchronized motion (pohyb synchronní s jinou osou)

6 ....

Coordinated motion (osa řízena blokem pro koordinovaný pohyb)

7 ....

Stopping (zastavování nebo dočasné blokování)

8 ....

Error stop (zastavování nebo blokování osy po chybě)

9 ....

Drive error (jako errorstop, ale chyba je způsobena vnějším signálem - obvykle chyba měniče)

ErrorID

Kod chyby ve stavu errorstop

Error

i ....

obecná chyba systému REXYGEN

PhysicalPosition

Požadovaná poloha osy Poloha, která se zapojuje do zpětnovazebního regulátoru. V případě homingu nebo cyklické osy se liší od CommandedPosition

Double (F64)

Parametry

AxisType

Druh osy  1

Long (I32)

1 ....

lineární osa

2 ....

cyklická osa s cyklickým polohovým senzorem

3 ....

cyklická osa s lineárním polohovým senzorem

4 ....

lineární osa v testovacím režimu. V tomto režimu jsou vypnuté některé kontroly, zejména polohové limity (včetně koncových spínačů). Tento typ je určen pro pokusy oživování, někdy se může hodit i pro trvalý provoz na cyklických osách.

EnableLimitPos

Příznak kontroly maximální polohy v kladném směru (tj. když je zaškrtnuto, je platné MaxPosAppl)

Bool

MaxPosAppl

Maximální hodnota v kladném směru pro pohybové bloky. Hodnota musí být menší než MaxPosSystem pro lineární osu. Pro cyklickou osu s lineárním senzorem hodnota omezuje na několik otáček (vhodné pro robotické aplikace) a musí být větší než MaxPosSystem.

Double (F64)

MaxPosSystem

Maximální hodnota v kladném směru (fyzický doraz)

Double (F64)

EnableLimitNeg

Příznak kontroly maximální polohy v záporném směru (tj. když je zaškrtnuto, je platné MinPosAppl)

Bool

MinPosAppl

Maximální hodnota v záporném směru pro pohybové bloky Hodnota musí být větší než (nastává dříve) MinPosSystem pro lineární osu. Pro cyklickou osu s lineárním senzorem hodnota omezuje na několik otáček (vhodné pro robotické aplikace) a musí být menší než (nastává později) MaxPosSystem.

Double (F64)

MinPosSystem

Maximální hodnota v záporném směru (fyzický doraz)

Double (F64)

EnablePosLagMonitor

Příznak kontroly skluzu (rozdílu mezi požadovanou a skutečnou polohou)

Bool

MaxPositionLag

Maximální hodnota skluzu

Double (F64)

MaxVelocitySystem

Maximální hodnota rychlosti (havarijní)

Double (F64)

MaxVelocityAppl

Maximální hodnota rychlosti (pracovní)

Double (F64)

MaxAccelerationSystem

Maximální hodnota zrychlení (havarijní)

Double (F64)

MaxAccelerationAppl

Maximální hodnota zrychlení (pracovní)

Double (F64)

MaxDecelerationSystem

Maximální hodnota brždění (havarijní)

Double (F64)

MaxDecelerationAppl

Maximální hodnota brždění (pracovní)

Double (F64)

DefaultJerk

Maximální doporučená změna zrychlení [unit/s3] Skutečná změna zrychlení se nekontroluje a může překročit tuto hodnotu.

Double (F64)

MaxTorque

Maximální hodnota momentu/síly

Double (F64)

TorqueRatio

Poměr momentu a zrychlení. Pokud moment osy není určen jiným způsobem (např. pomocí bloku MC_TorqueControl), určuje se moment ze zrychlení pomocí tohoto koeficientu.

Double (F64)

LoopDelay

zpoždění mezi požadovanou a skutečnou hodnotou [s] Zpoždění nastává vlivem periody vzorkování, komunikace s externím kontrolérem, zpožděním regulační smyčky. Nastavení umožňuje přesněji kontrolovat PositionLag. (not yet implemented)

Double (F64)

StartMode

Volby režimu při zapnutí  1

Long (I32)

1 ....

při zapnutí je pohyb zastaven

2 ....

při zapnutí se pohyb pokračuje aktuální rychlostí motoru

HomingRequired

Pokud je zaškrtnuto, tak jsou blokovány všechny pohyby (kromě MC_Home), dokud se neprovede homing

Bool

Příklad
Následující schéma znázorňuje základní zapojení bloků z knihovny Motion Control v minimální realizaci nutné pro zahájení pohybu. Fyzická osa je reprezentována blokem RM_Axis a jí příslušnou datovou strukturou. Po nastavení omezení na požadovaný průběh pohybu lze na vstupy bloku připojit signál aktuální polohy, rychlosti a momentu (využíváno pro kontrolu skluzu) popřípadě logické signály koncových spínačů pro nalezení referenční výchozí polohy. Výstupní signál axisRef se připojuje na vstup všech bloků pracujících s danou osou. Před zahájením pohybu je třeba osu aktivovat blokem MC_Power, čímž dojde k přechodu ze zablokovaného do klidového stavu. V tuto chvíli je již možné zahájit libovolný jednorázový, spojitý nebo synchronizovaný pohyb spuštěním příslušného funkčního bloku. Generovaná trajektorie pohybu, tedy požadovaný průběh polohy, rychlosti a zrychlení je k dispozici na výstupech bloku RM_Axis. Odtud může být přiveden do regulační struktury pohonu, která existuje buďto lokálně v systému REXYGEN ve stejném nebo jiném tasku nebo je implementována přímo v řídicí jednotce motoru (zesilovač, frekvenční měnič), kam může být ze systému REXYGEN předána s použitím některé ze standardních sériových komunikací. V případě zadání chybných parametrů, volání nepřípustného příkazu nebo při překročení maximální hodnoty skluzu dochází k nouzovému zastavení, osa přechází do režimu chyby, kterou indikuje na výstupu ErrorID. Pro opětovné zahájení pohybu je třeba chybu kvitovat blokem MC_Reset. Přechod mezi jednotlivými režimy osy je znázorněn na stavovém diagramu.

image/svg+xmlzrychleni_z_generatoru [pozadovane_zrychleni_pro_motor_menic] zrychleni1 50 zpomaleni1 20 smer1 1 rychlost_z_generatoru [pozadovana_rychlost_pro_motor_menic] rychlost1 30 rych [aktualni_rychlost_z_motoru_menice] poloha_z_generatoru [pozadovana_poloha_pro_motor_menic] poloha1 100 pol [aktualni_poloha_z_motoru_menice] mod1 2 execute1 [execute1] RM_Axis HLDActualPosActualVelocityActualTorqueLIMNLIMZLIMPaxisRefCommandedPositionCommandedVelocityCommandedAccelerationCommandedTorqueiStateErrorID MC_Power uAxisEnableyAxisStatusBusyActiveErrorErrorID MC_MoveAbsolute − blok 1 uAxisExecutePositionVelocityAccelerationDecelerationJerkBufferModeDirectionyAxisDoneCommandAbortedBusyActiveErrorErrorID CNB 1

Stavový diagram osy
image/svg+xmlSynchronizovanýpohyb Jednorázovýpohyb Spojitýpohyb Zastavování Klid Chybovézastavení Zablokovaný MC_MoveAbsoluteMC_MoveRelativeMC_MoveAdditiveMC_PositionProfileMC_Halt(MC_Superimposed)MC_Gearln(Slave)MC_GearlnPos(Slave)MC_Camln(Slave)MC_CombineAxes(Slave)MC_MoveVelocityMC_VelocityProfileMC_AccelerationProfileMC_MoveContinousAbsoluteMC_MoveContinousRelative Hotový HotovýMC_Home Pozn.4 Pozn.6Pozn.3Pozn.2Pozn.1 Výchozíustavení MC_StopPozn.5 Poznámka1:Poznámka2:Poznámka3:Poznámka4:Poznámka5:Poznámka6: Zlibovolnéhostavu.PokudvosedošlokchybZlibovolnéhostavu.MC_Power.Enable=FALSEazároveMC_ResetANDMC_Power.Status=FALSEMC_ResetANDMC_Power.Status=TRUEANDMC_Power.Enable=TRUEMC_Power.Enable=TRUEANDMC_Power.Status=TRUEMC_Stop.Done=TRUEANDMC_Stop.Execute=FALSE ě . ň naoseneníchyba.

Míchání pohybů
Norma PLCOpen definuje pro bloky spouštějící pohyb osy vstupní parametr BufferMode, který určuje chování osy v případě, že je za běhu zavolán nový příkaz ve formě jiného funkčního bloku. Tento přechod mezi různými pohyby (míchání, "Blending") lze řešit několika způsoby. Následující tabulka podává stručné vysvětlení funkce jednotlivých režimů míchání pohybu a jejich vliv na tvar výsledné generované trajektorie. Detailní popis lze nalézt ve specifikaci PLCOpen.



Aborting

nový pohyb okamžitě přerušuje původní příkaz



Buffered

nový pohyb je vykonán po dokončení původního příkazu, neprobíhá žádné míchání



Blending low

nový pohyb je vykonán po dokončení původního příkazu, osa však nezastavuje v původní cílové pozici, ale končí zde rychlostí určenou jako nejnižší hodnota ze dvou limitů pro maximální rychlost zadanou na vstupech dvou bloků, které přebírají řízení osy



Blending high

nový pohyb je vykonán po dokončení původního příkazu, osa však nezastavuje v původní cílové pozici, ale končí zde rychlostí určenou jako nejvyšší hodnota ze dvou limitů pro maximální rychlost zadanou na vstupech dvou bloků, které přebírají řízení osy



Blending previous

nový pohyb je vykonán po dokončení původního příkazu, osa však nezastavuje v původní cílové pozici, ale končí zde rychlostí danou limitem pro maximální rychlost na vstupu prvního bloku



Blending next

nový pohyb je vykonán po dokončení původního příkazu, osa však nezastavuje v původní cílové pozici, ale končí zde rychlostí danou limitem pro maximální rychlost na vstupu druhého bloku



Ilustrace míchání pohybů
image/svg+xml0 5 10 15 0 20 40 Aborting rychlost Pozadovany prubeh rychlosti Ukonceni cinnosti prvniho bloku/spusteni druheho bloku Nastavena rychlost na prvnim bloku v 1 =30 Nastavena rychlost na druhem bloku v 2 =15 0 5 10 15 0 20 40 Buffered rychlost 0 5 10 15 0 20 40 Blending low rychlost 0 5 10 15 0 20 40 Blending high rychlost 0 5 10 15 0 20 40 Blending next rychlost 0 5 10 15 0 20 40 Blending previous rychlost

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