MC_VelocityProfile, MCP_VelocityProfile –  Generování trajektorie (rychlost)

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

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(x) = a5x5 + a4x4 + a3x3 + a2x2 + a1x + a0, přičemž na začátku časového intervalu je x = 0, a na konci x = 1. Koeficienty ai 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.axisRefuAxis nebo yAxisuAxis)

Reference

Execute

Náběžná hrana aktivuje blok

Bool

alg

Typ interpolace  2

Long (I32)

1 ....

tabulka čas/hodnota (interpolace polynomem 3. řádu)

2 ....

hodnoty ve stejném intervalu (interpolace polynomem 3. řádu)

3 ....

interpolace polynomy 5. řádu

4 ....

polynomy 5. řádu s ekvidistantními intervaly

5 ....

tabulka čas/hodnota + počáteční a koncová derivace

6 ....

hodnoty ve stejném intervalu + počáteční a koncová derivace

7 ....

hodnoty ve stejném intervalu (aproximace B-splinem 3. řádu)

8 ....

hodnoty ve stejném intervalu (aproximace B-splinem 5. řádu)

9 ....

tabulka čas/hodnota (lineární interpolace)

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

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)

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.axisRefuAxis nebo yAxisuAxis)

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

Příklad
PIC

PIC

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