MC_MovePath, MCP_MovePath – Generování obecné trajektorie v prostoru
Symboly blokůPotřebná licence: COORDINATED MOTION
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) |
|
|
|
BufferMode | Režim převzetí osy | Long (I32) |
|
|
|
TransitionMode | Režim míchání pohybu | Long (I32) |
|
|
|
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 |
|
|
|
[Předchozí] [Na začátek] [Výše] [Další]
2023 © REX Controls s.r.o., www.rexygen.com