Kapitola 20
MC_COORD – Koordinované řízení pohybu

Tato kategorie bloků zahrnuje bloky pro koordinovaný pohyb více os, jak jsou definovány ve specifikaci PLCopen. Pro bloky této kategorie platí stejné obecné zásady, jaké byly uvedeny v kategorii MC_SINGLE (bloky pro řízení pohybu v jedné ose). Dále platí, že sdílená struktura AXES_GROUP_REF popisovaná v PLCopen je reprezentována blokem RM_AxesGroup.

Pohybové bloky jsou opět ve variantě s parametry na vstupech a v parametrech, tj. s prefixem MC_ a MCP_. Protože nelze dopředu říci, kolik bude souřadnic (je to parametr bloku RM_AxesGroup ), musí být údaje o poloze vektorové parametry, respektive vstupy (předpokládá to i norma PLCopen ). Pro variantu MC_ se na příslušný vstup připojí blok RTOV (popřípadě řetězec těchto bloků, pokud je vektor delší), který umožňuje složit vektor ze skalárních vstupů. Pro výstupní vektory se analogicky použije blok VTOR. Oba tyto bloky se nacházejí v knihovně MATRIX. V případě MCP_ varianty se příslušný vektor zapisuje přímo do bloku jako jeho parametr.

Rychlost, zrychlení, zpomalení a jerk se zadává skalárně (jedno číslo, nikoliv vektor) a je to vždy ve smyslu tečném k výsledné trajektorii. Hodnota se kontroluje jen při spuštění bloku (zda není větší, než zadané maximum v bloku RM_AxesGroup), takže v některých případech může být rychlost vyšší.

 RM_AxesGroup – Skupina os pro koordinované řízení pohybu
 RM_Feed – MC feeder
 RM_Gcode – CNC řízení pohybu
 MC_AddAxisToGroup – Přidání osy do skupiny os
 MC_UngroupAllAxes – Odebrání všech ose ze skupiny
 MC_GroupEnable – Převedení skupiny do stavu GroupStandby
 MC_GroupDisable – Převedení skupiny do stavu GroupDisabled
 MC_SetCartesianTransform, MCP_SetCartesianTransform – Kartézská transformace
 MC_ReadCartesianTransform – Přečtení použité kartézské transformace
 MC_GroupSetPosition, MCP_GroupSetPosition – Nastavení polohového offsetu skupiny os
 MC_GroupReadActualPosition – Aktuální poloha skupiny os
 MC_GroupReadActualVelocity – Aktuální rychlost skupiny os
 MC_GroupReadActualAcceleration – Aktuální zrychlení skupiny os
 MC_GroupStop, MCP_GroupStop – Zastavení koordinovaného pohybu
 MC_GroupHalt, MCP_GroupHalt – Zastavení koordinovaného pohybu (přerušitelné)
 MC_GroupInterrupt, MCP_GroupInterrupt – Přerušení pohybu skupiny os
 MC_GroupContinue – Pokračování v přerušeném pohybu
 MC_GroupReadStatus – Stav skupin os
 MC_GroupReadError – Chyby ve skupině os
 MC_GroupReset – Nulování chyb os ve skupině
 MC_MoveLinearAbsolute, MCP_MoveLinearAbsolute – Pohyb do pozice po přímkách (absolutní souřadnice)
 MC_MoveLinearRelative, MCP_MoveLinearRelative – Pohyb do pozice po přímkách (relativní souřadnice)
 MC_MoveCircularAbsolute, MCP_MoveCircularAbsolute – Pohyb do pozice po kružnicích (absolutní souřadnice)
 MC_MoveCircularRelative, MCP_MoveCircularRelative – Pohyb do pozice po kružnicích (relativní souřadnice)
 MC_MoveDirectAbsolute, MCP_MoveDirectAbsolute – Nekoordinovaný pohyb do pozice (absolutní souřadnice)
 MC_MoveDirectRelative, MCP_MoveDirectRelative – Nekoordinovaný pohyb do pozice (relativní souřadnice)
 MC_MovePath, MCP_MovePath – Generování obecné trajektorie v prostoru
 MC_GroupSetOverride, MCP_GroupSetOverride – Nastavení násobivých faktorů na osách ve skupině
Transformace a souřadné systémy

Transformace mezi polohou v kartézských souřadnicích a polohou motorů je obecně nelineární a není tak jednoduše možné určit, zda naplánovaná trajektorie nepřekračuje limity na rychlost a zrychlení v jednotlivých osách (motorech). Proto se provede vygenerování trajektorie dle zadaných parametrů a její spuštění. Pokud dojde k překročení limitu polohy, rychlosti nebo zrychlení v ose, skupina přejde do chybového stavu a spustí se zastavovací sekvence po původní trajektorii. Pokud přesto dojde k překročení systémového limitu polohy, rychlosti nebo zrychlení na některé z os, jsou všechny osy skupiny brzděny s maximální možnou intenzitou samostatně a tedy již ne po požadované trajektorii.

