Aktuální vydání

celé číslo

05

2019

komunikace a software pro snímače a akční členy

tlakoměry

celé číslo

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

Cílem zahajovaného seriálu je seznámit čtenáře se základní koncepcí mezinárod­ní 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 motiva­ci 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 nor­my IEC 61131-3, členění programu na pro­gramové organizační jednotky (POU – programy, funkce a funkční bloky) a charakteri­zovány čtyři programovací jazyky (IL, LD, FBD a ST), deklarace proměnných, dato­vých typů a dalších společných prvků. Bu­dou 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é regu­lační úlohy. Snahou je omezit pasáže s všeo­becnými popisy a obsáhlými definicemi syn­taxe a zaměřit se na popis řešených příkladů z oboru techniky budov, inteligentní instala­ce a zabezpečovací techniky, jejichž tematika je názorná a čtenáři blízká (nevyžaduje kom­plikovaný popis).
 
Zvolili jsme postup obdobný moderním kurzům cizích jazyků, kde je prvotní konver­zace 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še­ním příkladů. Kurz bude interaktivní a aktiv­ní č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é ope­race. 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, kte­ré jsou pro daný problém nejvhodnější. Kro­mě řešených příkladů budou uváděna zadání úloh pro sa­mostatnou 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ál­ní, 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 programo­vá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áživ­né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 sys­témů různých výrobců.
 

Význam normy IEC/EN 61131-3

 
Programovatelné automaty (PLC – Pro­grammable Logic Controllers), někdy též označované jako PAC (Programmable Automatiomation Controllers), jsou již dlou­hou dobu nejrozšířenějšími řídicími systémy pro řízení strojů a výrobních procesů. Do­dá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 automa­tů. Jejich důležitou vlastností jsou komuni­kační možnosti. Dovolují nejenom připo­jit vzdálené vstupy, výstupy a inteligentní přístrojové vybavení (senzory, akční členy, pohony a další přístroje), ale i propojit řídi­cí systémy navzájem v různých topologic­kých strukturách. Distribuovaný řídicí sys­tém je pak tvořen několika PLC, často růz­ný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éha­vý. Jednotné programování PLC řeší mezi­ná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ši­nou programátorů PLC. Je výhodné zvlád­nout 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řicvaknu­tí 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 pro­gramovací přístroje řešeny jako PC se speci­alizovaným programovým vybavením – vý­vojovým systémem (někdy se hovoří o vývo­jové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ěko­lika jednoduchými instrukcemi v jazyku kon­taktních schémat nebo mnemokódů (obvykle 16 až 32 instrukcí), byly si programovací jazy­ky, nabízené pro PLC různých výrobců, velmi podobné. Pro programátory nebyl velký pro­blé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řenositel­nost programů, ale podobnost systémů umož­ňovala porozumění a snadnou adaptaci pro­gramá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ži­tostí jazyků se ale i vzájemně vzdalovaly a ob­jevovaly se stále větší odlišnosti. Každý výrob­ce obohatil svůj programovací jazyk jinak. Si­tuaci 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 roz­poznat společné jádro všech příbuzných jazy­ků, 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 uja­la náročného úkolu vytvořit normu, která by sjednocovala požadavky na provedení progra­movatelný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á nor­ma 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í in­formace o PLC, druhá část je věnována poža­davkům na provedení elektroniky PLC a na její testování. Třetí část kodifikuje způsoby pro­gramování, syntaxi společných prvků progra­mů (deklarací proměnných a typů dat, způso­bů aktivace programů) a popisuje syntaxi čtyř programovacích jazyků: LD, FBD, IL, ST, po­pisuje 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á stan­dardem 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í kal­kulač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 ame­rická 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 sys­té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. Na­bí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. Ne­předpokládalo se, že by programátoři byli ochotni jít v montérkách programovat do drs­né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če­ní LD (Ladder Diagram, v němčině Kontaktplan, v češtině jazyk kontaktních schémat). Po­uží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é termi­nologii 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 programovatel­ný 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 jazyka mnemo­kó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 pro­cesů 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). Po­stupně 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)