MC_GearInPos, MCP_GearInPos – Zapnutí konstantního převodového poměru v zadané pozici

Symboly blokůPotřebná licence: MOTION CONTROL
Qt SVG Document Exported by REXYGEN Studio uMaster uSlave Execute RatioNumerator RatioDenominator MasterSyncPosition SlaveSyncPosition MasterStartDistance Velocity Acceleration Deceleration Jerk BufferMode SyncMode yMaster ySlave StartSync InSync CommandAborted Busy Active Error ErrorID SyncDistance MC_GearInPos Qt SVG Document Exported by REXYGEN Studio uMaster uSlave Execute yMaster ySlave StartSync InSync CommandAborted Busy Active Error ErrorID SyncDistance MCP_GearInPos

Popis funkce

Bloky MC_GearInPos a MCP_GearInPos 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_GearInPos zapne řízení podřízené osy tak, že poměr rychlostí hlavní a podřízené osy je v poměru RatioNumerator:RatioDenominator. Na rozdíl od bloku MC_GearIn je u tohoto bloku zachováván i poměr vzdáleností a je určena i poloha obou os v okamžiku zasynchronizování, tzn. platí

SlavePosition SlaveSyncPosition MasterPosition MasterSyncPosition = RatioNumerator RatioDenominator

Pokud v okamžiku aktivace bloku (tj. v okamžiku náběžné hrany na vstupu Execute a v případě buffered režimu ještě po ukončení předchozích bloků) neodpovídá poloha podřízené osy poloze hlavní osy (dle výše uvedeného vzorce), je spuštěn proces synchronizace (indikováno výstupem StartSync). Během tohoto procesu je generována trajektorie tak, aby došlo co nejrychleji k synchronizaci a nebyly překročeny maximální hodnoty rychlosti, zrychlení a změny zrychlení dané parametry Velocity, Acceleration, Deceleration, Jerk. Po dokončení synchronizace se již tyto limity neuplatňují. Pokud je parameter MasterStartDistance=0, proces synchronizace se spouští hned po aktivaci bloku (vstupem Execute). V opačném případě se proces synchronizace spouští ve chvíli, kdy hlavní osa dosáhne polohy v intervalu MasterSyncPosition ± MasterStartDistance.

Poznámky:
1. Proces synchronizace používá dva algoritmy: I. Algoritmus shodný s blokem
MC_MoveAbsolute, přičemž trajektorie je v každém kroku přepočítána tak, aby koncová rychlost odpovídala aktuální rychlosti hlavní osy. II. Poloha (i rychlost i zrychlení) se generuje jako v případě synchronního pohybu, ale k hodnotám je po určitou dobu přičítána hodnota vhodného polynomu 5. stupně, tak aby nenastal skok v poloze, v rychlosti a v případě zadaného jerku ani ve zrychlení a aby na konci doby přičítání měl polynom nulovou hodnotu. Doba je volena tak, aby polynom nepřekročil požadované meze rychlosti, zrychlení a jerku. První metoda nevede k úspěšné synchronizaci, pokud se hlavní osa pohybuje se zrychlením, druhá metoda negarantuje dodržení limitů na rychlost, zrychlení a jerk, navíc vyžaduje ponechat určitou rychlost a zrychlení na synchronní část, takže je obecně delší. Proto se oba algoritmy vhodně kombinují.

2. Parametry bloku (ať už start procesu synchronizace nebo limity na rychlost a zrychlení) je nutné volit tak, aby podřízená osa byla v poloze SlaveSyncPosition (přibližně) ve stejný okamžik, jako hlavní osa v poloze MasterSyncPosition. V opačné případě může nastat neočekávaný pohyb podřízené osy nebo porušení zadaných limitů. Pohyb hlavní osy může být libovolný, ale v konkrétní aplikaci bývá obvykle dobře definován. Správným nastavením parametrů je tedy možné zajistit vhodný průběh synchronizace.

Vstupy

uMaster