Norma PLCopen dále rozlišuje tři souřadné systémy. To, jaký souřadný systém se použije (tj. ve kterém je zadávána poloha) určuje parametr CoordSystem příslušného pohybového bloku. Možnosti jsou:

  • ACS (Axis Coordinate System) – V tomto souřadném systému jsou jednotlivé souřadnice přímo polohy jednotlivých motorů/připojených os.
  • MCS (Machine Coordinate System) – Pravoúhlý souřadný systém spojený se strojem. Předpokládá se, že tento souřadný systém obsahuje tři (popř. dvě pro planární stroje) na sebe navzájem kolmé osy pro určení polohy (tzv. kartézký souřadný systém; obvykle se používá pravotočivý) a dále až 3 souřadnice pro určení natočení koncového efektoru stroje. Pro reprezentaci směru/úhlu natočení se obvykle používá směrový vektor (tři souřadnice polohy, přičemž směr od bodu [0, 0, 0] k zadanému bodu určuje směr koncového efektoru) nebo tzv. eulerovy úhly (obdoba zeměpisné šířky, zeměpisné délky a azimutu na zeměkouli). Vazbu mezi MCS a ACS určuje kinematická transformace (tj. některý z bloků MC_SetKinTransform_xxx ), která tím pak také určuje jak je MCS definován.
  • PCS (Product Coordinate System) – Pravoúhlý souřadný systém spojený s výrobkem. Je to vlastně posunutý a otočený MCS. Někdy se PCS oproti MCS pohybuje. Vazbu mezi MCS a PCS zajišťuje (pro statický případ) blok MC_SetCartesianTransform

Níže uvedený obrázek ukazuje reprezentaci bodu P (ležícím na obrobku – červený lichoběžník) v různých souřadných systémech. V PCS je dán polohou PPCS = (xPCS,yPCS). Translací a rotací lze převést do MCS jako PMCS = (xMCS,yMCS). Nakonec může být popsán v ACS jako dvojice úhlů natočení os PACS = (ϕ1,ϕ2)

PIC

Druhy pohybů

Generované pohyby lze rozdělit na dva základní druhy:

Pohyb z bodu do bodu (Point - to - Point movements)
– Při tomto pohybu se chceme dostat do zadané pozice co nejrychleji. To se provede tak, že se pomocí inverzní kinematiky spočte požadované natočení pohonu, které je nutné pro dosažení zadané pozice. Každý pohon se pak bude do této pozice řídit nezávisle na ostatních a to s maximální rychlostí a zrychlením nastavenými jako limity na osách. Pokud se budou takto pohybovat všechny osy, tak výsledná trajektorie mezi počátečním a koncovým bodem v MCS není definována. Je tedy nutné dát pozor, jestli je bezpečné tento blok použít. Použitelné bloky pro tento pohyb jsou:
Pohyb po dané trajektorii (Cartesian Path Movement)
– Podporované trajektorie jsou pohyb po přímce, po kružnici a po spline křivce. Trajektorie je vygenerována obecně v prostoru a následně převedena inverzní kinematikou do souřadnicového systému pohonů ACS. Takto přepočtenou trajektorii je pak již možné přivést jako požadovanou hodnotu na regulátory pohonů. Použitelné bloky pro tento pohyb jsou:

PIC

Míchání pohybů

Důležitá část při generování pohybu je navazování po sobě jdoucích pohybových příkazů na skupinu os (blending). Bez zapnutí blending módů provede skupina os vždy pohyb do požadované pozice, kde zastaví přesně na cílovém místě a uvede se do klidu. Následující pohyb se do této doby nespustí. Po zastavení je tedy nutné se opět znovu rozjet. V mnoha aplikacích může být toto neustálé zastavování a rozjíždění nežádoucí a pohyby je nutné nějak prokládat. Blending je vhodné použít například pro:

  • Zrychlení výroby.
  • Generování hladších trajektorií a tím zmenšení mechanického namáhání.
  • Některé aplikace vyžadují pohyby s konstantní rychlostí (např. nanášení lepidla, barvení, svařování, …)

Všechny výše uvedené příklady lze vyřešit použitím různých druhů blendingů. Společné pro všechny druhy je modifikace původní trasy v hladkou trajektorii bez rohů (zastavování). Na obrázku níže jsou uvedeny příklady některých možných navazování pohybu.

PIC

Přehled režimů převzetí osy

Tabulka režimů převzetí osy:



režim funkce


1: Aborting Start následujícího bloku okamžitě.


2: Buffered Start následujícího bloku ihned po dokončení předcházejícího
(dojde k zastavení pohybu).


3: BlendingLow Rychlost je proložena s menší z rychlostí obou bloků.


4: BlendingHigh Rychlost je proložena s vetší z rychlostí obou bloků.


5: BlendingPrevious Rychlost je proložena s rychlostí prvního bloku.


6: BlendingNext Rychlost je proložena s rychlostí druhého bloku.


Přehled režimů míchání pohybu

Tabulka režimů míchání pohybu:



režim funkce


1: TMNone Nevkládá žádnou přechodovou křivku.


2: TMStartVelocity Přechod s danou počáteční rychlostí.


3: TMConstantVelocity Přechod s danou konstantní rychlostí.


4: TMCornerDistance Přechod s daným corner distance.


5: TMMaxCornerDeviation Přechod s daným maximálním corner deviation.


11: Milanův režim Nový blok se spustí po dokončení předchozího,
původní pohyb skončí s počáteční rychlostí nového bloku.


Synchronizace

Pro správnou synchronizaci je nutné (podrobněji viz. popis skupiny MC_SINGLE), aby všechny bloky přiřazené do jedné skupiny (k jednomu bloku) RM_AxesGroup byly buď v jedné úloze/výkresu/tasku nebo v několika úlohách se stejnou periodou vzorkování. Blok RM_AxesGroup by měl být vykonán jako první, po všech k němu přiřazených blocích RM_Axis. Pokud se na některé ose využívá interpolace (blok RM_AxisSpline), je nutné, aby se blok RM_AxesGroup vykonával mezi bloky RM_Axis a RM_AxisOut všech k němu přiřazených os (respektive všech těch, kde se využívá RM_AxisSpline).

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