RM_Axis – Osa pro řízení pohybu
Symbol blokuPotřebná licence: MOTION CONTROL
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.axisRef–uAxis nebo yAxis–uAxis) | 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) |
|
|
|
ErrorID | Kod chyby ve stavu errorstop | Error |
|
|
|
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) |
|
|
|
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/s] 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) |
|
|
|
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.
Stavový diagram osy
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ů
[Na začátek] [Výše] [Další]
2023 © REX Controls s.r.o., www.rexygen.com