norma IEC 61131

tutoriál

Tutoriál porogramování PLC systémů

Norma IEC 61 131 – základní pojmy

Než začneme
Doporučuji stáhnou si text příručky Programování PLC Tecomat podle normy IEC 61 131-3, ze které budeme čerpat obecné informace a provést instalaci poslední verze prostředí Mosaic, která je volně přístupná na adrese www.tecomat.cz.

Norma IEC 61 131 pro programovatelné řídící systémy má sedm základních částí a představuje souhrn požadavků na moderní řídicí systémy. Je nezávislá na konkrétní organizaci či firmě a má širokou mezinárodní podporu. Jednotlivé části normy jsou věnovány jak technickému tak programovému vybavení těchto systémů.

V ČR byly přijaty jednotlivé části této normy pod následujícími čísly a názvy:

ČSN EN 61 131-1 Programovatelné řídicí jednotky – Část 1: Všeobecné informace
ČSN EN 61 131-2 Programovatelné řídicí jednotky – Část 2: Požadavky na zařízení a zkoušky
ČSN EN 61 131-3 Programovatelné řídicí jednotky – Část 3: Programovací jazyky
ČSN EN 61 131-4 Programovatelné řídicí jednotky – Část 4: Podpora uživatelů
ČSN EN 61 131-5 Programovatelné řídicí jednotky – Část 5: Komunikace
ČSN EN 61 131-7 Programovatelné řídicí jednotky – Část 7: Programování fuzzy řízení

V Evropské unii jsou tyto normy přijaty pod číslem EN IEC 61 131.

Základní myšlenky normy IEC 61 131-3

Norma IEC 61 131-3 je třetí částí skupiny norem řady IEC 61 131. Dělí se na dvě základní části:

  1. společné prvky
  2. programovací jazyky

Společné prvky

Typy dat
V rámci společných prvků jsou definovány typy dat. Definování datových typů napomáhá
prevenci chyb v samém počátku tvorby projektu. Je nutné definovat typy všech použitých parametrů.
Běžné datové typy jsou BOOL, BYTE, WORD, INT (Integer), REAL, DATE, TIME, STRING atd.
Z těchto základních datových typů je pak možné odvozovat vlastní uživatelské datové typy, tzv. odvozené datové typy. Tímto způsobem můžeme např. definovat jako samostatný datový typ analogový vstupní kanál a opakovaně ho používat pod definovaným jménem.
Pod pojmem data obvykle rozumíme proměnné, případně konstanty. Bude – li programátor používat určitou proměnnou, musí ji nejprve deklarovat. Deklarace proměnné spočívá v jejím pojmenování, přidělení datového typu, případně inicializační hodnoty. Proměnné mohou být přiřazeny explicitně k hardwarovým adresám (např. vstupům, výstupům) pouze v konfiguracích, zdrojích nebo programech (viz struktura programu). Tímto způsobem je dosaženo vysokého stupně hardwarové nezávislosti a možnosti opakovaného využití softwaru na různých hardwarových platformách.

 

Lokální a globální proměnné
Proměnné mohou být lokálního, nebo globálního charakteru podle oblasti své působnosti. Použití lokální proměnné je omezeno pouze na tu programovou organizační jednotku, ve které byla deklarována.
Globální proměnné mají působnost v rámci celého projektu, jejich deklarace není součástí žádné programové organizační jednotky, deklarují se samostatně.

 

Struktura programu (konfigura  ce, zdroje a úlohy)
Pro lepší pochopení může posloužit softwarový model, který je definován v normě a znázorněn na obrázku

Konfigurace (Configuration)
Definuje nejvyšší úroveň celého softwarového řešení určitého problému řízení. Konfigurace je závislá na konkrétním řídicím systému, včetně uspořádání hardwaru, jako jsou například typy procesorových jednotek, paměťové oblasti přiřazené vstupním a výstupním kanálům a charakteristiky systémového programového vybavení (operačního systému).

Zdroje (Resource)
V rámci konfigurace můžeme pak definovat jeden nebo více tzv. zdrojů. Na zdroj se můžeme dívat jako na nějaké zařízení, které je schopno vykonávat IEC programy. Zdrojem je obvykle centrální procesorová jednotka (CPU)

Úloha (Task)
Uvnitř zdroje můžeme definovat jednu nebo více tzv. úloh (Task). Úlohy řídí provádění souboru programů a/nebo funkčních bloků. Tyto jednotky mohou být prováděny buď periodicky nebo po vzniku speciální spouštěcí události, což může být např. změna proměnné.
Programy jsou vystavěny z řady různých softwarových prvků, které jsou zapsány v některém z jazyků definovaném v normě.
Často je program složen ze sítě funkcí a funkčních bloků, které jsou schopny si vyměňovat data. Funkce a funkční bloky jsou základní stavební kameny, které obsahují
datové struktury a algoritmus.

