Aktuální vydání

celé číslo

04

2019

Plnicí a balicí stroje, výrobní logistika a správa skladových zásob

Průmyslové počítače, PLC

celé číslo

Esperanto programátorů PLC: programování podle normy IEC/EN 611 31-3 (část 2)

Ve druhém díle výukového seriálu o programování PLC se čtenáři dozvědí o otázkách shody s normou IEC/EN 61131-3, o její struktuře a univerzálním charakteru. Článek také popisuje vývojové systémy pro PLC a jejich úlohu při vytváření programu a projektu řídicího systému.
 

Implementace, stupně shody s normou

 
Norma IEC/EN 61131-3 je velmi obsáhlá a obecná. Ne každý z výrobců PLC, který se k ní hlásí, ji respektuje v celém rozsahu. K prověření shody implementace vývojového systému s normou vykonává mezinárodní organizace PLCopen certifikační testy. Pro každý programovací jazyk podle normy je vytvořen odstupňovaný systém shody ve třech úrovních: základní úroveň, úroveň přenositelnosti, plná úroveň. Někteří výrobci ve svém vývojovém systému navíc podporují i jiné programovací jazyky, např. firemní jazyk, používaný ve starších systémech PLC (pro úpravy programů ve starších zakázkách a jako vstřícnost tradičním zákazníkům), nebo oblíbený jazyk C.
 

Kdo se k normě hlásí

 
Podle normy jsou obvykle programovány novější typy programovatelných automatů (PLC, PAC) většiny významných světových výrobců. Někdy ji akceptují i výrobci počítačových řídicích systému typu softPLC nebo vestavných (embedded) průmyslových počítačů. Funkce programovatelného automatu mají (ve formě podsystému) i moderní systémy CNC pro číslicové řízení obráběcích, tvářecích strojů a robotů a také některé současné měniče frekvence. I pro ně platí tato norma. Naopak ji nevyužívají výrobci nejmenších programovatelných systémů kategorie programovatelných relé či smart relé – pro tak jednoduché systémy je norma příliš složitá.
 

Struktura normy

 
Norma je rozdělena na dvě části: společné prvky a programovací jazyky. V části společných prvků jsou určeny typy dat, proměnné, konfigurace, zdroje a úlohy a programové organizační jednotky (POU), mezi něž se řadí funkce, funkční bloky a programy. Druhá část je věnována popisu čtyř programovacích jazyků a prostředku sekvenčního programování SFC. Norma jako celek je poměrně široká a komplikovaná. Je to důsledek její obecnosti a univerzálnosti. Je pravděpodobné, že ji čeká dlouhý aktivní život. V mnohém se podobá moderním a vyšším programovacím jazykům. Podporuje spolehlivost programátorské práce a minimalizuje výskyt chyb programátorů. Norma je připravena pro programování moderních PLC s mnoha možnostmi v programování a komunikaci (někdy označované jako PAC) a složitých distribuovaných systémů s více řídicími systémy. V konkrétním případě (např. při programování jednoduchého kompaktního PLC) není nutné využívat všechny možnosti, které norma nabízí. Programátor se může omezit jen na základní prvky a konstrukce. Právě na nejjednodušší programové konstrukce a programové objekty bude zaměřen i tento seriál.
 

Vývojové systémy jsou unikátní

 
Norma IEC/EN 61131-3 sice sjednocuje formu programu PLC, nezabývá se ale unifikací vývojových systémů, ty jsou vždy unikátní. Programátor tak tedy podle normy vytvoří univerzální program použitelný pro libovolný systém PLC, pro jeho implementaci, zápis, odladění, dokumentování spolu s ostatními částmi projektu bude však používat individuální vývojový systém. Každý výrobce PLC používá vlastní vývojový systém, někdy dokonce několik různých vývojových systémů pro různé typové řady svých PLC. Jen ojediněle se vyskytují dodavatelé nabízející univerzální vývojový systém (např. CoDeSys), který je ale nutné přizpůsobit pro PLC, pro který má být určen. Orientaci ve vývojových systémech usnadní přehled trhu otištěný v tomto vydání na str. 53 až 56.
 

