Strukturování podle IEC 61131-3: 7 kroků k úspěchu

Obrázek 1: Příklad fermentačního procesu a jeho řídicího systému. Všechny obrázky poskytla společnost PLCopen Obrázek 1: Příklad fermentačního procesu a jeho řídicího systému. Všechny obrázky poskytla společnost PLCopen

Norma IEC 61131-3 obsahuje výkonné nástroje pro strukturování a může uživatelům poskytnout vynikající způsob, jak rozdělit řídicí systém na zvládnutelné jednotky pro zvýšení celkové efektivity.

Norma IEC 61131-3 Programovatelné řídicí jednotky, část 3 Programovací jazyky od Mezinárodní elektrotechnické komise (IEC) obsahuje výkonné strukturovací nástroje, které jsou nezbytné pro moderní prostředí pro vývoj softwaru. Základními součástmi jsou sekvenční funkční a diagramy (SFC) a uživatelské funkční bloky. Obojí představuje vynikající způsob, jak rozložit řídicí systém na zvládnutelné jednotky.

Tyto jednotky jsou snadněji použitelné a srozumitelné pro různé osoby s různým vzděláním. Tento přístup poskytuje chybějící spojení mezi systémovými inženýry, vývojáři softwaru a pracovníky instalace a údržby. Kromě toho poskytuje nástroj pro reprezentaci a komunikaci těchto různých skupin.

Tímto způsobem mohou víceoborové týmy spolupracovat na rozsáhlejších aplikačních programech, vytvářet srozumitelnější a opakovaně použitelný kód a zajistit oddělení různých úrovní programátorů, pracovníků instalace a údržby a uživatelů.

Rovněž lze řešit v již rané fázi vývoje softwaru část detekce a zpracování chyb. Vytváření těchto úseků během instalace – nebo dokonce během provozu – je příliš nákladné jak pro dodavatele (podpora), tak pro uživatele (prostoje).

Poskytnutí struktury pro programování řídicích systémů

Výhody strukturování kódu řídicího systému jsou široké a zahrnují:

  • Lepší přehled o systému, který je důležitý nejen pro původní programátory, ale také pro pracovníky provádějící instalaci a údržbu;
  • Lepší základ pro interní komunikaci v rámci multidisciplinárního vývojového týmu;
  • Jasné oddělení různých odpovědností;
  • Lepší zaměření na skutečný problém a možná řešení;
  • Základ pro opakovaně použitelný software.

Strukturování se provádí rozdělením problému na menší části, které lze dále dělit. To má své meze: není praktické pokračovat v nekonečně jemném dělení, protože se zvyšuje náročnost integrace těchto částí.

Použití modulárních bloků je spojeno s pěti zásadami:

  1. Programovací jazyk by měl podporovat modulární jednotky.
  2. Jednotky by měly být složeny takovým způsobem a v takovém počtu, aby měly málo rozhraní a málo interakcí.
  3. Rozhraní by měla být malá a vyžadovat jen malou výměnu dat.
  4. Interakce modulů vyžadují explicitní definici, aby se zvýšila jejich opakovaná použitelnost.
  5. Moduly by měly zajistit zapouzdření dat: data aplikace jsou rozdělena na oddíly a každý oddíl by měl být přístupný pouze vhodnou sadou funkcí, které jej skryjí před nežádoucím použitím.

Sedm kroků k úspěchu při strukturování programovacího softwaru

Následujících 7 kroků představuje cestu k úspěchu při strukturování softwaru pro programování řídicích systémů:

  1. Identifikace vnějších rozhraní řídicího systému.
  2. Definice hlavních signálů vyměňovaných mezi řídicím systémem a zbytkem závodu.
  3. Definice všech interakcí s obsluhou, potlačení a dohledových dat.
  4. Analýza problému řízení rozděleného z nejvyšší úrovně na logické oddíly.
  5. Definice požadovaných funkčních bloků.
  6. Definice požadavků na dobu cyklu skenování pro různé části aplikace.
  7. Konfigurace systému definováním zdrojů, propojením programů s fyzickými vstupy a výstupy a přiřazením programů a funkčních bloků k úlohám.

