====== 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 [[:cs:mervis-ide:35-help:015-plc:065-plc_prog_map|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 {{:cs:mervis-ide:35-help:prog.png}}