MC_PositionProfile, MCP_PositionProfile – Generování trajektorie (poloha)
Symboly blokůPotřebná licence: MOTION CONTROL
Popis funkce
Bloky MC_PositionProfile a MCP_PositionProfile 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_PositinProfile generuje takovou trajektorii, aby poloha byla požadovaná funkce času. Existují dvě možnosti, jak tuto funkci zadat:
1. tabulkou: zadávají se dvojice čísel čas a poloha. Mezi jednotlivými časy se poloha interpoluje polynomem třetího řádu (lineární interpolace není v tomto případě vhodná, protože na okrajích intervalu by byl skok v rychlosti). Hodnoty času (v sekundách) se zadávají do pole/parametru times, příslušné hodnoty polohy do pole/parametru values . Posloupnost časových okamžiků musí být stoupající a musí začínat od 0 (resp. může začínat i zápornými hodnotami, ale profil se vykonává od času 0).
2. polynomy: celá funkce se v časové ose rozdělí na několik intervalů a pro každý interval se zadá aproximující polynom pátého řádu. Časové intervaly se definují jako v předchozím případě v poli times. Polynom pro každý interval je ve tvaru , přičemž na začátku časového intervalu je , a na konci . Koeficienty jsou uloženy v poli values ve vzestupném pořadí (tj. pole values obsahuje 6 hodnot pro každý časový interval). Tato metoda umožňuje snížit počet intervalů a pro určení koeficientů polynomů existuje speciální grafický editor.
Pro obě varianty je možné zvolit rozdělení na stejně dlouhé intervaly. pak je v poli times jen počáteční (obvykle 0) a koncový čas.
Poznámka 1: Parametr values musí být ve všech případech vektor - nesmí to být matice, tj. jednotlivé hodnoty nesmí být odděleny středníkem (lze použít mezeru nebo čárku).
Poznámka 2: V režimu zadání funkce polynomem je pátého řádu a nelze to nijak měnit. Polynomy na sebe musí hladce navazovat, jinak dochází ke skokům v rychlosti a/nebo poloze. Vzhledem ke komplikovaným výpočtům je doporučeno v tomto režimu vždy používat existující speciální grafický editor.
Poznámka 3: Block neobsahuje tzv. ramp-in mode. Pokud tedy rychlost nebo poloha osy v okamžiku spuštění profilu neodpovídá počáteční rychlosti a poloze profilu, blok skončí s chybou -707 (skok v rychlosti nebo poloze). Tomuto problému s rychlostí lze předejít, pokud se použije BufferMode=BlendingNext. Skok v poloze se musí řešit správně nastaveným parametrem Offset .
Poznámka 4: Pokud na konci profilu je nenulová rychlost, osa se pohybuje dál touto rychlostí (to je v souladu se specifikací PLCopen ).
Poznámka 5: pokud je parametr alg=1 nebo alg=5 nebo alg=9 je možné nechat pole times prázdné (popř. nepřipojený vstup) a pak zadávat celou vačku v poli values, kde první sloupec jsou časové okamžiky, druhý sloupec polohy, třetí (nepovinný) sloupec rzchlosti, čtvrtý (nepovinný) sloupec zrychlení.
Vstupy
uAxis | Odkaz na osu (přípustné je jen spojení RM_Axis.axisRef–uAxis nebo yAxis–uAxis) | Reference |
Execute | Náběžná hrana aktivuje blok | Bool |
alg | Typ interpolace 2 | Long (I32) |
|
|
|
nmax | maximalni počet intervalů/bodů profilu 3 | Long (I32) |
TimeScale | Konstanta násobení pro přepočet časové osy profilu | Double (F64) |
PositionScale | Konstanta násobení pro přepočet hodnotové osy profilu | Double (F64) |
Offset | Aditivní konstanta pro přepočet hodnotové osy profilu | Double (F64) |
uTimes | vektor s časovými hodnotami | Reference |
uValues | vektor s hodnotami polohy nebo koeficienty polynomů | Reference |
BufferMode | Režim převzetí osy | Long (I32) |
|
|
|
BeginVelocity | počáteční hodnota rychlosti (jen alg=5 nebo 6) | Double (F64) |
EndVelocity | koncová hodnota rychlosti (jen alg=5 nebo 6) | Double (F64) |
Výstupy
yAxis | Odkaz na osu (přípustné je jen spojení RM_Axis.axisRef–uAxis nebo yAxis–uAxis) | 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říklad
[Předchozí] [Na začátek] [Výše] [Další]
2024 © REX Controls s.r.o., www.rexygen.com