Jak na interpolovaný pohyb s LMC078, servosystémem LXM32 a kartézským robotem. 17.3.2016 Klíčová slova: SoMachine, LMC078, kruhová interpolace, servo-pohony, kartézské osy, lineární vedení, LXM32, kartézský robot Cíl: Pomocí LMC078 a kartézských os vykreslit oblouk. OEM solution 1
NEŽ ZAČNETE Tento manuál předpokládá, že máte základní znalosti práce s vývojovým prostředím SoMachine v4.1. Je nutné znát, jak se připojit k PLC, jak provést stažení aplikace a jak nakonfigurovat osy. Jak na to popisuje dokumentace k Somachine. V tomto dokumentu bude popsáno, jak vytvořit jednoduchý program pro LMC078 vykreslující část kružnice pomocí kartézských os. Jedná se o požadavek na řízení jednoduchých pohybů. Pro vykreslení složitějších obrazců (složeného pohybu) vytvořeného například v programu typu CAD, doporučujeme využívat zadání pomocí G-kódu. POUŽITÝ HARDWARE Motion controller LMC078 Servo-měniče LXM32 2D kartézský robot OEM solution 2
ZADÁNÍ VYKRESLENÍ OBLOUKU Kruhový oblouk je definován následujícími parametry: 1) Souřadnice středu oblouku 2) Poloměr oblouku 3) Počáteční úhel 4) Koncový úhel TROCHA TEORIE PARAMETRICKÉ VYJÁDŘENÍ Ze zadaných parametrů můžeme vypočítat počáteční a koncový bod oblouku. Počáteční bod: Koncový bod: Celý oblouk můžeme popsat parametrickou rovnicí ve tvaru: pro OEM solution 3
KROK 1 MOTION PROGRAM Ukázkový program pro pohyb po kruhové trajektorii se bude skládat z tří částí. Nejprve je potřeba aktivovat pohony a nastavit počáteční polohu. Nejdůležitější částí bude sekce starající se o kruhovou interpolaci. Interpolovaný (kruhový) pohyb zajišťuje blok MakeCircleSection, jehož funkce je popsána dále. KROK 2 NAJETÍ NA POŘÁTEČNÍ POLOHU Na počáteční polohu můžeme najet pomocí standardních bloků MC_MoveAbsolute. Jeden z možných přístupů může vypadat takto: Signál pro aktivaci další části programu OEM solution 4
POU StartPos pouze vypočítá počáteční polohu podle vztahu Který v ST zapíšeme jako: Funkční bloky MC_MoveAbsolute nyní najedou osami na požadovanou počáteční polohu (nezávisle na sobě) s danou maximální rychlostí s daným maximálním zrychlením (zpomalením). Při staru pohybu, signálem i_xexecute si ještě nahodíme příznak q_xbusy, který bude signalizovat probíhající prací na najetí na počáteční polohu a následném kruhovém pohybu. Když bude najetí dokončeno, aktivují se výstupy bloků MC_MoveAbsolute Done, což je signálem, že se můžeme pustit do samotného kruhového pohybu. POZNÁMKA 2 PRŮBĚH PARAMETRU V nejjednodušším případě bychom zvětšovali parametr o krok (kde rychlost a je délka cyklu), takže. V tomto případě, by ale zrychlení na začátku a na konci pohybu bylo neomezené, takže by docházelo k trhavému pohybu. Lepší možností je nejprve postupně zrychlovat a až po dosažení požadované rychlosti přejít na způsob popsaný v předchozím bodě. Takže. Podobným způsobem je nutné v dostatečném předstihu začít brzdit. Zrychlení v jednotlivých částech je v tabulce: Fáze pohybu Rozsah Zrychlení Zrychlení Konst. Rychlost Zpomalení - Pozor: Pokud algoritmus nestihne dosáhnout maximální rychlosti, bude to dělat problémy. Je tedy nutné omezit maximální rychlost, tak aby se jednotlivé intervaly nepřekrývali. V programu funkci vytvoříme pomoví výpočtu z předchozí hodnoty a. Takže platí OEM solution 5
zrychlení, rychlost, pozice zrychlení, rychlost, pozice Kruhová interpolace s LMC078 a kartézskými osami S počátečními podmínkami a. Uvedený pohyb je znázorněn na následujícím obrázku: 1,2 1 0,8 0,6 0,4 0,2 t v a 0-0,2-0,4 čas Tento způsob pohybu už je z mechanického hlediska přijatelný. Pokud by se ovšem jednalo o řízení např. výtahu, byl by vysoký jerk (který v tomto případě neřešíme) pro přepravované osoby nepříjemný. Pokud chceme omezit jerk, musíme uvažovat zrychlení ve tvaru. Zrychlení nejprve dosáhne požadované hodnoty, pak musí být konstantní a v určitý čas se musí opět snižovat. Jedná se tedy o komplikovanější verzi předchozího případu. 1,2 1 0,8 0,6 0,4 0,2 0 t v a j -0,2-0,4-0,6 čas OEM solution 6
Teoreticky lze vytvořit odpovídající předpis funkce, ale jednodušší je využití virtuální osy, kde můžeme omezení pro rychlost, zrychlení a jerk nastavit stejně jako u reálného pohonu. KROK 3 PŘÍMÉ ŘÍZENÍ OS Když jsou osy na počáteční poloze (pro jistotu chvíli počkáme), pokračujeme částí, která obstará kruhový pohyb. K tomu budeme potřebovat funkční bloky SMC_FollowPosition, které umožňují přímé ovládání os zadáváním požadované polohy (pozor, neprobíhá žádné ověření smysluplnosti požadavku!!). Až bude pohyb dokončen, použijeme k deaktivaci pohonů bloky MC_Stop. Celé to může vypadat například takto: Signál Done z bloků MC_MoveAbsolute KROK 4 KRUHOVÁ INTERPOLACE Teď se pustíme do tvorby bloku, který bude počítat požadovanou polohu v reálném čase (v příkladu označen jako CircleInterpolator), jak jsme odvodili v poznámce o parametrickém vyjádření a průběhu parametru. OEM solution 7
V prvním cyklu, kdy se dostane interpolační blok na řadu ověříme, zda je cílový úhel vyšší než počáteční (pokud ne, tak je prohodíme), vypočítáme si potřebné parametry a provedeme přepočet do úhlové míry. Nakonec ověříme zda stihneme dosáhnout požadované maximální rychlosti (případně ji omezíme). Když je vše připraveno aktivujeme příznak q_xstartfollow, který nám aktivuje řízení os bloky SMC_FollowPosition. Když jsou bloky SMC_FollowPosition aktivní můžeme se pustit do výpočtů podle teorie v poznámce. Když pohyb dosáhne konce nebo je rychlost záporná (v ideálním spojitém světě dosáhne rychlost nulu v okamžiku dosažení koncové pozice) můžeme deaktivovat SMC_FollowPosition bloky a vydat signál q_xdone, že byl pohyb dokončen. OEM solution 8
POZNÁMKA 3 SLOŽENÉ OBRAZCE (BONUS) Podobným způsobem lze vykreslit jakoukoliv křivku, kterou lze parametricky popsat, případně lze složitější tvar rozdělit do více úseků a vykreslovat je po sobě. Důležité je, aby byla v přechodech mezi jednotlivými částmi zachována minimálně spojitost rychlostí (a z toho plynoucí omezenost zrychlení). Můžeme chtít vykreslit například následující tvar: Délka vykreslované půlkružnice: Délka úsečky: Křivku rozdělíme na 4 části a všechny je parametricky popíšeme: 1) Levý půlkruh 2) Spodní úsečka 3) Pravy půlkruh 4) Horní úsečka OEM solution 9
Nyní upravíme rovnice, tak aby včechny popisovali příslušné části obrazce pro parametr. Dostaneme tedy: 1) Levý půlkruh 2) Spodní úsečka 3) Pravy půlkruh 4) Horní úsečka Program bude v podobný jako v případě kruhového oblouku, jen bude mít několi fází v závislosti na parametru. Vše naleznete v přiloženém příkladu pro software SoMachine. OEM solution 10
Schneider Electric CZ, s. r. o. U Trezorky 921/2 158 00 Praha 5 Zákaznické centrum Tel.: 382 766 333 E-mail: podpora@schneider-electric.com Schneider Electric Slovakia, s. r. o. Karadžičova 16 821 08 Bratislava Zákaznícke centrum Tel.: 02 4552 4010 E-mail: sk.schneider@schneider-electric.com www.schneider-electric.cz www.schneider-electric.sk 02 2016. S1545CZ_03 OEM solution 11 2016 Schneider Electric. Všechna práva vyhrazena. Všechny ochranné známky jsou ve vlastnictví společnosti Schneider Electric Industries SAS nebo jejích přidružených společností.