IEC 61131-3 poskytuje vhodné prostředí pro podporu těchto kroků. Vezměme si tento příklad fermentačního procesu a jeho řídicího systému. Níže je uveden nákres celého systému (obrázek 1). Mělo by se na něj pohlížet jako na provozní systém.

Fermentační proces se skládá z velké nádoby, kterou lze naplnit (přívodní ventil) kapalinou, lze ji ohřívat pomocí topného pásu (chlazení konvekcí), lze ji míchat pomocí motoru a lze do ní přidávat kyselinu a alkalickou kapalinu. Po uplynutí doby procesu se pomocí sběrného ventilu dostaneme k výsledku.

Chcete-li vytvořit řídicí program pro tento příklad, projděte všech sedm kroků, jak je definováno výše:

  1. Identifikace vnějších rozhraní řídicího systému
  • Zpětná vazba ze snímače teploty
  • Zpětná vazba ze senzoru pH
  • Zpětná vazba z poloh ventilů
  • Zpětná vazba od motoru (otáčky)
  • Výstup na ventily
  • Výstup na motor
  • Výstup do topného pásu. 
  1. Definice hlavních signálů vyměňovaných mezi řídicím systémem a zbytkem závodu.

V tomto příkladu neexistuje žádné spojení se zbytkem závodu, což není příliš reálné. Například je třeba propojení s nádobou, ze které se kapaliny nalévají, a propojení se systémem pro sběr, jako je přepravní systém pro nádoby nebo lahve. Mohlo by také dojít k propojení se systémem plánování podnikových zdrojů (ERP).

  1. Definice všech interakcí s obsluhou, potlačení a dohledových dat.

Pro operátora definujeme jako vstup do systému tlačítka „Start“, „Stop“ a „Duration“ (doba trvání). 

  1. Analýza problému řízení rozděleného z nejvyšší úrovně na logické oddíly

Tento proces má pět hlavních funkcí:

  1. Hlavní sekvence, například kroky procesu nejvyšší úrovně – plnění, ohřev, míchání, fermentace, sběr, čištění;
  2. Ovládání ventilů, například ovládání ventilů používaných k plnění a vyprazdňování nádoby;
  3. Regulace teploty pro sledování teploty nádoby; modulace ohřívače;
  4. Řízení míchadla pro motor míchadla aktivovaný podle požadavků hlavní technologické sekvence;
  5. Kontrola pH pro sledování kyselosti fermentačního obsahu a přidávání kyselých nebo zásaditých činidel podle potřeby. 
  1. Definice požadovaných funkčních bloků

Na základě výše uvedených definic a přidáním (vysokoúrovňových) funkčních bloků je můžeme znázornit v programovacím jazyce diagramem funkčních bloků. Přehled programu řízení fermentace by mohl vypadat takto (obrázek 2).

CTL2107 MAG2 F1 PLC programming PLCOpen Fig2 DiagramObrázek 2: Čtěte zleva doprava. Na tomto funkčním blokovém schématu jsou vlevo vstupy a vpravo výstupy

Hlavní sekvence funkčního bloku je propojena se vstupy operátora. Je podporován ostatními bloky pro řízení, které jsou propojeny s příslušnými vstupy a výstupy. Tyto další bloky mohou být bloky dodávané dodavateli, jako je blok pro regulaci teploty, který používá regulační smyčku PID. Tyto bloky si můžete vytvořit i sami. To je například případ bloku hlavní sekvence. Při bližším pohledu na tento blok bychom mohli jeho sekvenci s SFC strukturovat následovně (obrázek 3):

CTL2107 MAG2 F1 PLC programming PLCOpen Fig3 SFCObrázek 3: Sekvenční funkční diagramy (SFC) poskytují prostředky pro rozdělení programu programovatelného automatu na sadu kroků a přechodů propojených směrovanými vazbam

SFC poskytuje prostředky pro rozdělení programu programovatelného automatu na sadu kroků a přechodů propojených směrovanými vazbami. Ke každému kroku je přiřazena sada akcí a ke každému přechodu je přiřazena podmínka přechodu.