Programové organizační jednotky
Funkce, funkční bloky a programy jsou v rámci normy IEC 61 131 nazývány společně
programové organizační jednotky (Program Organization Units, někdy se pro tento důležitý a často používaný pojem používá zkratka POUs).

Funkce
IEC 61 131-3 definuje standardní funkce a uživatelem definované funkce. Standardní funkce jsou např. ADD pro sčítání, ABS pro absolutní hodnotu, SQRT pro odmocninu, SIN pro sinus a COS pro cosinus. Jakmile jsou jednou definovány nové uživatelské funkce, mohou být používány opakovaně.

Funkční bloky
Na funkční bloky se můžeme dívat jako na integrované obvody, které reprezentují hardwarové řešení specializované řídicí funkce. Obsahují algoritmy i data, takže mohu zachovávat informaci o minulosti, (tím se liší od funkcí). Mají jasně definované rozhraní a skryté vnitřní proměnné, podobně jako integrovaný obvod nebo černá skříňka. Umožňují tím jednoznačně oddělit různé úrovně programátorů nebo obslužného personálu. Klasickými příklady funkčního bloku jsou např. regulační smyčka pro teplotu nebo PID regulátor.
Jakmile je jednou funkční blok definován, může být používán opakovaně v daném programu, nebo v jiném programu, nebo dokonce i v jiném projektu. Je tedy univerzální a mnohonásobně použitelný.
Funkční bloky mohou být zapsány v libovolném z jazyků definovaném v normě. Mohou
být tedy plně definovány uživatelem. Odvozené funkční bloky jsou založeny na standardních funkčních blocích, ale v rámci pravidel normy je možno vytvářet i zcela nové zákaznické funkční bloky.
Interface funkcí a funkčních bloků je popsán stejným způsobem: Mezi deklarací označující název bloku a deklarací pro konec bloku je uveden soupis deklarací vstupních proměnných, výstupních proměnných a vlastní kód v tzv. těle bloku.

Programy
Na základě výše uvedených definic lze říci, že program je vlastně sítí funkcí a funkčních
bloků. Program může být zapsán v libovolném z jazyků definovaných v normě.

Programovací jazyky
V rámci standardu je definováno pět programovacích jazyků. Jejich sémantika i syntaxe je přesně definována a neponechává žádný prostor pro nepřesné vyjadřování. Zvládnutím těchto jazyků se tak otevírá cesta k používání široké škály řídicích systémů, které jsou na tomto standardu založeny.
Programovací jazyky se dělí do dvou základních kategorií:

 

Textové jazyky

IL – Instruction List – jazyk seznamu instrukcí
Textový jazyk nejvíce připomínající assembler

ST – Structured Text – jazyk strukturovaného textu
Je velmi výkonný vyšší programovací jazyk, který má kořeny ve známých jazycích Pascal a C. Obsahuje všechny podstatné prvky moderního programovacího jazyka, včetně větvení (IF-THEN-ELSE a CASE OF) a iterační smyčky (FOR, WHILE a REPEAT). Tyto prvky mohou být vnořovány. Tento jazyk je vynikajícím nástrojem pro definování komplexních funkčních bloků, které pak mohou být použity v jakémkoliv jiném programovacím jazyku.

 

Grafické jazyky

LD – Ladder Diagram – jazyk příčkového diagramu (jazyk kontaktních schémat).
Má původ v USA. Je založen na grafické reprezentaci reléové logiky.

FBD – Function Block Diagram – jazyk funkčního blokového schématu
je velmi blízký procesnímu průmyslu. Vyjadřuje chování funkcí, funkčních bloků a programů jako soubor vzájemně provázaných grafických bloků, podobně jako v elektronických obvodových diagramech. Je to určitý systém prvků, které zpracovávají signály.

SFC – Sequential Function Chart – jazyk sekvenčních diagramů podobný Petriho sítím. Algoritmus je tvořen posloupností kroků (Steps), oddělených přechodovými podmínkami (Transitions). Ke krokům mohou být připojeny akce (Actions).

Pokračování
Další kapitola tutoriálu se bude věnována popisu základních bloků programu (funkcím, funkčním blokům a programům), jejich struktuře, deklaraci proměnných a datových typů.

Dotazy k této kapitole pište do formuláře v úvodu tutoriálu.