Kapitola 18
MC_SINGLE – Řízení pohybu v jedné ose

Tato kategorie bloků zahrnuje bloky pro řízení jedné osy (jednoho motoru), tak jak jsou definovány ve specifikaci PLCopen. Proto zde nejsou dodrženy konvence pro pojmenovávání zavedené v systému REXYGEN. Protože PLCopen používá pro všechny bloky v názvu prefix MC_, je tento princip dodržen i zde. Pro řízení pohybu je vhodné, spíše však nutné, bloky dle PLCopen doplnit o další bloky (jedná se o vše, co je v normě označeno jako vendor specific, a různá rozšíření). Takové bloky mají v názvu prefix RM_. Dále je potřeba si uvědomit, že PLCopen (respektive norma IEC 61131-3, ze které vychází) nerozlišuje vstupy od parametrů (vše na značce bloku vypadá jako vstup). Řídicí systém REXYGEN však parametry a vstupy zpracovává odlišně, zejména z důvodu lepší přehlednosti. Proto skoro všechny bloky existují ve dvojím provedení: s prefixem MC_, které jsou plně kompatibilní s PLCopen a mají tedy parametry na vstupech, a bloky s prefixem MCP_, které mají své vnitřní parametry jako ostatní bloky řídicího systému REXYGEN. Parametry, které bloky používají, ale nejsou definovány v PLCopen (tzv. vendor specific parametry), jsou i u bloků s prefixem MC_ zadávány jako parametry a výše popsaným změnám nepodléhají.

Specifikace PLCopen říká, že pro činnost bloku je důležitá hodnota parametrů/vstupů při náběžné hraně na vstupu Execute. Předtím a potom se mohou parametry/vstupy libovolně měnit a na funkci bloku to nemá vliv. V systému REXYGEN se předpokládá, že parametry se mění jen občas a proto parametry (na rozdíl od vstupů) nejsou „zapamatovány“ při náběžné hraně na vstupu Execute. Je proto potřeba dodržovat pravidlo, že parametry bloku se nesmí měnit, během jeho činnosti, tj. pokud je výstup Busy ve stavu zapnuto.

Popis bloků v této příručce je dostatečný pro jejich použití, nicméně nejsou zde vysvětleny hlubší souvislosti a motivace. Proto je doporučeno před použitím bloků pro řízení pohybu prostudovat i specifikaci PLCopen.

PLCopen definuje některé signály jako vstupně-výstupní. Je to zejména odkaz na osu (signál Axis) a odkazy na další, obvykle vendor specific, struktury. Řídicí systém REXYGEN vstupně-výstupní signály nepodporuje. Proto všechny bloky používají místo signálu Axis vstup uAxis a výstup yAxis. Blok na výstup yAxis vždy kopíruje hodnotu (odkaz na strukturu) vstupu uAxis. Pro správnou funkci je nutné, aby vstup uAxis byl spojen s výstupem axisRef příslušného bloku RM_Axis, a to buď přímo nebo prostřednictvím výstupu yAxis jiného bloku. Výstup yAxis není pro bloky důležitý, ale použitá koncepce umožňuje bloky řetězit a tím určit pořadí jejich vykonávání. Ostatní vstupně-výstupní signály (odkazy) používají stejný princip, popřípadě jsou definovány pouze jako vstupní.

PLCopen definuje výstupy Busy, Active, CommandAborted jako nepovinné téměř u všech bloků. V řídicím systému REXYGEN jsou tyto signály zavedeny stejným způsobem, ačkoliv v současné implementaci se u některých bloků nepoužívají. Tento způsob byl zvolen z důvodu snadné budoucí rozšiřitelnosti.

Jednotky použité pro polohu a vzdálenost si uživatel může zvolit libovolně. Mohou to být metry, milimetry, pulzy z čidla polohy, úhlové stupně (v případě rotační osy) nebo cokoliv jiného. Je však nutné zvolenou jednotku používat ve všech blocích připojených k příslušné ose a dále je potřeba si uvědomit, že rychlost se ve všech blocích musí zadávat ve zvolených jednotkách polohy za sekundu a analogicky zrychlení a jerk. Časové údaje jsou vždy v sekundách.