Program a projekt řídicího systému

 
Programováním PLC se nerozumí jen vytvoření samotného programu. Na rozdíl od počítačových programů je program PLC provázán s řízeným technologickým objektem, mnoha vstupy a výstupy, dvouhodnotovými (binárními) i analogovými – ty se uvnitř PLC zpracovávají jako proměnné (booleovské nebo číselné). Vstupy a výstupy jsou připojeny ke konkrétním vstupním a výstupním svorkám vlastního PLC nebo jeho přídavných nebo vzdálených modulů, popř. prvků (senzorů, akčních členů, pohonů a dalších přístrojů), připojených k systému průmyslovou sběrnicí. Každému vstupnímu nebo výstupnímu signálu PLC odpovídá vstupní nebo výstupní proměnná programu – tu je třeba pojmenovat a určit její typ. Současně je třeba popsat vztah k fyzickému provedení: zapojení odpovídajících svorek na příslušném modulu PLC (obr. 4) nebo na prvku sběrnice (obr. 5). Tento celek (mechanické provedení i program PLC) je obvykle nazýván projekt řídicího systému s PLC, zkráceně jen projekt. Sám program je jen jeho částí. U distribuovaných systémů s více PLC je zapotřebí zpracovat programy pro všechny podsystémy, včetně společně sdílených proměnných. Podobně je třeba navrhnout komunikaci mezi PLC a počítačovými systémy (např. s vizualizačními systémy) nebo dalšími účastníky distribuovaného systému (obr. 6, obr. 7).
 

Aktivní čtení

 
Tento výukový seriál je sice možné jen pasivně číst, stejně jako lze pasivně číst jazykovou učebnici. To je ale málo produktivní. Doporučujeme nainstalovat si do svého počítače některý z nabízených vývojových systémů, popř. si k němu pořídit i svůj programovatelný automat, a na něm průběžně programovat a ověřovat příklady prezentované v kurzu, řešit úlohy zadané v kurzu, popř. řešit úlohy podle vlastního zadání a úlohy ze školní laboratoře.
 
Čtenářům, kteří nemají možnost pořídit si k procvičování příkladů svůj PLC s vývojovým systémem, doporučujeme použít funkci virtuálního PLC, kterou poskytují některé vývojové systémy. Například na stránkách www.tecomat.cz lze najít, stáhnout a nainstalovat si vývojový systém Mosaic určený pro systémy Tecomat. Bezplatná a volně šiřitelná verze Mosaic Lite neklade žádná omezení pro virtuální PLC. Budou v ní řešeny i příklady uváděné v tomto seriálu.
 
V průběhu seriálu budou zadávány úlohy, a jestliže redakce obdrží jejich řešení od aktivních čtenářů, zejména učitelů a studentů, budou ta zajímavá z nich (s uvedením autorství) otištěna. Následující části seriálu budou věnovány těmto tématům:
  • typy objektů POU, programovací jazyky (LD, FBD, ST, IL), SFC, základní typy dat a proměnných, deklarace,
  • kombinační logické funkce (AND, OR, XOR, majorita, prahové funkce), příklady z techniky budov,
  • jednoduché sekvenční funkce (generátor impulzu, paměťové funkce SR, RS, T, D, časovače a měření času, čítače),
  • komplexní funkce pro techniku budov, osvětlení schodišť, chodeb a obytných prostorů, typické scény, vyhodnocení snímačů PIR, využití proměnných času a data, časové programy, sekvenční řízení rolet, mříží, žaluzií a složitějších procesů, spojité rozsvěcování a stmívání, simulace přítomnosti, kontrolní a diagnostické funkce,
  • funkce jednoduchých regulátorů, regulace topení a chlazení, nespojité regulátory, číslicové regulátory PI, PID.
Předpokládáme, že po skončení kurzu budou následovat samostatné články věnované řešení komplexnějších úloh z různých aplikačních oborů a algoritmizaci teoreticky náročnějších úloh, popř. případovým studiím zajímavých aplikací PLC v různých oborech.
Ladislav Šmejkal
 
Obr. 4. Tradičním úkolem vývojových systémů je řešit projekty centralizovaných systémů s jediným PLC
Obr. 5. Vývojové systémy řeší i úlohy řídicích systémů s distribuovaným přístrojovým vybavením s přístroji připojenými ke komunikační sběrnici
Obr. 6. V současnosti bývá od vývojového systému požadováno i vytvoření projektu distribuovaného řídicího systému s několika PLC v komunikační síti
Obr. 7. Ukázka volby konfigurace projektu distribuovaného systému ve vývojovém systému