Článek ve formátu PDF je možné stáhnout
zde.
Cílem zahajovaného seriálu je seznámit čtenáře se základní koncepcí mezinárodní normy IEC/EN 61131-3, která řeší jednotné programování PLC. Bude objasněna syntaxe, její čtyři jazyky a na jednoduchých úlohách ukázány možnosti programování podle této normy. Není reálné (a nemělo by to ani smysl) „převyprávět“ zde celou normu. Seriál má spíše motivační a ilustrativní charakter, čtenář se po jeho přečtení ještě nestane erudovaným programátorem, pouze získá základní představu a motivaci k detailnímu studiu a k samostatné praxi. Seriál může být využit zejména pro výuku automatizace a programování PLC na odborných školách nebo také pro přeškolování odborníků z praxe. Výklad v tištěném časopise Automa bude doplněn na webové stránce www.automa.cz dalšími příklady a řešením zadaných úloh, diskusí a náměty čtenářů. Uvítáme připomínky a dotazy čtenářů, náměty, zkušenosti s výukou, řešení zadaných úloh a zadání vlastních příkladů.
Obsah a forma seriálu
Postupně budou vysvětleny zásady normy IEC 61131-3, členění programu na programové organizační jednotky (POU – programy, funkce a funkční bloky) a charakterizovány čtyři programovací jazyky (IL, LD, FBD a ST), deklarace proměnných, datových typů a dalších společných prvků. Budou uváděny příklady základních kombinačních, sekvenčních a časových úloh, základní numerické a hybridní úlohy, jednoduché regulační úlohy. Snahou je omezit pasáže s všeobecnými popisy a obsáhlými definicemi syntaxe a zaměřit se na popis řešených příkladů z oboru techniky budov, inteligentní instalace a zabezpečovací techniky, jejichž tematika je názorná a čtenáři blízká (nevyžaduje komplikovaný popis).
Zvolili jsme postup obdobný moderním kurzům cizích jazyků, kde je prvotní konverzace a gramatika je probírána postupně, jak je třeba. Syntaxe a potřebná teorie budou uváděny spíše příležitostně v souvislosti s řešením příkladů. Kurz bude interaktivní a aktivní čtenáři budou mít možnost pracovat s reálným vývojovým systémem.
Příklady se základními logickými úlohami budou nejprve uváděny jen v jazyku LD, který je patrně nejpřístupnější pro začátečníky. Na něm budou vysvětleny i základní logické operace. Následně bude uvedeno řešení některých úloh v ostatních jazycích normy. Dále budou pro řešení příkladů používány jen jazyky, které jsou pro daný problém nejvhodnější. Kromě řešených příkladů budou uváděna zadání úloh pro samostatnou práci a kontrolní otázky. Později bychom rádi zveřejňovali zadání úloh od čtenářů a jejich řešení, popř. diskusi k nim.
Aktivní studium – programujme spolu
Považujeme za optimální, aby aktivní čtenář měl možnost pracovat s reálným vývojovým systémem, který si zvolí nebo který je pro něj dostupný, popř. i se svým programovatelným automatem. Ve výkladu se budeme zabývat jen metodikou programování podle normy IEC, nikoliv jeho zadáním a laděním ve vývojovém systému ani vytvořením ostatních složek projektu. Vědomě tak „vyzobáváme sladkou hrozinku z nezáživného kousku aplikací PLC“. Programování podle normy IEC je jednotné a nezávislé, na použitém PLC, na rozdíl od vývojových systémů různých výrobců.
Význam normy IEC/EN 61131-3
Programovatelné automaty (PLC – Programmable Logic Controllers), někdy též označované jako PAC (Programmable Automatiomation Controllers), jsou již dlouhou dobu nejrozšířenějšími řídicími systémy pro řízení strojů a výrobních procesů. Dodává je několik světových a domácích výrobců, obvykle v několika typových řadách. V jednom provozu je tedy možné se setkat s různými typy programovatelných automatů. Jejich důležitou vlastností jsou komunikační možnosti. Dovolují nejenom připojit vzdálené vstupy, výstupy a inteligentní přístrojové vybavení (senzory, akční členy, pohony a další přístroje), ale i propojit řídicí systémy navzájem v různých topologických strukturách. Distribuovaný řídicí systém je pak tvořen několika PLC, často různých typů, mnohdy i od odlišných výrobců. Tím rostou požadavky na programátory, kteří pro ně musí psát své programy, nebo na diagnostiky, kteří se mají orientovat v jejich programech. Požadavek na jednotný způsob programování je tak nyní velmi naléhavý. Jednotné programování PLC řeší mezinárodní norma IEC/EN 61131-3, která byla přijata i jako evropská a česká norma (EN a ČSN). Vznikala zhruba před dvaceti lety a její první vydání bylo publikováno v roce 1993. V současné době ji (do určité míry) respektují všichni významní výrobci. Stala se jakýmsi „esperantem“ používaným většinou programátorů PLC. Je výhodné zvládnout programování podle tohoto standardu – podobně, jako je výhodné umět anglicky.
Programovací přístroje
K programování starších PLC se používaly jednoduché přístroje v kufříkovém provedení (obr. 2) nebo vhodné do ruky či k přicvaknutí na pouzdro PLC, tzv. kalkulačky – (obr. 3). Teprve s rozšířením osobních počítačů (asi od devadesátých let minulého století) jsou programovací přístroje řešeny jako PC se specializovaným programovým vybavením – vývojovým systémem (někdy se hovoří o vývojovém prostředí). To obvykle umožňuje zadat konfiguraci systému, zapsat program ve zvoleném jazyku, odladit ho, upravit a vytvořit dokumentaci projektu.
„Babylon“ v jazycích PLC a norma IEC 1131-3
Dokud programovatelné automaty řešily jen základní logické úlohy a vystačily s několika jednoduchými instrukcemi v jazyku kontaktních schémat nebo mnemokódů (obvykle 16 až 32 instrukcí), byly si programovací jazyky, nabízené pro PLC různých výrobců, velmi podobné. Pro programátory nebyl velký problém zvládnout programování několika typů PLC a zorientovat se v cizích programech. Nešlo sice o kompatibilitu, tím méně o přenositelnost programů, ale podobnost systémů umožňovala porozumění a snadnou adaptaci programátorů. Situaci lze přirovnat k podobnosti nářečí nebo blízkých jazyků (např. češtiny se slovenštinou nebo polštinou). S rostoucí složitostí jazyků se ale i vzájemně vzdalovaly a objevovaly se stále větší odlišnosti. Každý výrobce obohatil svůj programovací jazyk jinak. Situaci bylo možné přirovnat ke vztahu v některé rodině jazyků (např. románských, třeba latiny k italštině, francouzštině a španělštině). Mezi jazyky lze sice najít určité podobnosti, lze rozpoznat společné jádro všech příbuzných jazyků, ale každý jazyk je třeba se naučit zvlášť, aby bylo možné jej používat. V používání PLC tak postupně nastalo zmatení jazyků, podobně jako na pověstném staveništi babylonské věže.
Na přelomu osmdesátých a devadesátých dvacátého století se organizace PLC Open ujala náročného úkolu vytvořit normu, která by sjednocovala požadavky na provedení programovatelných automatů a na jejich programování. V roce 1993 bylo publikováno první vydání mezinárodní normy IEC 1131, která sjednocuje požadavky na PLC. Později byla uvedená norma přijata i jako evropská (EN) a česká (ČSN) norma. Jako evropská norma je označována IEC/EN 61131-3 (dále v textu bude uváděna jen jako „norma IEC“ nebo jen „norma“). Má několik částí. První část obsahuje základní informace o PLC, druhá část je věnována požadavkům na provedení elektroniky PLC a na její testování. Třetí část kodifikuje způsoby programování, syntaxi společných prvků programů (deklarací proměnných a typů dat, způsobů aktivace programů) a popisuje syntaxi čtyř programovacích jazyků: LD, FBD, IL, ST, popisuje způsoby aktivace úloh a nástroj SFC pro realizaci sekvenčních úloh. Nejprve byla norma jen na okraji zájmu výrobců a uživatelů PLC, v posledních deseti letech se stává standardem a programování podle ní nabízejí všich ni významní výrobci. Někteří ale poskytují jen možnost programovat v některých jazycích, ne všichni důsledně akceptují její syntaxi.
Ladislav Šmejkal
Obr. 1. První programovatelný automat značky Tesla Kolín vyrobený v roce 1976
Obr. 2. Kufříkový programovací přístroj
Obr. 3. Programovací přístroj v provedení kalkulačka bylo možné připevnit na pouzdro PLC
Trocha historie nikoho nezabije
Zhruba čtyřicetiletá historie programovatelných automatů začala v roce 1968, kdy americká automobilka General Motors vznesla požadavek na nový typ řídicího systému, aby mohla rychle a s minimálními náklady obměňovat sortiment vyráběných automobilů, což vyžadovalo operativně měnit vybavení a řízení výrobních linek. Dosavadní řídicí systémy založené na pevné reléové logice (rozváděčové skříně plné relé a stykačů) vyžadovaly při změně funkce vypracovat nový návrh logiky, nový projekt i zapojení rozváděčů. To bylo velmi zdlouhavé a drahé. A tak byl už jen krok k myšlence vytvořit nový typ řídicího systému s univerzální elektronikou, jehož funkce by byly řešeny programem, podobně jako u počítače. Místo pracného přepojování rozváděčů by byl „jen“ změněn řídicí program, nanejvýš by ještě byla upravena konfigurace a zapojení periferních obvodů systému. Nabízelo se sice použít některý typ minipočítače, které se již tehdy používaly k řízení technologických procesů. Jejich použití ve výrobě ale omezovalo provedení pro kancelářské prostředí a způsoby programování (obvykle ve strojovém kódu nebo v jazyku Fortran). Programování počítačů bylo teoreticky náročné a nedostupné pro techniky z provozu. Nepředpokládalo se, že by programátoři byli ochotni jít v montérkách programovat do drsného prostředí provozu automobilky.
Již v roce 1969 začala firma Modicon vyrábět zcela nový typ programovatelného řídicího systému v modulárním provedení pro zástavbu do rozváděčů. Robustní elektronika byla odolná proti působení nepříznivého klimatu a rušení v průmyslu. Programovací grafický jazyk byl řešen tak, aby program připomínal kontaktní reléové schéma; ustálilo se pro něj označení LD (Ladder Diagram, v němčině Kontaktplan, v češtině jazyk kontaktních schémat). Používán byl i textový jazyk, obdobný assembleru, který měl mnemonické názvy pro instrukce PLC (IL – Instruction List, v němčině Anweisungslist, v češtině jazyk mnemokódů). Způsob programování byl intuitivní a blízký způsobu myšlení technologů a provozních elektrikářů. Řídicí systém byl nejprve pojmenován Programmable Controller se zkratkou PC a teprve až s nástupem osobních počítačů (PC – Personal Computer) byl název systému rozšířen na Programmable Logic Controller se zkratkou PLC, která je používána dosud. V české terminologii se pro něj ustálil název programovatelný automat.
Programovatelné automaty se v automobilce osvědčily a začaly být běžně používány i v jiných strojírenských provozech. Mnoho firem začalo úspěšně vyrábět obdobné řídicí systémy (např. General Electric, Allan Bradley, Telemechanique, Siemens, Omron, Mitsubishi). V roce 1975 vyrábělo PLC dvacet firem v USA, deset německých firem a sedm japonských. Brzy byla zahájena výroba PLC i v tehdejším Československu. Nejvýznamnějším zdejším výrobcem byla Tesla Kolín, jejíž první programovatelný automat byl vyroben v roce 1976 (obr. 1). Známým se stal slogan: dali jsme PLC české jméno programovatelný automat. Každý výrobce sice nabízel svou variantu PLC, základní koncepce a způsob programování ale zůstaly zachovány, jen byly postupně rozšiřovány o nové funkce. Výrobci nabízeli svou verzi programovacího jazyka kontaktních schémat a jazyka mnemokódů. Vznikaly i další programovací jazyky. Programátorům, kteří byli zvyklí na navrhování logických systémů s integrovanými obvody, byl blízký jazyk FBD (Function Block Diagram, jazyk blokových (logických) schémat). Programátoři zvyklí na programování ve vyšších jazycích pro počítače preferovali i vyšší textový jazyk pro PLC, který sporadicky nabízeli někteří výrobci. Unikátní byl grafický jazyk Grafcet pro popis sekvenčních úloh francouzské firmy Telemechanique.
Programovatelné automaty se postupně uplatnily i při řízení kontinuálních výrobních procesů s úlohami regulace a zpracováním číselných údajů – od pouhých přepočtů až po náročné výpočetní operace ve formátu pohyblivé řádové čárky. Řízení dlouhodobých procesů obvykle závisí na čase, který je někdy měřen přírůstkově (od počátku procesu), nebo absolutně jako datum a denní čas (např. při řízení energetických procesů a vytápění budov). Postupně se na trhu objevovaly stále komfortnější zobrazovací jednotky a operátorské panely. To vyžadovalo od PLC schopnost pracovat s texty a zvládnout převody formátů zadávaných a zobrazovaných hodnot. Splnění uvedených požadavků bylo zapotřebí i pro komunikaci, připojení různých typů průmyslových sběrnic, pro připojení k počítačům a k vizualizačním systémům (SCADA/HMI), nově i k internetu. Vlastnosti těchto moderních a výkonných řídicích systémů již zcela nevystihuje označení PLC, proto někteří výrobci používají název Programmable Automation Controller (PAC), který se ale nevžil. Většina výrobců i uživatelů stále používá zavedený termín a zkratku PLC, zůstaneme u něj i v tomto seriálu.
(sm)