Odkaz na hlavní osu

Reference

uSlave

Odkaz na podřízenou osu

Reference

Execute

Náběžná hrana aktivuje blok

Bool

RatioNumerator

Převodový poměr - čitatel (podřízená osa)

Long (I32)

RatioDenominator

Převodový poměr - jmenovatel (hlavní osa)

Long (I32)

MasterSyncPosition

Poloha hlavní osy v okamžiku zasynchronizování [unit]

Double (F64)

SlaveSyncPosition

Poloha podřízené osy v okamžiku zasynchronizování

Double (F64)

MasterStartDistance

Definuje polohu hlavní osy pro spuštění procesu synchronizace

Double (F64)

Velocity

Maximální povolená rychlost [unit/s]

Double (F64)

Acceleration

Maximální povolené zrychlení [unit/s2]

Double (F64)

Deceleration

Maximální povolené zpomalení [unit/s2]

Double (F64)

Jerk

Maximální povolená změna zrychlení [unit/s3]

Double (F64)

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)

SyncMode

Režim synchronizace (pouze cyklické osy)

Long (I32)

1 ....

synchronizovat zrychlením

2 ....

synchronizovat na nejbližší bod

3 ....

synchronizovat zpomalením

Výstupy

yMaster

Odkaz na hlavní osu

Reference

ySlave

Odkaz na podřízenou osu

Reference

StartSync

Začíná synchronizace pohybu

Bool

InSync

Příznak dosažení profilu vačky podřízenou osou

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

SyncDistance

Odchylka v poloze podřízené osy od synchronizované polohy [unit/s]

Double (F64)

Příklad
image/svg+xmlzrychleni3 50 zrychleni2 50 zrychleni1 50 zpomaleni3 20 zpomaleni2 50 zpomaleni1 20 smer3 1 smer1 1 rychlost3 30 rychlost2 60 rychlost1 30 prevod_jmenovatel 1 prevod_citatel 2 poloha2 40 poloha1 100 osa_slave [osa_slave] osa_master1 [osa_master] osa_master [osa_master] mod3 1 mod2 1 mod1 1 execute3 [execute3] execute2 [execute2] execute1 [execute1] SyncMod 2 SSP 20 MSP 20 MSD 10 MC_MoveAbsolute − blok 3 uAxisExecutePositionVelocityAccelerationDecelerationJerkBufferModeDirectionyAxisDoneCommandAbortedBusyActiveErrorErrorID MC_MoveAbsolute − blok 1 uAxisExecutePositionVelocityAccelerationDecelerationJerkBufferModeDirectionyAxisDoneCommandAbortedBusyActiveErrorErrorID MC_GearInPos − blok 2 uMasteruSlaveExecuteRatioNumeratorRatioDenominatorMasterSyncPositionSlaveSyncPositionMasterStartDistanceVelocityAccelerationDecelerationJerkBufferModeSyncModeyMasterySlaveStartSyncInSyncCommandAbortedBusyActiveErrorErrorIDSyncDistance

image/svg+xml0 5 10 15 0 0.5 1 Spusteny bool Blok 1 spusteny (MoveAbsolute1) Blok 2 spusteny (GearIn) Blok 3 spusteny (MoveAbsolute2) 0 5 10 15 0 0.5 1 Aktivni bool Blok 1 aktivni (MoveAbsolute1) Blok 2 aktivni (GearIn) Blok 3 aktivni (MoveAbsolute2) 0 5 10 15 0 0.5 1 InSync bool Blok 2 InSync (GearIn) 0 5 10 15 −100 −50 0 50 100 Zrychleni zrychleni Zrychleni osa 1 − master Zrychleni osa 2 − slave 0 5 10 15 −100 −50 0 50 100 Rychlost rychlost Rychlost osa 1 − master Rychlost osa 2 − slave 0 5 10 15 0 50 100 150 200 Poloha poloha Poloha osa 1 − master Poloha osa 2 − slave

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