MC_MoveCircularAbsolute, MCP_MoveCircularAbsolute – Pohyb do pozice po kružnicích (absolutní souřadnice)

Symboly blokůPotřebná licence: COORDINATED MOTION
Qt SVG Document Exported by REXYGEN Studio uAxesGroup Execute CircMode AuxPoint EndPoint PathChoice Velocity Acceleration Deceleration Jerk LimitMode CoordSystem BufferMode TransitionMode TransitionParameter Superimposed yAxesGroup Done CommandAborted Busy Active Error ErrorID MC_MoveCircularAbsolute Qt SVG Document Exported by REXYGEN Studio uAxesGroup Execute yAxesGroup Done CommandAborted Busy Active Error ErrorID MCP_MoveCircularAbsolute

Popis funkce

Bloky MC_MoveCircularAbsolute a MCP_MoveCircularAbsolute 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_MoveCircularAbsolute slouží pro přesun koncového efektoru po kružnici (resp. kruhovém oblouku) na zadanou pozici. Pozice se zadává absolutně v souřadném systému zvoleném vstupem CoordSystem. Parametry Velocity, Acceleration, Deceleration a Jerk určují rychlost, zrychlení, zpomalení a změnu zrychlení ve směru pohybu (tj. tečně k trajektoriji). Pro určení těchto parametrů se vychází při použití souřadného systému MCS nebo PCS jen z polohových souřadnic. Další souřadnice (úhel natočení) se již generují proporcionálně, tak aby byl pohyb v těchto souřadnicích lineární a skončil ve stejném okamžiku jako polohové souřadnice. Pokud se poloha nemění (dochází tedy jen k otočení koncového efektoru), počítá se rychlost/zrychlení ze všech souřadnic, ale číslo má pak jiný fyzikální význam. Cílovou polohu určuje vektorový parametr EndPoint. Pomocný bod je určen vektorovým parametrem AuxPoint. Tyto parametry musí mít tolik prvků, kolik předpokládá kinematická transformace (viz MC_SetKinTransform_Lin). V opačném případě je signalizována chyba a pohyb se neprovede. Význam pomocného bodu je uveden níže. Pohyb je spuštěn náběžnou hranou na vstupu Execute. K dispozici jsou následující způsoby zadání kružnice:

BORDER
– Zadává se koncový bod a bod, kterým má kružnice procházet (vstup AuxPoint).
CENTER
– Zadává se koncový bod a střed kružnice (vstup AuxPoint). Vstup PathChoice potom definuje, zda bude vygenerovaný pohyb po směru nebo proti směru hodinových ručiček.
RADIUS
– Zadává se koncový bod a vektor kolmý k rovině ve které se má nacházet kružnice. Délka vektoru udává poloměr kružnice. Příklad: Vstup AuxPoint = (50,0,0) odpovídá kružnici v rovině y-z s poloměrem 50 a rotaci kolem osy paralelní s osou x odpovídající pravidlu pravé ruky (CoordSystem = MCS).

image/svg+xmlpočátečníbodhraničníbodkoncovýbod xy počátečníbodstředkoncovýbod xy počátečníbodkoncovýbod xy koncový bodvektorudélka = poloměr kružniceCircMode = BORDERCircMode = CENTERCircMode = RADIUS

Poznámka 1: v režimu „RADIUS“ nemá pomocný bod význam polohy a proto se zadává vždy absolutně.

Poznámka 2: Každý ze způsobu zadávání (parametr CircMode) má některé výhody a nevýhody. Žádný z uvedených způsobů neumožňuje „projet“ celý kruh nebo dokonce několik „otáček“. Dále vzniká problém v případě půlkruhu, kdy v režimu zadání středu není definována rovina kružnice. Při zadání středu je kružnice přeurčená a je nutné dát pozor, aby vzdálenost počátečního a koncového bodu byla stejná (v opačném případě blok skončí s chybou a trajektorie se negeneruje).

Poznámka 3: U kružnic v třírozměrném prostoru je problém definovat kladný směr. Algoritmus používá metodu vektorového součinu počátečního a koncového průvodiče. Tím dostaneme normálový vektor, který určuje „směr nahoru“ a pak již je kladný směr zřejmý. Metoda ovšem nefunguje pro půlkružnici a také je potřeba dát pozor při posunutí koncového nebo počátečního bodu, protože může dojít ke změně orientace (kladný směr se stane záporným).

Poznámka 4: Podle typu předchozího pohybu a v některých případech i podle parametrů (zejména v případě příliš krátké trajektorie) nemusí být implementované nebo realizovatelné všechny varianty TransitionMode.

Vstupy

uAxesGroup

Odkaz na skupinu os

Reference

Execute

Náběžná hrana aktivuje blok

Bool

CircMode

Určuje význam vstupních signálů AuxPoint a CircDirection

Long (I32)

1 ....

BORDER

2 ....

CENTER

3 ....

RADIUS

AuxPoint

Absolutně zadaná pozice

