Na konci března se mě a kolegovi Blažkovi prostřednictvím pana Janíka, českého obchodního zástupce slovinské společnosti KOLEKTOR Indutec, dostal do ruky kompaktní servomotor Cool Muscle / RELIANCE RCM1-17L30A doplněný elektronikou pro možnost vzdáleného ovládání z PC prostřednictvím ASCII příkazů nebo i pomocí sběrnice Profibus-DP. Na PROFIBUS se hlavně zaměřil kolega Blažek a o něm bude následovat na serveru automatizace.HW.cz samostatný článek. Já jsem se zaměřil na možnosti ovládání ostatními prostředky, tedy pomocí sériové datové komunikace i jen binárními vstupy. Z toho je patrné, že servomotor lze ovládat téměř z jakéhokoliv zařízení (PC, průmyslové PC, velká i malá PLC).
Popis motoru RCM1-17L30A
Na úvod by jsme si měli něco říct o tom, jaké parametry a vlastnosti motor má a co poskytuje uživateli.
Motor s výkonem 18 W a napájením 24 V DC má kompaktní rozměry 95 x 53 x 42 mm. Jeho součástí není jen samotný pohon, ale i jeho budič, snímač otáček a jednoduché řídící „PLC“. To umožňuje nejen motor dálkově řídit, ale také jej naprogramovat na postupný pohyb, nastavit reakce na signály na binárních vstupech a jaké informace má motor indikovat na tranzistorově spínaných výstupech.
Program napsaný ve firemním jazyku CML (Cool Muscle Language) může obsahovat i větvení řízené stavy na vstupních pinech a skoky na různá místa programu na základě dosažené pozice. Řízení po sériové lince UART je možné provádět také v reálném čase zasíláním jednotlivých ASCII příkazů, konkrétně například motor rozjet danou rychlostí a zrychlením, zastavit, „zapauzovat“, dojet na zadanou pozici apod. Tímto způsobem lze i měnit hodnoty mnoha desítek vnitřních proměnných, které například definují rozlišení měření pozice (počet pulsů na otáčku), měřítko měření rychlosti otáčení či zrychlení, nastavit rychlost sériové komunikace, namapování vstupů / výstupů a mnoho dalších. Motor tak stačí připojit na napájení 24 V DC / 2 A a signály nebo sériovou komunikací jej rovnou řídit. Prostě řečeno: Koupíte tento motor a prakticky již nepotřebujete nic dalšího.
Pro napájení motoru slouží v zadní části pouzdra dva vyvedené vodiče (červená a černý). Všechny signály a komunikační piny jsou pak součástí malého 12 vývodového konektoru v horní části zadního bloku pouzdra. Zde najdeme celkem 4 binární vstupy, 2 tranzistorově spínané výstupy, výstupy napětí 24 V a 5 V, které lze použít pro napájení či snímaní stavů beznapěťových výstupů různých snímačů.
Kde jsou ale ty piny sériové komunikace? Ty jsou sdílené pod vstupy 1 a 2 a výstupy 1 a 2. Konkrétně pro komunikaci s PC (Master komunikace) jen vstup 1 a výstup 1, zatímco vstup 2 a výstup 2 může posloužit pro sérovou komunikace s dalším motorem (Slave komunikace). To však znamená, že při řízení přes sériovou linku lze dále volně využívat jen vstupy 3 a 4.
Další nevýhodou tohoto sdílení pinů je fakt, že vývody pro TX signál sériové komunikace vlastně pracují jako obyčejné tranzistorově spínané výstupy a tudíž je nutné pro jejich připojení externě vytvořit jednouché přizpůsobovací rozhraní. Protože se zde pracuje s 5 V TTL logikou, stačí v případě UART komunikace jen výstupy doplnit o pull-up odpory a případně budiče. V případě požadavku komunikace po RS-232, RS-422 (můj případ) nebo RS-485 je nutné si vytvořit vhodné převáděcí rozhraní. V případě RS-232 je ještě možné si od výrobce pořídit již hotový komunikační kabel s klasickým 9pin D-SUB konektorem na straně PC (tzv. Y kabel). Tak je dobré uvést, že vnitřní zapojení vstupů 1 a 2 se liší od zapojení vstupů 3 a 4, které jsou zde opravdu jen pro čtení 5 V signálů. Nelze tedy na ně přímo připojit v průmyslu běžnější 24 V úrovně. Pokud má k nim připojené zařízení či snímač beznapěťový výstupní kontakty, lze pro sejmutí stavu využít 5 V výstup na posledním 12. pinu.
Vnitřní PLC systém servomotoru umožňuje přiřadit různé akce rychlé a
pomalé změně signálu na vstupech.
Také je možné vzájemně propojit více motorů a provádět například víceosé polohování.
Mimo všechny zde uvedené skutečnosti je pro Profibus sběrnici na zadní straně motoru přítomné správné Profibus-DP rozhraní v podobě klasického 9pin. konektoru. Pokud však dojde k připojení k nadřazenému Profibus zařízením, například PLC Siemens, automaticky se "odstřihne" komunikace po sériovém rozhraní. Nelze tak zároveň používat oboje současně. Z Profibusem logicky souvisí i možnost síťové komunikace více motorů a tak i například provádět víceosé polohování. Motor má totiž možnost nastavení komunikační adresy (Motor ID). Využít lze jak zmíněnou klasickou poloduplexní RS-485, ať již jako samostatnou nebo v rámci Profibusu, tak i faktu, že motor má na pinových vývodech dvě plně duplexní sériová UART rozhraní označená jako Master (připojuje řídícímu systému) a Slave pro napojení dalších motorů. Výrobce to označuje jako "Daisy chain style network". Protože však jsem měl k dispozici jen jeden Cool Muscle motor, nebylo to možné prakticky vyzkoušet. Při programování či ovládání takto zapojených motorů z níže popsaného programu Cool Works, je nutné nejdříve vybrat příslušný motor kliknutím na ikonou a následně jej libovolně z PC ovládat.
Servomotor RCM1-17L30A se vyznačuje kompaktním provedením a zároveň klasické
uchycení pro snadnou náhradu za jiný typ servomotoru.
Na zadní straně najdete
indikační LED a hlavně Profibus-DP konektor.
Dále na zadním „čele“ se mimo informace o typu a výrobci také nachází 3 informační LED:
- zelená Power – informuje o přítomností napájecího napětí 24 V DC
- žlutá ACT – informuje o sériové komunikaci s motorem
- červená BL – informuje o chybách síťové komunikace v případě sběrnicového propojení více motorů k jednomu nadřízenému počítači či PLC. Mě osobně při komunikaci s jedním motorem po sériové lince RS-422 tato LED svítila pořád, ale na funkci a ovládání motoru jsem nezaznamenal žádný vliv.
K mechanického pohledu je motor zcela zapouzdřený bez jakýchkoliv velkých otvorů, včetně chladících. Z celého pouzdra tak mimo již zmíněných napájecích vodičů a 12pinového konektoru vykukuje již jen hřídel. Motor tak jistě bude hodně odolný vůči znečištění. To jsem však nijak nezkoušel. Pouzdro z hliníkové slitiny s největší pravděpodobností slouží i jako chladič pro vnitřní elektroniku, protože i v případě, že se motor netočí, ale je nahozen v pohotovostním režimu, dost se pouzdro zahřívá (na cca 45 °C). Hřídelka z nerezové oceli o průměru 5 mm vyčnívá z motoru o 16 mm. Pro upevnění slouží čtyři montážní otvory se standardizovanou roztečí, aby byla možná záměna v již existující aplikaci za servomotor jiného výrobce. Motor vypadá i prakticky působí mechanicky odolným dojmem a vyznačuje se dobrým zpracováním.
Základní vlastnosti motoru RCM1-17L30A (z datasheetu výrobce):
- Výkon: 18W
- Max. rychlost: 3000 rpm
- Trvalý točivý moment: 0,38 Nm
- Max. točivý moment: 0,54 Nm
- Enkodér: Inkrementální magnetický enkodér s 50tis. pulsy na otáčku
- Vnitřní řídící systém: 32bit. RISC procesor, datová i programová paměť EEPROM
- Metoda řízení pozice: Vektorové řízení s uzavřenou smyčkou (Closed loop vector control)
- Ovládání:
- ASCII příkazy po sériovém rozhraní UART (případně RS-232, RS-422, RS-485)
- ASCII příkazy po sběrnici Profibus-DP
- Pulsně (rychlost a směr otáčení)
- Analogovým napěťovým signálem (rychlost a směr otáčení)
- Napájecí napětí: 24 V DC ± 10%
- Jmenovitá spotřeba: 1,2 A / 2,5 A (Trvalý točivý monent / Max. točivý moment)
- Rozlišení: 200 až 50000 pulsů na otáčku (základní nastav.: 1000 pulsů na otáček)
- Pracovní teplota: 0 °C až 40°C
- Rozměry: 95 x 53 x 42 mm
- Více informací najdete dokumentaci: Cool_Muscle_Brochure.pdf,
Cool_Muscle_Users_Manual_new.pdf
Ovládání z PC program Cool Works
Nejsnadnější způsob, jak ovládat motor Cool Muscle, je pomocí firemního softwaru COOL WORKS pro OS Windows. S jeho pomocí lze snadněji provádět nejen okamžité ovládání, tj. regulovat pozice, rychlost otáčení a rozjezdu / dojezdu motoru v reálném čase, a provádět programování, ale hlavně snadněji nastavovat hodnoty vnitřních proměnných. Zatímco při jejich nastavení zasíláním ASCII příkazů budete alespoň ze začátku zuřivě listovat manuálem, zde máte každou vnitřní proměnnou popsanou a v roletovém menu se vám nabídnou relevantní hodnoty, které je možné nastavit.
Po snadném nainstalování a následném spuštění programu se vám současně se zobrazením úvodního loga programu objeví položka výběru sériového COM portu, ke kterému máte motor připojen. Nefunguje však zde žádná kontrola, takže pokud zde nastavíte omylem jiný port nebo pokud vůbec nemáte motor k PC připojen, program to zde nezjistí a v klidu zobrazí hlavní ovládací plochu.
Ta se skládá z několik zajímavých částí. V levé polovině okna můžete nalézt běžný skoro sériový terminál pro zasílání ASCII příkazů pro ovládání motoru. Pokud například do velkého okna zadáte:
P=1000
S=20
A=10
^
a stisknete tlačítko „SEND“, motor se rozjede zrychlením 50 na rychlost 100 a zastaví na pozici 1000 (proměnné P, S a A jsou proměnné pro okamžité zadání). Jednotky zadaných hodnot odpovídají nastavenému rozlišení enkodéru v počtu pulsů na otáčku, resp. počtu pulsů za sekundu v poměru 1:100, 1:10 nebo 1:1. Tyto parametry se definují v registrech motoru R0 a S0.
Zadávací řádka nad velkým oknem pak slouží k rychlému zadávání ASCII příkazů, které se hned odešlou, jakmile se stiskne „ENTER“. Zde například lze přerušit („zapauzovat“) otáčení motoru, znova jej spustit, okamžitě zastavit apod. Případně lze zde také rychle změnit jakýkoliv parametr uvnitř motoru tím, že například napíšete "P1=10000". Prakticky jde o klasickou terminálovou řádku pro sériovou komunikaci.
V pravém dolním rohu se pak vyskytují dvě modrozelená okénka zobrazující celou komunikaci mezi PC a motorem, čímž lze nejen ověřit, že komunikace funguje, ale i sledovat potvrzovací hlášky motoru na zaslané příkazy nebo zobrazovat aktuální stavy všech vnitřních proměnných motoru. Jejich výpis lze snadno provádět kliknutím na ikony umístěné na těmito okny ve dvou polích s názvy „Motor values“ a „Motor status“. Když například kliknete na tlačítko „Positions“, v okně „Motor responce“ se vypíší aktuální nastavení registrů pozic P1 až P25, které lze například volat v programu. Nebo například tlačítko „Position“ v bloku „Motor status“ vypíše aktuální polohu motoru a to i během otáčení. Podobně fungují i další tlačítka. Toto je velmi praktické pro rychlé zjišťování stavů, například pro sledování aktuální pozice během otáčení.
Nad bloky tlačítek „Motor values“ a „Motor status“ se ještě nacházejí volby umožňující základní úkony, jako návrat do nastaveného počátku (pozice 0) = Org Search, nastavení nového počátku (Set as Org) a zvláště povely pro uvolnění / zablokování motoru povely „Enable“ a „Disable“. Ty se také vyskytují jako samostatná tlačítka mimo základní okno programu Cool Works. Provádějí nabuzení nebo odbuzení vinutí motoru, což v praxi umožňuje snížit spotřebu a zahřívání motoru v době, kdy není potřeba jeho činnost a pak také možnost „ručního“ otočení hřídelí. Konkrétně, když se testovaný výrobek položil v režimu „Enable“ na deskou klasického dřevěného stolu, bylo slyšet vrčení způsobené vibracemi motoru, i když se neotáčel. Dále se v tomto režimu motor zahřívá na cca 45 °C, zatímco pro odbuzení zasláním příkazu „Disable“ je motor v absolutním klidu a zůstává chladný.
Barevná ovládací tlačítka v bloku „Program bank execution“ pak slouží pro spuštění
jednotlivých naprogramovaných bloků, tzv. bank, a tím provádět jejich zkoušení
a ladění. Číslem definujete jednu z bank a pak jen ji pustíte, zastavíte, pozastavíte
nebo přeskočíte na následující či předcházející banku jen klikáním myší na tlačítka
– velmi jednoduché a rychlé.
Asi nejdůležitější z celého programu jsou pak následující 3 ikony
v levém horním rohu. Ty slouží pro přepínání mezi 3 ovládacími okny. První odpovídá
hlavní obrazovce, druhá slouží k zobrazení kompletního stromu vnitřních registrů
motoru a možnost změny jejich nastavení. Třetí ikona pak otevře následující
okno pro snadné zkoušení motoru (obrázek níže).
Okno "Jog Motor" umožňuje snadno jen pomocí myší ovládat motor - velmi dobrá utilita pro odzkoušení funkce a komunikace
Zde pomocí posuvníků a políček lze nastavit rozlišení měření otáčení, jednotky měření nastavované rychlosti, sledovat aktuální pozici motoru (políčko „Current Position“) a posuvníky definovat rychlost otáčení zrychlení při rozjezdu. Při pohnutí posuvníkem „Speed“ z hodnoty 0 se motor roztočí definovaným zrychlení na aktuálně posuvníček navolenou rychlost. Toto okno je velmi dobré pro případ prvního odzkoušení motoru a nebo pro případ rychlého odzkoušení například v momentě, kdy se nám zdá, že nepracuje jak má. K ničemu jinému to asi nepoužijete. Případná změna hodnot v políčkách se však zapíše do registrů motoru a budou platit i po zavření tohoto okna.
V případě kliknutí na druhou ikonu v pořadí se zobrazí následující stromová struktura všech registrů v řídícím PLC motoru, včetně jejich popisu:
Strom nastavení všech proměnných a registrů motoru umožňuje snadnější
změnu nastavení
- zde okamžité dynamické proměnné A, S a P a základní mezní
neměnné parametry daného motoru.
Zde lze nejen definovat komunikační rychlost sériového rozhraní, rozlišení vestavěného enkodéru, jednotky definovaných hodnot pozice, rychlosti a zrychlení atd., ale i reakce na signály na binárních vstupech či přiřazení výstupů. Zajímavá je možnost nastavit různou reakci programu podle rychlosti náběžné či sestupné hrany příchozího řídícího pulsu. Stavem je možné nejen řídit větvení běhu programu, ale třeba i spouštět program. Také lze vstupy nastavit pro pulsní nebo analogové ovládání rychlosti a směru otáčení motoru. Spínanými výstupy (pokud nejsou aktuálně využity pro sériovou komunikaci) pak lze poskytovat různé informace, např. o dosažené cílové pozici. Výhodu tohoto stromu je, že všechny položky nastavení motoru jsou zde popsány a tedy snadněji se zorientujeme a méně pravděpodobně uděláme chybu v nastavení. Ovládání je tak přehledné a jednoduché, zvláště pokud umíte anglicky.
Strom nastavení všech proměnných a registrů motoru umožňuje snadnější
změnu nastavení
- zde nastavení rozlišení enkodéru a rychlosti přenosu.
Mimo těchto ikon jsou v levém horní liště základního okna i ještě další ikony, které slouží pro výběr vhodného motoru dle aplikace a výpočet PID parametrů regulační křivky motoru. Zde bych se zastavil u posledně jmenovaného, tedy výpočtu parametrů uzavřené regulační smyčky. Není však PID regulace jako PID regulace. Narozdíl od již zastaralé metody statické PID regulace se zde využívá nejnovější řídící metody, tzv. . Ta představuje velmi robustní řídící systém dynamicky reagující na měnící se zatížení napříč celého rozsahu nastavitelní rychlosti, snižuje potřebu regulovat zisk a zvyšuje povolitelnou vstupní setrvačnou odchylku. K návrhu šesti řídících parametrů této metody (H1 až H6), které jsou součástí vnitřného registru motoru, slouží okno skrývající se pod ikonou . Zde je možné se nespolehnout na nastavení od výrobce, ale dle zadaných parametrů si nechat spočítat nové H parametry a otestovat, jak se s nimi bude motor chovat za určitých nasimulovaných podmínek.
Podpůrné aplikace programu Cool Works - výpočet potřebných parametrů motoru v závislosti na konfigurace aplikace a výpočet parametrů regulační křivky zpětnovazební regulace motoru (výpočet parametrů registrů motoru H1 až H6).
Ovládání ASCII příkazy z PC přes RS-232 terminál
Jak již bylo několikrát výše zmíněno, všechny funkce motoru se v jádru ovládají zasíláním ASCII příkazů po sériové lince. A to i v případě řízení po Profibusu. A tak i bez výše uvedeného softwaru Cool Works je možné všechny funkce využívat i pomocí jakéhokoliv sériového terminálu, jako například ve Windows standardního programu HYPERTERMINÁL. Sice to není moc uživatelsky komfortní a asi se alespoň ze začátku neobejdete mez katalogu příkazů, ale prostě jde to a to včetně programování bank pro automatickou funkci.
Ukázka nastavení možné sériové komunikace s motorem a výpis parametrů řídících registrů zasláním ASCII příkazu "?90".
Ukázka změny nastavení parametru první pozice zastavení motoru P1.1 z původní hodnoty 5000 na 3000 - příkazem "?91" je zobrazen původní stav nastavení a následně příkazem "P1.1=3000" je změněn, což opět deklaruje nový výpis vyvolaným příkazem "?91".
Programování motoru - vytvoření automatické „robotické“ funkce
Pomocí tzv. bank a programovacího jazyku CML (Cool Muscle Language) lze naprogramovat automatickou funkci motoru, která se například může vykonávat v nekonečném cyklu nebo ji ovládat logickými signály či pulsy přivedené na k tomu účelu nadefinované vstupy. Samotný program se tvoří jen obyčejnou jednoduchou posloupností znaků.
Následující jednoduchý ukázkový program realizuje trvalý pohyb motoru mezi pozicemi P1, P3 nebo P2, podle trvalého logického stavu na vstupu I3. Program lze po zapnutí napájení motoru aktivovat pulsem na vstupu I4 a poté již program probíhá v uzavřené smyčce dokud není vypnuto napájení motoru nebo provedeno externí přerušení či zastavení běhu programu. Zdrojový kód programu s komentářem:
|
Volané hodnoty pozic P, rychlostí S a zrychlení A jsou přednastaveny v registrech motoru, kam se snadno zadají z klávesnice.
Nastavení tabulky pozic P a rychlostí S volaných z programu (pro zvětšení klikněte na příslušný obrázek)
Nastavení tabulky zrychlení A volaných z programu a nastavení vstupu 4 na spuštění banky 1 (pro zvětšení klikněte na příslušný obrázek)
Závěr
Servomotor Cool Muscle v zapůjčeném provedení představuje jistě zajímavé řešení pro aplikace či uživatele, kteří potřebují malý jednoduchý pohon napájený 24 VDC a nechtějí se zaobírat problematickou realizací poháněcího řetězce a pro řízení využívat PLC s moduly pro řízení motorů. Zde je vše integrováno přímo v motoru, který stačí jen připojit na napájení a vzdáleně ovládat či naprogramovat a nechat je samostatně pracovat. Automatickou funkci mohou měnit například na vstupy připojené snímače. Ovládání po chvilce zvládne i méně zkušený technik. Zvláště pro různé malé autonomní aplikace bez řídící jednotky či jen s jednoduchým PLC nebo pro malé „robotické“ aplikace přímo ovládané externím PC představuje toto provedení ideální pohonnou jednotku, protože již k tomu nepotřebujete vůbec nic jiného. Také již populární označení Cool Muscle, které by se dalo přeložit jako „chytrý sval“, dostatečně naznačuje směr využití. Tomuto účelu pak odpovídá i vývojový a ovládací software Cool Works.
Pro náročnější průmyslové aplikace, kde řídící systémy v podobě “velkých“ PLC již obsahují karty pro řízení motorů, pak toto provedení asi ztrácí smysl. Také tam, kde se požadují složitější řídící funkce víceosého polohování, se asi lépe uplatní sofistikovanější řídící jednotky s lepším ovládacím a návrhovým softwarem.
Pokračování příště - Profibus ...
Tento test o servomotoru Cool Muscle RCM1-17L30A není vše. Jak jak již bylo avizováno v úvodu, to hlavní, tedy testování použitelnost Profibus-DP komunikace a ovládání testoval kolega Blažek. Proto sledujte stránky serveru automatizace.HW.cz , kde se v nebližší době článek objeví.
Autor: Antonín Vojáček
DOWNLOAD & Odkazy
- Domovské stránky společnosti KOLEKTOR Indutec - http://cz.kolektorindutec.com, www.kolektorindutec.com
- Přímý odkaz na stránky o motorech Cool Muscle - http://en.kolektorindutec.com/product-groups/reliance-integrated-servo-motors-and-accessories/
- Dokumentace - Cool_Muscle_Brochure.pdf, Cool_Muscle_Users_Manual_new.pdf,Reliance Cool Muscle_eng.pdf
- Další zajímavé články najdete na stránkách serveru automatizace.HW.cz