MC_VelocityProfile, MCP_VelocityProfile – Generování trajektorie (rychlost)
Symboly blokůPotřebná licence: MOTION CONTROL
Popis funkce
Bloky MC_VelocityProfile a MCP_VelocityProfile 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_VelocityProfile generuje takovou trajektorii, aby rychlost byla požadovaná funkce času. Existují dvě možnosti, jak tuto funkci zadat:
1. tabulkou: zadávají se dvojice čísel čas a rychlost. Mezi jednotlivými časy se hodnota rychlosti interpoluje lineárně. Hodnoty času (v sekundách) se zadávají do pole/parametru times, příslušné hodnoty rychlosti 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 uTimes jen počáteční (obvykle 0) a koncový čas.
Poznámka 1: Vstup/parametr uValues 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: Dialog je jednotný pro MC_AccelerationProfile, MC_VelocityProfile, MC_PositionProfile Některé režimy (parametr alg nedávají pro VelocityProfile smysl a nefungují (aproximace B-spline nefunguje, režimy 1,2,5,6 používají lineární interpolaci)
Poznámka 3: V režimu zadání funkce polynomem je hodnota polynomu poloha a polynom je vždy pátého řádu a nelze to nijak měnit. VelocityScale a Offset je samozřejmě pro rychlost. 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 4: Block neobsahuje tzv. ramp-in mode. Pokud tedy rychlost osy v okamžiku spuštění profilu neodpovídá počáteční rychlosti profilu, blok skončí s chybou -707 (skok v rychlosti nebo poloze). Tomuto problému lze předejít, pokud se použije BufferMode=BlendingNext nebo je potřeba správně nastavit parametr Offset .
Poznámka6: Pokud na konci profilu je nenulová rychlost, osa se pohybuje dál touto rychlostí (to je v souladu se specifikací PLCopen ).
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) |
VelocityScale | Konstanta násobení pro přepočet hodnotové osy profilu | Double (F64) |
Offset | Aditivní konstanta pro přepočet hodnotové osy profilu | Double (F64) |
BufferMode | Režim převzetí osy | Long (I32) |
uTimes | vektor s časovými hodnotami | Reference |
uValues | vektor s hodnotami rychlosti nebo koeficienty polynomů | Reference |
|
|
|
BeginAcceleration | počáteční hodnota zrychlení (jen alg=5 nebo 6) | Double (F64) |
EndAcceleration | koncová hodnota (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