Reference

EndPoint

Absolutně zadaná pozice koncového bodu

Reference

PathChoice

Volba směru

Long (I32)

1 ....

Ve směru hodinových ručiček

2 ....

Protisměru hodinových ručiček

Velocity

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

Double (F64)

Acceleration

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

Double (F64)

Jerk

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

Double (F64)

LimitMode

Volba jednotek pro limity (Velocity, Acceleration, Jerk)  1

Long (I32)

1 ....

Relative [part of group limit]

2 ....

Absolute [unit/s, unit/s2, unit/s3]

CoordSystem

Volba souřadného systému

Long (I32)

1 ....

ACM

2 ....

MCS

3 ....

PCS

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)

TransitionMode

Režim míchání pohybu

Long (I32)

1 ....

TMNone (xx)

2 ....

TMstartvelocity (proložení s danou počáteční rychlostí)

3 ....

TMConstantVelocity (proložení s danou konstantní rychlostí)

4 ....

TMCornerDistance (xx)

5 ....

TMMaxCornerDeviation (xx)

11 ...

Smooth(nový blok se spustí po dokončení předchozího, původní pohyb skončí s počáteční rychlostí nového bloku)

TransitionParameter

Parametr pro navázání pohybu (dle zvoleného režimu míchání)

Double (F64)

Superimposed

Příznak vykonání jako vedlejší (superimposed) pohyb

Bool

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

i ....

obecná chyba systému REXYGEN

Příklad

image/svg+xmlzrychleni2 0.5 zrychleni1 0.5 souradnicovy system2 2 souradnicovy system1 2 rychlost2 0.5 rychlost1 0.5 rezim prevzeti osy2 1 rezim prevzeti osy1 1 rezim michani pohybu2 1 rezim michani pohybu1 1 poloha z2 − EndPoint 1 poloha z2 − AuxPoint 1 poloha z1 − EndPoint 1 poloha z1 − AuxPoint 1 poloha y2 − EndPoint 1.1 poloha y2 − AuxPoint 1.2 poloha y1 − EndPoint 1.1 poloha y1 − AuxPoint 1.1 poloha x2 − EndPoint 1.1 poloha x2 − AuxPoint 1 poloha x1 − EndPoint 0.9 poloha x1 − AuxPoint 0.7 parametr pro navazani pohybu2 0.5 parametr pro navazani pohybu1 0.5 osa_master [skupina_os] natoceni efektoru2 − EndPoint −1.5 natoceni efektoru2 − AuxPoint −1.5 natoceni efektoru1 − EndPoint −1.5 natoceni efektoru1 − AuxPoint −1.5 execute2 [execute2] execute1 [execute1] RTOV4 uVecu1u2u3u4u5u6u7u8yVec RTOV3 uVecu1u2u3u4u5u6u7u8yVec RTOV2 uVecu1u2u3u4u5u6u7u8yVec RTOV1 uVecu1u2u3u4u5u6u7u8yVec PathChoice2 1 PathChoice1 1 MC_MoveCircularAbsolute − blok2 uAxesGroupExecuteCircModeAuxPointEndPointPathChoiceVelocityAccelerationJerkCoordSystemBufferModeTransitionModeTransitionParameteryAxesGroupDoneCommandAbortedBusyActiveErrorErrorID MC_MoveCircularAbsolute − blok1 uAxesGroupExecuteCircModeAuxPointEndPointPathChoiceVelocityAccelerationJerkCoordSystemBufferModeTransitionModeTransitionParameteryAxesGroupDoneCommandAbortedBusyActiveErrorErrorID CircMode2 1 CircMode1 1

image/svg+xml

image/svg+xml2 2.5 3 3.5 4 4.5 5 5.5 6 0 0.5 1 Spusteny − MC_MoveCircularAbsolute −− blok1 bool 2 2.5 3 3.5 4 4.5 5 5.5 6 0 0.5 1 Aktivni − MC_MoveCircularAbsolute −− blok1 bool 2 2.5 3 3.5 4 4.5 5 5.5 6 0 0.5 1 Ukonceny − MC_MoveCircularAbsolute −− blok1 bool 2 2.5 3 3.5 4 4.5 5 5.5 6 0 0.5 1 Spusteny − MC_MoveCircularAbsolute −− blok2 bool 2 2.5 3 3.5 4 4.5 5 5.5 6 0 0.5 1 Aktivni − MC_MoveCircularAbsolute −− blok2 bool 2 2.5 3 3.5 4 4.5 5 5.5 6 0 0.5 1 Ukonceny − MC_MoveCircularAbsolute −− blok2 bool 2 2.5 3 3.5 4 4.5 5 5.5 6 −0.2 0 0.2 0.4 0.6 Rychlost skupiny os Rychlost [rad/s] 2 2.5 3 3.5 4 4.5 5 5.5 6 0.8 1 1.2 Cas [s] Poloha [rad] Poloha skupiny os poz. poloha xpoz. poloha y osa x osa y

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