základní stavební prvky programu
tutoriál
Tutoriál programování PLC systémů
Základní stavební bloky programu
Základním pojmem při programování podle normy IEC 61 131-3 je termín Programová Organizační Jednotka nebo zkráceně POU (Program Organisation Unit). Jak vyplývá z názvu, POU je nejmenší nezávislá část uživatelského programu. POU mohou být dodávány od výrobce řídícího systému nebo je může napsat uživatel. Každá POU může volat další POU a při tomto volání může volitelně předávat volané POU jeden nebo více parametrů.
Existují tři základní typy POU :
funkce (function, FUN)
funkční blok (function block, FB)
program (program, PROG)
Funkce
Je nejjednodušší POU, její hlavní charakteristikou je to, že pokud je volána se stejnými vstupními parametry, musí produkovat stejný výsledek (funkční hodnotu). Funkce může vracet pouze jeden výsledek.
Funkční blok
Dalším typem POU je funkční blok, který si na rozdíl od funkce, může pamatovat některé hodnoty z předchozího volání (např. stavové informace). Ty pak mohou ovlivňovat výsledek. Hlavním rozdílem mezi funkcí a funkčním blokem je tedy schopnost funkčního bloku vlastnit paměť pro zapamatování hodnot některých proměnných. Tuto schopnost funkce nemají a jejich výsledek je tedy jednoznačně určen vstupními parametry při volání funkce. Funkční blok může také (na rozdíl od funkce) vracet více než jeden výsledek.
Program
Posledním typem POU je program, který představuje vrcholovou programovou jednotku v uživatelském programu. Centrální jednotka PLC může zpracovávat více programů a programovací jazyk ST obsahuje prostředky pro definice spouštění programů (v jaké periodě vykonávat program, s jakou prioritou, apod.).
Struktura POU
Každá POU se skládá ze dvou základních částí : deklarační a výkonné. V deklarační části POU se definují proměnné potřebné pro činnost POU. Výkonná část pak obsahuje vlastní příkazy pro realizaci požadovaného algoritmu.
Příklad struktury POU typu PROGRAM vidíme obrázku. Definice POU začíná klíčovým slovem PROGRAM a je ukončena klíčovým slovem END_PROGRAM. Tato klíčová slova vymezují rozsah POU.
Za klíčovým slovem PROGRAM je uvedeno jméno POU. Poté následuje deklarační část POU. Ta obsahuje definice proměnných uvedené mezi klíčovými slovy VAR_INPUT a END_VAR resp. VAR a END_VAR.
Na závěr je uvedena výkonná část POU obsahující příkazy jazyka ST pro zpracování proměnných. Texty uvedené mezi znaky (* a *) jsou poznámky (komentáře).
Deklarační část POU
Deklarační část POU obsahuje definice proměnných potřebných pro činnost POU.
Proměnné jsou používány pro ukládání a zpracování informací. Každá proměnná je definována
jménem proměnné a datovým typem. Datový typ určuje velikost proměnné v paměti a zároveň do značné míry určuje způsob zpracování proměnné. Pro definice proměnných jsou k dispozici standardní datové typy (BOOL, BYTE, INT, …). Použití těchto typů závisí na tom, jaká informace bude v proměnné uložena (např. typ BOOL pro informace typu ANO-NE, typ INT pro uložení celých čísel se znaménkem apod.). Uživatel má samozřejmě možnost definovat svoje vlastní datové typy.
Umístění proměnných v paměti PLC systému zajišťuje automaticky programovací prostředí. Pokud je to potřeba, může umístění proměnné v paměti definovat i uživatel.
Datové typy
Pro programování v některém z jazyků podle normy IEC 61 131-3 jsou definovány datové typy:
elementární, předdefinované, (Elementary data types)
rodové datové typy (Generic data type) pro příbuzné skupiny datových typů.
odvozené (uživatelské) datové typy (Derived data type, Type definition).
Elementární datové typy
Elementární datové typy jsou charakterizované šířkou dat (počtem bitů) a případně i rozsahem hodnot.
Inicializace elementárních datových typů
Důležitým principem při programování podle normy IEC 61 131-3 je, že všechny proměnné v programu mají inicializační (počáteční) hodnotu. Pokud uživatel neuvede jinak, bude proměnná inicializována implicitní (předdefinovanou, default) hodnotou podle použitého datového typu. Předdefinované počáteční hodnoty pro elementární datové typy jsou převážně nuly, u data je to D#1970-01-01.
Přehled podporovaných datových typů je uveden v tabulce.
Výkonná část POU
Výkonná část POU následuje za částí deklarační a obsahuje příkazy a instrukce, které jsou zpracovány centrální jednotkou PLC. Ve výjimečných případech nemusí definice POU obsahovat žádnou deklarační část a potom je výkonná část uvedena bezprostředně za definicí začátku POU.
Příkladem může být POU, která pracuje pouze s globálními proměnnými, což sice není ideální řešení, ale může existovat.
Výkonná část POU může obsahovat volání dalších POU. Při volání mohou být předávány parametry pro volané funkce resp. funkční bloky.