Začneme odshora inicializací: protože při prvním zapnutí neznáme stav systému, musíme zkontrolovat polohu ventilů atd. Poté začneme plnit, dokud není dosaženo správné výšky hladiny. Další fází je zahřívání až do zahájení procesu fermentace. Když se tak stane, přejdeme k další fázi: k vlastní kontrole procesu fermentace. Po dokončení sbíráme, poté čistíme a jsme připraveni znovu začít odshora.

Tato dekompozice dává všem zúčastněným jasný přehled o tom, o jaké sekvence se jedná, a poskytuje další modularizaci do funkčních bloků, které lze programovat v kterémkoli ze čtyř jazyků.

Nyní je třeba programovat na úrovni akčních bloků. Ty by mohly být rozděleny mezi různé lidi s různým zázemím. Za tímto účelem IEC definovala 2 grafické a 2 textové programovací jazyky, kterými jsou seznam instrukcí, strukturovaný text, liniová schémata a funkční blokové schéma, které nejlépe vyhovují potřebám a danému problému. V případě potřeby lze také provést další rozklad akčních bloků pomocí SFC.

  1. Definice požadavků na dobu cyklu skenování pro různé části aplikace

V tomto příkladu máme v zásadě pouze jeden cyklus, který můžeme spustit v nepřetržitém režimu.  Případně bychom jej mohli nechat spouštět na časové bázi, například každých 20 ms. Zbývající čas lze využít pro další sekvence, například pro kontrolu nebo řízení přepravního / stáčecího systému během sklizně nebo pro kontrolu všech druhů mezních a/nebo chybových stavů.

  1. Konfigurace systému definováním zdrojů, propojením programů s fyzickými vstupy a výstupy a přiřazením programů a funkčních bloků k úlohám

Tato fáze je věnována příslušnému systému. Zahrnuje fyzické mapování symbolů na adresy I/O. Použitím symbolické reprezentace se dosáhne mnohem větší nezávislosti na hardwaru. To platí zejména pro vytváření funkčních bloků, které by měly být hardwarově nezávislé. Jasným určením místa, kde je fyzické mapování provedeno, je mnohem snazší předělávání kabeláže v provozu. Například výměna zapojení dvou digitálních vstupů znamená, že v rámci fyzického mapování je třeba změnit pouze dva řádky, zbytek programu zůstává v platnosti a není třeba jej měnit.

Prostředky jsou zde mapovány, což znamená definovat, která část běží na kterém procesoru v systému. Norma IEC 61131-3 podporuje víceprocesorová prostředí, i když většina skutečných systémů stále používá pro programy jeden procesor.

Uživatel musí také namapovat úlohy na cykly skenování a události, jak je definováno v kroku 6. Tímto způsobem lze mít v jednom systému více programů, například zde popsaný proces fermentace, podpořený celkovými kontrolami a řízením podpůrných prostředí, jako je stáčení nebo předchozí úrovně dodavatelského řetězce.

Programovací norma IEC 61131-3 poskytuje výkonný nástroj pro více úrovní uživatelů a použití. Použití SFC na vysoké úrovni poskytuje vynikající přehled o vyvíjeném systému, což vede k vyšší čitelnosti a přehlednosti. Poskytuje vodítko k modularizaci daného problému řízení. Kromě toho poskytuje základ pro oddělení různých vývojových úkolů a zaměřuje pozornost na vytváření opakovaně použitelného softwarového kódu na úrovni vlastního kódování.

Autorem článku je Eelco van der Wal, generální ředitel společnosti PLCopen, obsahového partnera vydavatelství CFE Media. Upravil Chris Vavra, ředitel pro webový obsah časopisu Control Engineering, CFE Media and Technology, Tato e-mailová adresa je chráněna před spamboty. Pro její zobrazení musíte mít povolen Javascript..

Control Engineering Česko

Control Engineering Česko je přední časopis o průmyslové automatizaci. Je vydáván v licenci amerického Control Engineering, které poskytuje novinky z této oblasti více než 60 let.

www.controlengcesko.com