Program
Program představuje programovou jednotku nejvyšší úrovně v uživatelském programu. Regulátor (PLC) může zpracovávat více programů a vývojové prostředí obsahuje prostředky pro definici činnosti programů (v jaké periodě vykonávat program, s jakou prioritou apod.).
Program 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.
Deklarace programu
PROGRAM jmeno ... END_PROGRAM
Deklarace proměnných
Deklarační část programu obsahuje definice proměnných potřebných pro svoji činnost. 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á také 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.
Vstupní proměnné
VAR_INPUT ... END_VAR
Výstupní proměnné
VAR_OUTPUT ... END_VAR
Vstupně/výstupní proměnné
VAR_IN_OUT ... END_VAR
Statické proměnné
VAR ... END_VAR
Externí proměnné
VAR_EXTERNAL ... END_VAR
Inicializace proměnných
VAR I: INT := 1; END_VAR;
Definice proměnných „retain“
VAR RETAIN ... END_VAR
Výkonná část
Výkonná část programu následuje za částí deklarační a obsahuje příkazy a instrukce.
Příklad programu (TEST):
PROGRAM TEST //název progamu TEST VAR //statické deklarace (v tomto případu funkčního bloku) My_Room: Light_Room; END_VAR VAR_EXTERNAL //externí deklarace Actual_TOD:TOD; END_VAR (* Tělo programu *) IF (Actual_TOD >= TOD#20:15:00) OR (Actual_TOD <= TOD#6:00:00) THEN MyRoom.NightTime(); ELSE MyRoom.DayTime(); END_IF; END_PROGRAM