PROGRAMUJEME V JAZYCE LD
Seriál se v dnešním díle zabývá úvodem do programovaní
v jazyce LD. LD označuje ve zkratce
slovní spojení Ladder Diagram. Programovací
jazyk odpovídá standardu programování průmyslových
automatů IEC 61131-3. Jeho princip
je založen na reléové logice. Při tvorbě řídicího
programu je třeba funkční programové prostředí
EPOS STUDIO společně s vývojovým prostředím
OpenPCS. Je volně ke stažení na stránkách http://
www.maxonmotor.com v sekci services & downloads
zadáním klíčového slova EPOS P.
Obrázek ukazuje hlavní okno vývojového prostředí
OpenPCS s otevřeným projektem v jazyce
LD. Vývojové prostředí OpenPCS spustíme v prostředí
programu EPOS Studio pravým klikem myši,
zvolíme řídicí jednotku EPOS P a dále zvolíme
„Tools“ a „IEC-61131 Programming“ a „Open
Programming Tool“.
Vytvoříme nový projekt položkou „New“
v hlavní nabídce „File“ vývojového prostředí
OpenPCS. Prostřednictvím jednoduchého průvodce
zvolíme tvorbu nového projektu „Projects“
a „Maxon Motor ag“ a jako šablonu projektu
zvolíme v průvodci položku „EPOS P“. Dále
je nutno tento projekt pojmenovat vyplněním
položky „Name“ a v položce průvodce „Location“
vybrat místo, kde bude projekt uložen na
pevném disku počítače. Tím je projekt vytvořen.
Do projektu můžeme zahrnout soubory s programovým
kódem či deklaracemi proměnných
a různé knihovny.
V začátcích bude postačující vložit do projektu
pouze hlavní soubor s řídicím programem. To
provedeme opět prostřednictvím hlavní nabídky
Open PCS a položky „New“. Použijeme stejného
průvodce jako v předchozím případě. Volbou
POU – Program Unit můžeme vybrat jazyk,
v kterém bude program zapsán, v našem případě
tedy LD – Ladder Diagram. Dále zvolíme „POU
Type“ jako „Program“. Tvorbu hlavního programu
dokončíme zadáním jména souboru a místa
jeho uložení v položkách „Name“ a „Location“.
Stiskneme tlačítko „OK“. Vývojové prostředí
se zeptá, zdali chceme nový soubor zahrnout do
projektu, a to otázkou „Do you like add jmeno
programu to active resource?“. Stiskneme tlačítko
Ano, popř. OK.
Nyní se otevřelo okno, stejně jako v předchozích
případech je rozdělené na dvě části. Horní část
slouží k zápisu a deklaraci proměnných řídicího
programu. Dolní část slouží ke grafické reprezentaci
vlastního řídicího programu.
Okno proměnných obsahuje předdefinované
sekce. Sekce „VAR_EXTERNAL“ slouží pro
deklaraci externích proměnných, tj. proměnných
uložených v jiném kódu. Do sekce „VAR_
GLOBAL“ se deklarují globální proměnné programu.
Sekce „VAR“ je určena pro deklaraci lokálních
proměnných. Příslušná sekce je pak ukončena
zápisem „END_VAR“. Deklarace proměnné Exec
může vypadat následovně ?
Exec : Bool;
Proměnná Exec byla deklarována jako proměnná
typu BOOL – logická proměnná nabývající pouze
dvou stavů Pravda/Nepravda.
V sekci proměnných můžeme dále definovat
použití funkčních bloků z knihoven. Pro práci
s řídicí jednotkou EPOS P využíváme knihovnu
„SMART Motion“.
Část určená pro zápis vlastního programu obsahuje
grafické schéma řídicího programu. V úvodu
jsme uvedli, že jazyk LD, tj. Ladder Diagram, je
graficky orientovaný programovací jazyk založený
na principu reléové logiky. Relé je elektrotechnický
prvek, který se skládá z cívky s jádrem a z kotvičky,
která ovládá kontakty. Pokud protéká cívkou
elektrický proud, jádro cívky přitáhne kotvičku. Ta
mechanickým působením sepne či rozepne kontakty
a v navazujících obvodech může protékat
proud. Relé může obsahovat několik nezávislých
kontaktů.
V tomto duchu se nese celá filozofie programování
v jazyce LD. Program je tvořen pomocí grafických
symbolů, reprezentujících jednotlivé cívky
a kontakty relé. Ty ovládají další funkční bloky
použité v programu. Prostřednictvím dalších grafických
příkazů můžeme cívky relé aktivovat či
deaktivovat, popřípadě určit, že daný kontakt ovládaný
příslušnou cívkou relé je spínací či rozpínací.
Programovací jazyk umožňuje používat přehledných
textových popisků přímo k jednotlivým prvkům
schématu, popřípadě ke skupině prvků.
Způsob programování vysvětlíme na jednoduchém
případě, kdy chceme resetovat chyby řidicí
jednotky EPOS P. Reset jednotky zajišťuje funkční
blok MC_Reset z knihovny Smart Motion. Tento
blok vyžaduje jako vstupní parametr Axis - identifikátor
osy (tj. id jednotky, kterou chceme resetovat)
a parametr Execute, který udává, zdali se má reset
provést (true – ano/false – ne ). Proto deklarujeme
v sekci VAR následující proměnné ?
Var
Osa: AXIS_REF:=(AxisNo:=0);
Reset: MC_Reset;
Exec : Bool;
Fin : Bool;
END_Var
Nyní můžeme vytvořit vlastní řídicí program.
Bude se skládat ze dvou grafických řádků. Na
prvním provedeme aktivaci cívky relé označeného
jako Exec, na druhém provedeme sepnutí kontaktů
tohoto relé. To bude reprezentovat hodnotu True na
vstupu Execute funkčního bloku MC_Reset, který
jsme deklarovali pod názvem Reset.
První grafický řádek řídicího programu bude
obsahovat pouze jeden grafický příkaz Set Coil.
Vložení tohoto příkazu provedeme kliknutím pravého
tlačítka myši na linii grafického řádku a ze
zobrazené nabídky vybereme možnost Set Coil.
Pro pojmenování této cívky klikneme opět pravým
tlačítkem myši na grafický symbol cívky a ze zobrazené
nabídky zvolíme možnost Insert Variable.
Objeví se okno se seznamem deklarovaných proměnných.
Zvolíme možnost Exec.
Druhý grafický řádek přidáme do řídicího programu
tak, že opět klikneme pravým tlačítkem myši
na linii prvního grafického řádku a ze zobrazené
nabídky vybereme možnost Insert Network. Tento
řádek bude obsahovat kontakt relé Exec z prvního
grafického řádku, dále funkční blok MC_Reset
a cívku dalšího relé Fin, která může například aktivovat
další funkční bloky. Všechny zmíněné údaje
je možno na druhý grafický řádek přidat stejným
způsobem jako při tvorbě řadku prvního, tj. pravé
tlačítko myši a možnosti Insert Contact, Insert Function
Block a Insert Set. Každému grafickému příkazu
přiřadíme příslušnou proměnnou, tedy Exec,
Reset a Fin. Funkční blok MC_Reset dále vyžaduje
definici identifikátoru osy. To je provedeno stejně
jako v ostatních případech přiřazením proměnných
pomocí okna Insert Variable. Pro demonstraci je
grafický zápis programu zobrazen na obrázku
v úvodu.
Dokončený řídicí program je nutno přeložit do
strojového kódu. To lze provést pomocí položky
hlavní nabídky „PLC“ volbou „Build Active
Resource“. Pokud vývojové prostředí OpenPCS
v zápisu řídicího programu nenahlásí žádné chybové
hlášení, uložíme řídicí program do řídicí jednotky
EPOS P. Použijeme položku hlavní nabídky
PLC, volíme PC->PLC download. Řídicí program
je spuštěn volbou položky „Cold Start“ hlavní
nabídky PLC.
Pro demonstraci řídicího programu v jazyce LD
byl vytvořen program simulující pohon hvězdářského
dalekohledu. Řídicí program pracuje s řídicí
jednotkou EPOS P v režimu Profile Position Mode.
Vytvořený program je možno pro demonstraci stáhnout
na webových stránkách firmy Uzimex Praha
spol. s r.o. http://www.uzimex.cz
Příští díl seriálu se bude věnovat popisu skutečných
aplikací s řídicími jednotkami EPOS P
ING. JIŘÍ HNÍZDIL,
HNIZDIL@UZIMEX.CZ