V minulém 3. díle "TEST - Výkonné kompaktní PLC Omron NX1P2 - 3.díl - Sysmac Studio" jsme si ukázali jako se provádí základní nastavení hardwaru PLC a co jsou globální a lokální proměnné a jak s nimi nakládat. Dnes v tomto díle přímo navážeme tím, že využijeme globální proměnné vstupů a výstupů PLC a lokální proměnné ve velmi jednoduchém prográmku časového řízení rozsvěcování 3-barevného majáčku. Prográmek demonstruje základní způsob programování PLC Omron NX1P2. Využívá jednu hlavní smyčku programu rozdělenou do 5 podsekcí. Každá podsekce vytváří odlišné časování a posloupnost blikání barev majáčku, přičemž přepnutí mezi těmito 4 různými režimy se provádí hardwarovými signály na dvoustavových binárních vstupech PLC.
Jak se vytváří program u PLC Omron NX1P2?
Již ve 3. díle jsme si ukázali, že celkový program PLC lze dělit do velkého počtu smyček programu (Program0, Program1 atd.) a každou sekci pak ještě do podprogramů (Section0, Section1 atd.). Rozdíl je v tom, že zatímco podprogramy "Section" jsou vykonávány všechny v pořadí za sebou, části "Program" lze pak pro zpracování dávat různé režimy priority a řetězení, což se definuje v záložce "Configurations and Setup -> Task Settings". Tím se však budeme zabývat podrobněji v některém dalším díle. Zde je ještě vhodné uvést, že mimo režim zadávání programu ve formě "Ladder", je možné i současně jako další sekci "Program" (například Program0) vložit i zadávání programu v režimu příkazů "ST".
V případě zahájení programování nebo v případě jednoduchých prográmků tak zatím stačí vytvořit jen jednu smyčku programu (Program0) a v něm jednotlivé rozdílné funkční části rozdělit do podprogramů (Section0, Section1 atd.). Z pohledu přehlednosti je lepší raději udělat více podprogramů "Section", kde bude méně příkazů a tedy bude na první pohled přehlednější než jich udělat málo a v nich mít dlouhé sekce, ve kterých se lze snadno ztratit.
Základní programování se obvykle provádí v režimu "ladder diagramu" pomocí funkčních bloků. Režim příkazů se obvykle používá jen pro vytváření nových funkčních bloků (celků) obsahující například velké množství výpočtů (realizace rovnic), které se v ladderu obtížně realizují.
Dnes se však zaměříme jen na ladder diagram využívající funkční bloky.
Programování probíhá prakticky obdobně jako u jiných PLC, protože i zde se využívá zásad normy IEC 61 131. Pro dvoustavové vstupy a výstupy programu a také bitové paměťové proměnné se využívá klasických příkazů "Input" a "Output", které se vloží do programu a v rámci každého řádku propojují čárami. Mezi tyto symboly jednobitových proměnných se pak dají vložit různé další více či méně složité funkce v podobě funkčních bloků reprezentované "black box" obdélníčkem s větším či menším počtem vstupních a výstupních proměnných, ať již binárních (bool) nebo číselných hodnot (integer -INT, word - WORD, double word - DWORD, real -REAL atd.). Méně obvyklé pro začínající programátory jsou pak proměnné typu TIME (čas), které se využívají například v časovačích (jak uvidíte dále) a mají speciální režim zadávání. Časové hodnoty se tak v tomto PLC zadávají ve speciálním časovém formátu "T#106751d_23h47m_16s_854.775807ms", přičemž lze zadávat jen krátký formát "T#1ms" až po "T#106751d_23h47m".
V základní konfiguraci programovacího okna softwaru Sysmac Studio se u programovací plochy v pravém sloupci označeném jako "Toolbox" nachází rozsáhlá databáze funkcí a funkčních bloků, které lze přímo přetažením do programu vložit. Po vložení do programu se pak vstupy pro binární proměnné propojí čárami s jednobitovými vstupy/výstupy a u vstupů pro číselné proměnné je nutné kliknout na příslušné zadávací políčko položky a zadat název již vytvořené proměnné (pak současně nabídne již seznam vytvořených proměnných, ze kterých si lze vybrat), nebo zadat název zcela nové proměnné a zatím nevytvořené ani nepoužité proměnné, čímž se tato nová proměnná automaticky zavede do databáze lokálních proměnných dané sekce programu s daným typem hodnoty proměnné (integer, word, time atd.).
Dostupné předpřipravené funkce a funkční bloky najdete v programu Sysmac Studiu úhledně a přehledně organizované ve sloupci "Toolbox" z něhož stačí funkce do programu jen přetáhnout..
Následně se pak již při dalším jejím zadání nabídne v seznamu proměnných. Tato funkce "samopřidávání" proměnných do databáze je velmi příjemná, protože si dopředu nemusíte hned všechny proměnné zadávat a definovat v tabulce proměnných, ale interaktivně, snadno a rychle je přidávat tímto způsobem během vytváření programu, aniž by bylo nutné někam překlikávat. Tento způsob programování mi opravdu vyhovuje. Navíc lze v nastavení programu "Tools->Options..." nastavit, zda zadávané nová jména proměnných automaticky se zařadí jako interní (lokální) proměnné, nebo bude vždy programátor dotázán na volbu zda má být lokální či globální, tedy "External" a "Internal".
Ukázkový program časování světel majáku
Pro zcela prvotní ukázku programování jsem vytvořil z pohledu PLC NX1P2 zcela triviální prográmek ovládání světelného majáku, na kterém však je možné si rychle vyzkoušet základní funkce a postup programování a ladění programu ve vývojovém softwaru Sysmac Studio.
Moje testovací konfigurace PLC složené z CPU jednotky NX1P2-9024DT1 a rozšiřujících modulů/karet PF0630, ID3417 a OD3256.
V mé konkrétní testovací konfiguraci PLC NX1P2-9024DT1 s rozšiřujícími moduly PF0630, ID3417 a OD3256 jsem si již v minulém 3. dílu připravil pojmenování externích (globálních) proměnných konkrétních vstupů a výstupů. V mém případě jsem využil vstupů rozšiřující karty vstupů ID3417 a pojmenoval si jako "Extern_I1" až "Extern_I4" a podobně výstupy rozšiřující karty OD3256 jako "Extern_O1" až "Extern_O3". Takto následně se zobrazují i v programu.
Tabulka přiřazení názvů tzv. externích (globálních) proměnných vstupům a výstupům k PLC připojených IO karet ID3417 a OD3256.
Můj základní ukázkový prográmek se prakticky skládá z jednoduchého principu:
-
Na základě stavu čtyřech řídích vstupů se aktivuje jeden ze čtyřech režimů časového řízení blikání barev majáku, kde každý režim je vytvořen v odděleném podprogramu "Section0" až "Section3". Každá tato "Section" začíná zjištěním stavu vstupů a v momentě, když jeden je aktivován a ostatní deaktivovány tak, se aktivuje paměťový bit interní (lokální) proměnné "State_External_Ix" pro spuštění běhu posloupnosti časování.
Části ukázkového programu: Section1 (1. typ časování majáku), Section2 (2. typ časování majáku), Section3 (3. typ časování majáku) a Section4 (převod signálových výstupů Section1 až Section3 na výstupu PLC).
-
K časování je vždy použit blok časovače "Timer", který se kladným signálem interní proměnné "State_Extern_Ix" aktivuje a zahájí počítání čas od 0 ms až do maximální periody uvedené na vstupu "PT". Následně jsou použity funkční bloky porovnávání "Comparison" (konkrétně bloky menší než "<" a zóna "ZoneCmp"), kde se porovnává v každém okamžiku aktuální čas časovače "Timer" (průběžně ukládaný do proměnné "Actual_time" na výstupu "ET") s přednastavenými hodnotami času každého porovnávacího bloku. A podle toho v jakém rozsahu se aktuálně nachází čas časovače, tak se přes příslušný porovnávací blok aktivuje výstup na interní (lokální) proměnnou "State_External_Ox_x".
-
"Section0" až "Section3" ma má stejnou strukturu programu, pouze se liší hodnotami časování a názvy lokálních proměnných. "Section4" pak již jen tvoří převod stavů výstupních interních lokálních proměnných "State_Extern_Ox_x" na externí (globální) proměnné fyzických výstupů "Extern_O1" až "Extern_O3".
Tabulku proměnných proužitých v programu lze kdykoliv snadno vyvolat z rolety nad oknem programu - zde seznam vytvořených tzv. interních (lokálních proměnných). Zde lze nepotřebné proměnné i mazat.
Simulace bez PLC
Po vytvoření programu, jeho uložení přes "Save" a překladu "Build all" je možné před nahráním do PLC provést simulaci běhu programu jen v PC. K tomu složí záložka "Simulation" a pro vyzkoušení základního běhu prakticky stačí jen simulaci zapnout přes "Simulation->Run". Po delší či kratší chvíli (záleží dost na výkonu a vytížení počítače) se simulace spustí, což indikuje zabarvení liniového ladder diagramu žlutou a zelenou barvou a zobrazení aktuálních číselných hodnot proměnných u funkčních bloků.
V případě mého ukázkového programu se majákem se zobrazí nabíhání času časovačů "Timer" a přepínat stavy výstupů jednotlivých funkčních bloků porovnávací aktuální čas s přednastavenými hodnotami. Spouštěcí podmínku pro spuštění konkrétní části programu v konkrétní části "Section" se provede poklikáním na příslušnou "Input" funkci, kde se následně u ní objeví malé přepínací okénky s možnosti nastavit její stav na "True" (= zapnuto = stav log.1) nebo "False" (= vypnuto = stav log.0).
Běh ukázkového programu při simulaci na PCv programu Sysmac Studio.
Nahrání do PLC a testování
Nahrání v simulaci vyzkoušeného programu se provede po zapnutí ethernetové komunikace s PLC. Nejdříve tedy je nutné v záložce "Controller->Communication Setup..." správně nastavit komunikační/připojovací parametry. Nejjednodušší je přímo připojit ethernetovým kabelem PLC k PC a zvolit režim "Direct Connection via Ethernet". Standardně má z výroby PLC vždy nastavenou IP adresu 192.168.250.1. Pokud to nezměníte, tak je jen potřeba mít v PC nastavenou na ethernetovém portu IP adresu ve stejné sekci, tedy na adresu 192.168.250.xx, kde xx je prakticky libovolné číslo 2 až 254.
Nastavení přímého (Direct) připojení PLC NX1P2 k Sysmac Studiu přes Ethernet pro potřeby nahrání programu.
Následně se lze připojit z PC do PLC přes režimu "Controller->Online". Následně je možné program do PLC nahrát přes položku "Controller->Transfer...->To Controller...". Po odkvitování několika hlášek je program do PLC nahraje a automaticky spustí. V PC je pak možné vidět v oknech programu (Section) jeho běh a aktuální stavy podobně jako v režimu simulace. Jen zde se nám již proměnné přiřazené k hardwarovým vstupům mění podle skutečného stavu na vstupech karty ID3417. Tedy se spustí odpočítávání té části programu (v jedné konkrétní "Section"), u které byla splněna spouštěcí podmínka definovaná stavy hardwarových napěťových signálů na vstupu. I zde je však možné měnit a ovlivňovat stavy proměnných z PC.
Ukázkový program běží v PLC a stav a průběh programu se vizualizuje v Sysmac Studiu přes ethernetové připojení.
Barvy k PLC připojeného blikajícího majáku.
Závěr 4. dílu
Dnes jsem se pokusil krátce představit základy programování PLC Omron řady NX1P2 v programu Sysmac Studio. Ukázkový program samozřejmě není nic převratného a pro PLC neznamená prakticky žádnou výkonovou zátěž. Proto se v příštím 5. díle podíváme na z pohledu průmyslu zajímavější aplikaci, tedy jak zprovoznit MODBUS-TCP komunikaci s externím zařízením.
Odkazy:
- Webové stránky výrobce PLC NX1P - společnost Omron: https://industrial.omron.cz.
- Web s podrobnými technickými informacemi o PLC NX1P: https://industrial.omron.cz/cs/products/nx1#specifications_ordering_info .
- Článek "TEST - Výkonné kompaktní PLC Omron NX1P2 - 1.díl - Úvod" na serveru automatizace.hw.cz
- Článek "TEST - Výkonné kompaktní PLC Omron NX1P2 - 2.díl - Hardware" na serveru automatizace.hw.cz
- Článek "TEST - Výkonné kompaktní PLC Omron NX1P2 - 3.díl - Sysmac Studio" na serveru automatizace.hw.cz
- Článek "Automatizační a robotická platforma OMRON Sysmac" na serveru automatizace.hw.cz.
- Článek "Modulární jednotky vstupů/výstupů Omron NX I/O" na serveru automatizace.hw.cz.