Struktura PLC programu podle IEC 61131-3 je rozhodující, ne programovací jazyk

IEC 61131-3 patří mezi normy, které jsou v průmyslové automatizaci vnímány jako samozřejmost. Projektanti se na ni odkazují, systémoví integrátoři ji uvádějí v dokumentaci a zákazníci předpokládají, že pokud je systém „v souladu s normou“, bude automaticky správný a snadno udržovatelný. V praxi to však velmi často neplatí. Norma uspořádává formální zápis PLC programu, ale nechrání před chybami architektury. A právě architektura kódu rozhoduje o tom, zda je systém po uvedení do provozu dlouhodobě udržitelný.

Co norma IEC 61131-3 skutečně upravuje?

IEC 61131-3 definuje formální programovací model pro PLC. Určuje, co je zdroj (resource), úloha (task) a organizační jednotka programu (POU), a zavádí jednotné členění na Program, Function Block a Function. Zároveň standardizuje programovací jazyky a jejich sémantické chování. Díky tomu jsou projekty čitelné napříč různými platformami a inženýrskými prostředími a inženýři se nemusejí pokaždé učit zcela nový koncepční model.

Současně však norma nepředepisuje žádnou logickou strukturu programu. Neříká, jak rozdělovat odpovědnosti, kde ukládat stav procesu, jak organizovat zpracování chyb ani jak navrhovat sekvenční logiku. Umožňuje jak promyšlená řešení, tak i taková, která fungují pouze proto, že se jich zatím nikdo nedotkl. Z pohledu normy jsou obě varianty formálně správné.

Program, Function Block a Function v reálných projektech

Teoretické rozdělení POU zná každý automatizační inženýr, v praxi je však často nadužíváno nebo špatně aplikováno. Program se pak stává jedním velkým kontejnerem pro veškerou logiku, Function Blocky jsou používány jako procedurální makra a stav procesu je rozptýlen v globálních proměnných. Takové uspořádání obvykle funguje při uvedení do provozu, ale velmi rychle začne komplikovat úpravy i diagnostiku.

V projektech, které dobře obstojí v dlouhodobém provozu, představuje Function Block skutečnou reprezentaci objektu procesu. Ventil, pohon, osa nebo část sekvence má vlastní stav, vlastní přechodové podmínky a jasně definované rozhraní. Program přestává být místem detailní logiky a stává se koordinační vrstvou. Function zůstává nástrojem pro výpočty a jednoduché bezstavové operace. Toto rozdělení přímo nevyplývá z normy, ale bez něj PLC systém velmi rychle ztrácí přehlednost.

Programovací jazyk a problém údržby kódu

IEC 61131-3 umožňuje používat několik programovacích jazyků a jejich kombinaci v rámci jednoho projektu. V praxi však problémy jen zřídka vznikají kvůli tomu, zda byl použit LD, FBD nebo ST. Skutečné potíže nastávají tehdy, když neexistují jasná pravidla, kde a za jakým účelem se jednotlivé jazyky používají. Sekvenční logika zapsaná v ladderu, fragmenty algoritmů rozptýlené mezi různými POU a nekonzistentní názvosloví činí kód obtížně analyzovatelným.

Při poruše nebo během modernizace je pak nutné odhadovat záměr původního autora namísto technicky čisté analýzy. Norma taková řešení připouští, ale nechrání před jejich důsledky. To je další ukázka toho, že shoda s IEC 61131-3 není totožná s dobrou inženýrskou praxí.

Kde norma pomáhá a kde vytváří falešný pocit bezpečí

IEC 61131-3 je velmi užitečná jako společný základ průmyslové automatizace. Usnadňuje komunikaci mezi týmy, standardizuje základní pojmy a umožňuje číst cizí projekty bez neustálého domýšlení se autorových záměrů. V tomto ohledu plní svou roli velmi dobře.

Problém nastává ve chvíli, kdy je norma považována za záruku kvality projektu. Norma neposuzuje architekturu programu, nevynucuje omezení globálních proměnných ani nepředepisuje zásady zpracování chyb. Umožňuje projekty, které jsou formálně správné, ale v praxi generují vysoké náklady na údržbu. Bez doplňujících návrhových pravidel poskytuje norma pouze pocit „pořádku“, který po první větší úpravě systému rychle mizí.

Shrnutí

IEC 61131-3 je solidním základem pro programování PLC, ale není receptem na dobrý automatizační projekt. Norma definuje jazyk a formální model, zatímco o kvalitě systému rozhoduje struktura programu a způsob využití dostupných mechanismů. V průmyslové praxi je to právě architektura kódu, nikoli volba programovacího jazyka, která určuje, zda lze systém dlouhodobě bezpečně udržovat a rozvíjet. Pokud je struktura špatná, shoda s normou projekt nezachrání. Pokud je struktura dobrá, stává se norma pouze vhodně zvoleným nástrojem, nikoli zátěží.

0 komentáře
Nejstarší
Nejnovější