MC_MovePath, MCP_MovePath – Generování obecné trajektorie v prostoru

Symboly blokůPotřebná licence: COORDINATED MOTION
PIC PIC

Popis funkce

Bloky MC_MovePath a MCP_MovePath mají naprosto shodnou funkci, jediným rozdílem je, že MCP_ varianta bloku má méně vstupů a potřebné konstanty se zadávají jako parametry bloku.

Blok MC_MovePath slouží pro pohyb stroje (skupiny os) po definované křivce. Křivka je zadána pomocí NURBS aproximace pátého řádu. Křivka je vždy absolutní, proto je před spuštěním tohoto bloku nutné nastavit stroj do počátku křivky. V opačném případě je hlášena chyba -707 (skok v poloze). Blok umožňuje zadat parametry NURBS aproximace i ručně, ale to je prakticky neproveditelné (snad jen jako import z jiného programu). K tomuto bloku existuje speciální editor trajektorie (spouští se tlačítkem SpecialEdit v dialogu pro zadávání parametrů bloku), kde se křivka zadává/nakreslí pomocí bodů v prostoru, kterými má procházet a NURBS parametry jsou pak napočítány automaticky. NURBS parametrizace definuje pouze tvar křivky (pokud jistý parametr probíhá od 0 do 1 pak výstupní hodnota/vektor probíhá požadovanou křivku). Pro pohyb stroje musíme ještě definovat rychlost, s jakou křivku prochází. Blok podporuje 2 způsoby. Buď zadáme celkovou dobu jízdy a popřípadě dobu zrychlování na začátku a na konci pomocí parametrů TotalTime a RampTime nebo vytvoříme rychlostní profil pomocí parametrů pv a pt. Tento profil se skládá z několika intervalů a v každém se aproximuje polynomem 5. stupně. Ruční vytváření profilu je prakticky neproveditelné a editor trajektorií to zatím nepodporuje. Nouzově je možné použít editor bloku MC_PositionProfile (kde mají data stejný formát), přičemž poloha musí začínat v 0 a končit v 1. Ve většině případů však vystačíme s první metodou, protože editor trajektorií generuje NURBS tak, aby pro konstantní rychlost změny vstupního parametru byla přibližně konstantní rychlost pohybu po křivce. Teorie NURBS řeší aproximaci funkce jedné proměnné. Protože poloha je vektor, potřebujeme několik funkcí jedné proměné (nezávisle proměnná je pro všechny tyto funkce parametr, který probíhá interval od 0 do 1). Teoreticky máme tedy pro každou souřadnici jednu NURBS funkci, nicméně použitá implementace má některé parametry společné pro všechny souřadnice (například řád, uzlové body). Ačkoliv v bloku lze použít souřadný systém ACS, grafický editor trajektorie předpokládá pravoúhlý souřadný systém. Taktéž jsou formálně dovoleny všechny buffered a transition režimy, ale vzhledem k povaze bloku je vhodné používat jen buffered nebo blending next (ostatní většinou vedou na chybu -707 - skok v poloze). Tento blok nemá vstup PathData, který vyžaduje specifikace PLCopen. V systému REXYGEN má tento blok všechna potřebná data (nebo odkazy na ně) uložena v parametrech. Z tohoto důvodu se také nepoužívá blok MC_PathSelect.

Vstupy

uAxesGroup

Odkaz na skupinu os

Reference

Execute

Náběžná hrana aktivuje blok

Bool

TotalTime

Čas celého pohybu

Double (F64)

RampTime

Čas [s] zrychlování/zpomalování

Double (F64)

CoordSystem

Volba souřadného systému

Long (I32)

1 ....

ACM

2 ....

MCS

3 ....

PCS

BufferMode

Režim převzetí osy

Long (I32)

1 ....

Aborting (nový blok se spustí okamžitě)

2 ....

Buffered (nový blok se spustí po dokončení předchozího)

3 ....

Blending low (nový blok se spustí po dokončení předchozího, původní pohyb skončí s nižší rychlostí z obou bloků)

4 ....

Blending high (nový blok se spustí po dokončení předchozího, původní pohyb skončí s vyšší rychlostí z obou bloků)

5 ....

Blending previous (nový blok se spustí po dokončení předchozího, původní pohyb skončí se svojí koncovou rychlostí)

6 ....

Blending next (nový blok se spustí po dokončení předchozího, původní pohyb skončí s počáteční rychlostí nového bloku)

TransitionMode

Režim míchání pohybu

Long (I32)

1 ....

TMNone (xx)

2 ....

TMstartvelocity (proložení s danou počáteční rychlostí)

3 ....

TMConstantVelocity (proložení s danou konstantní rychlostí)

4 ....

TMCornerDistance (xx)

5 ....

TMMaxCornerDeviation (xx)

11 ...

Smooth(nový blok se spustí po dokončení předchozího, původní pohyb skončí s počáteční rychlostí nového bloku)

TransitionParameter

Parametr pro navázání pohybu (dle zvoleného režimu míchání)

Double (F64)

RampInFactor

faktor pro najíždění na počáteční polohu (0 = RampIn režim se nepoužívá), odpovídá přibližně relativní rychlosti a zrychlení

Double (F64)

Superimposed

Příznak vykonání jako vedlejší (superimposed) pohyb

Bool

Parametry

pc

Matice řídicích bodů  [0.0 1.0 2.0; 0.0 1.0 1.0; 0.0 1.0 0.0]

Double (F64)

pk

Uzlový vektor  [0.0 0.0 0.0 0.0 0.5 1.0 1.0]

Double (F64)

pw

Váhový vektor  [1.0 1.0 1.0]

Double (F64)

pv

Polynom pro korekci rychlosti posuvu  [0.0 0.05 0.95; 0.0 0.1 0.1; 0.0 0.0 0.0; 0.1 0.0 -0.1; -0.05 0.0 0.05; 0.0 0.0 0.0]

Double (F64)

pt

Uzlové body pro korekci posuvu  [0.0 1.0 10.0 11.0]

Double (F64)

user

Pouze pro special edit  [0.0 1.0 2.0 3.0]

Double (F64)

Výstupy

yAxesGroup

Odkaz na skupinu os

Reference

Done

Příznak dokončení algoritmu

Bool

CommandAborted

Příznak přerušení funkce bloku

Bool

Busy

Příznak, že algoritmus ještě neskončil

Bool

Active

Příznak, že blok řídí osu

Bool

Error

Příznak chyby

Bool

ErrorID

Výsledek poslední operace

Error

i ....

obecná chyba systému REXYGEN

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