Řídicí systém REXYGEN používá více vláken pro spouštění bloků. Normálně se o to uživatel nemusí starat, nicméně použití odkazů (vstupy typu Reference) může narušit synchronizační mechanismus. Aby toto nenastalo, je nutné mít blok RM_Axis a blok, který je k němu připojen vstupem typu Reference, ve stejné úloze, tj. všechny bloky příslušející k jedné ose musí být v jedné úloze řídicího systému REXYGEN (viz bloky EXEC, TASK, IOTASK apod.). Některé bloky již mají synchronizaci ošetřenou, u těch je potřeba se řídit pokyny v této příručce. Momentálně se však jedná pouze o blok RM_AxisSpline).

Některé vstupy a parametry jsou typu výběr ze seznamu. V takovém případě jsou v seznamu vždy všechny hodnoty pro daný typ signálu. Pro některé bloky však určité hodnoty nedávají smysl (například blok MC_MoveVelocity nepodporuje Direction = shortest_way). Platné hodnoty jsou uvedeny v této příručce v popisu jednotlivých bloků.

U všech pohybových bloků platí pravidlo, že pokud parametr určující maximální rychlost, zrychlení, zpomalení nebo jerk není zadán, respektive má hodnotu 0, použije se hodnota nastavená v připojeném bloku RM_Axis.

 RM_Axis – Osa pro řízení pohybu
 MC_AccelerationProfile, MCP_AccelerationProfile – Generování trajektorie (zrychlení)
 MC_Halt, MCP_Halt – Zastavení pohybu (přerušitelné)
 MC_HaltSuperimposed, MCP_HaltSuperimposed – Zastavení pohybu (přídavné a přerušitelné)
 MC_Home, MCP_Home – Nalezení výchozí polohy
 MC_MoveAbsolute, MCP_MoveAbsolute – Pohyb do pozice (absolutní souřadnice)
 MC_MoveAdditive, MCP_MoveAdditive – Pohyb do pozice (relativně ke konci předchozího pohybu)
 MC_MoveRelative, MCP_MoveRelative – Pohyb do pozice (relativně k okamžiku spuštění)
 MC_MoveSuperimposed, MCP_MoveSuperimposed – Pohyb do pozice (přídavný pohyb)
 MC_MoveContinuousAbsolute, MCP_MoveContinuousAbsolute – Pohyb do pozice (absolutní souřadnice)
 MC_MoveContinuousRelative, MCP_MoveContinuousRelative – Pohyb do pozice (relativně ke konci předchozího pohybu)
 MC_MoveVelocity, MCP_MoveVelocity – Pohyb konstantní rychlostí
 MC_PositionProfile, MCP_PositionProfile – Generování trajektorie (poloha)
 MC_Power – Aktivace osy
 MC_ReadActualPosition – Skutečná poloha osy
 MC_ReadAxisError – Chyba osy
 MC_ReadBoolParameter – Čtení parametru (logická hodnota)
 MC_ReadParameter – Čtení parametru (číselná hodnota)
 MC_ReadStatus – Stav osy
 MC_Reset – Nulování chyb osy
 MC_SetOverride, MCP_SetOverride – Nastavení násobivých faktorů na ose
 MC_Stop, MCP_Stop – Zastavení pohybu
 MC_TorqueControl, MCP_TorqueControl – Řízení síly/momentu
 MC_VelocityProfile, MCP_VelocityProfile – Generování trajektorie (rychlost)
 MC_WriteBoolParameter – Nastavení parametru (logická hodnota)
 MC_WriteParameter – Nastavení parametru (číselná hodnota)
 RM_AxisOut – Výstupní blok osy
 RM_AxisSpline – Interpolace požadované polohy (rychlosti, zrychlení)
 RM_Track – Sledování a krokování

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