Dokumentace

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