Print

Zdokonalte programování PLC a DCS pomocí mentálního modelu

-- 17.03.15

Vypracujte mentální model k programování pro reálný čas, které se liší od vývoje webu nebo tradičního programování. Zajistěte, aby programy pro programovatelné automaty (PLC) reálného času a distribuované řídicí systémy (DSC) reálného času byly na bázi modelů funkčního programování, zapouzdřování, hierarchického rozkladu a Petriho sítí. Neakceptujte nestrukturovaný nebo ledabyle navržený kód PLC a DCS. Počáteční náklady sice mohou být nízké, avšak náklady po dobu životního cyklu by byly vysoké.

Následující doporučení využijte pro zdokonalení programování programovatelného automatu (PLC) a distribuovaného řídicího systému (DCS). Programování pro řídicí systémy reálného času je také programováním, nicméně využívá jazyky a modely, jež se v kurzech programování běžně nevyučují a nemají mnoho společného s moderními programovacími jazyky, jako jsou C#, Java, PHP, Perl a Python. Při psaní řídicích programů se technici a programátoři obvykle musejí znovu naučit, jak přistupovat k řešení problémů s použitím jazyků IEC 61131-3 při práci na automatech PLC. Nejnovější vydání standardu IEC 61131-3, verze 3.0 z února 2013, definuje čtyři řídicí jazyky a jeden strukturovací prvek. Řídicími jazyky jsou liniová schémata (Ladder Diagrams – LD), funkční bloky (Function Blocks – FB), seznam instrukcí (Instruction List) a strukturovaný text (Structured Text – ST). Strukturovacími prvky jsou sekvenční funkční diagramy (Sequential Function Charts – SFC). Seznam instrukcí a strukturovaný text by měly být programátorům povědomé, nicméně funkční bloky, liniová schémata a sekvenční funkční diagramy se od moderních programovacích jazyků značně liší.

Metody běžně využívané při navrhování a vývoji obchodního a spotřebitelského softwaru se obtížně přenášejí do programovacího prostředí pro reálný čas automatů PLC a systémů DCS. Ale nevěšte hlavu, existují programovací modely, které lze pro programování automatů PLC a systémů DCS reálného času použít.

K těmto modelům patří hierarchický rozklad problémů, Petriho sítě (typu P/T), skrývání informací v zapouzdřených prvcích a metody funkčního programování. Žádný z těchto modelů není nový, Petriho sítě se datují ještě do doby před vznikem počítačů a byly původně vyvinuty pro popisování chemických procesů.

Funkční programování je programovacím modelem používaným v jazycích LISP, AWK a XSLT. Nejčastěji se dnes využívá v jazyce XSLT (Extensible Stylesheet Language Transformations) pro vytváření webových stránek a převod dat na tisknutelný nebo zobrazitelný formát. Funkční jazyky jsou organizovány podle pravidel, a nikoli procedurálním řízením. Funkční program je tvořen sadou pravidel a souvisejícím kódem. Pravidla jsou vyhodnocována pro každý vstup. Obvykle jde o booleovský nebo regulární výraz vyhodnocovaný jako PRAVDA nebo NEPRAVDA. V jazyce XSLT jsou pravidla vyhodnocována pro každý prvek v dokumentu XML. Je-li pravidlo vyhodnoceno jako PRAVDA, provede se související kód. Po provedení pravidla se zbytek pravidel přeskočí a program se opakuje pro další vstup.

Liniová schémata

Liniová schémata lze modelovat jako formu funkčního programování. Liniová schémata byla původně vyvinuta k reprezentaci relé a přepínačů ve formátu svislého sloupce. Každá síť propojených relé a přepínačů připomínala příčku v žebříku. Pojem „příčka“ popisuje každou síť. Jestliže považujete příčku za sadu pravidel ve funkčním programu, pak lze programování liniových schémat nahlížet jako formu funkčního programování s jedním specifickým rozdílem: Každé pravidlo se vyhodnocuje pokaždé, neexistuje-li skok pro přeskočení pravidla. Díváte-li se na program liniových schémat jako na soubor pravidel a souvisejícího kódu, pak můžete na problém aplikovat mentální model funkčního programování.

Považujte každou příčku žebříku za specifikování vyhodnocovacího pravidla. Jestliže je vyhodnocena jako PRAVDA, proveďte následující související kód. V opačném případě skočte na následující příčku s pravidlem. V rámci souvisejícího kódu pravidla lze přidat logiku potřebnou pro provedení řízení na bázi stavu, a to bez obav o vedlejší efekty z jiných částí programu. Programování funkčních bloků je stejné jako programování liniových schémat, pouze je rozloženo horizontálně, s metodou pro popisování sekvence provedení sítě/příčky.

Dalšími dvěma programovacími modely jsou hierarchický rozklad a skrývání informací pomocí zapouzdřených prvků, které představují fundamentální model pro objektově orientované programování (Object Oriented Programming – OOP). Model OOP využívá rozklad velkých problémů na malé kousky. Každý kousek zapouzdřuje svou lokální informaci a algoritmy. Objekt navenek ukazuje pouze příkazy a data a skrývá, jak provádí svou hlavní funkci. Objekt může rovněž obsahovat menší objekty vykonávající podmnožiny hlavního úkolu. Problém je rozložen na hierarchii zapouzdřených objektů.

Jazyková nezávislost

Řídicí programy mohou následovat tento model, protože model je jazykově nezávislý. Nejmenší prvky, zpravidla označované jako řídicí moduly, zapouzdřují přístup do I/O systému a obvykle řídí jedno fyzické zařízení (motor, ventil nebo čerpadlo). Každý řídicí modul implementuje relativně jednoduchý řídicí algoritmus a spouštěčem k provedení algoritmu je výše popsané pravidlo funkčního programu. Algoritmus řídicího modulu pak lze programovat v jazyce LD, FB, IL nebo ST. Sada instrukcí (IL), určitá forma assembleru, je podobná jako u běžného programování. Strukturovaný text (ST) je vyšším programovacím jazykem, podobným jako Pascal nebo C. K programování jazyků IL nebo ST nejsou zapotřebí žádné nové mentální modely pro navrhování.

Objekty vyšší úrovně pak mohou zadávat příkazy objektům řídicího modulu pomocí procedur (sekvenční nebo paralelní sady akcí). Zatímco programovat procedury pomocí programování LD nebo FB je obtížné, snadno se programují pomocí SFC. Sekvenční funkční diagramy (SFC) jsou formou Petriho sítí, jež jsou grafickým znázorněním odstupňovaných procesů a poskytují schopnosti volby, iterace a souběžného provádění. SFC můžete považovat za proveditelné vývojové diagramy dovolující paralelní větve. Každý krok v SFC obsahuje soubor příkazů, které mohou spustit jiné SFC (rozklad) nebo zaslat příkazy do řídicích modulů (zapouzdření). Objekty vyšší úrovně obvykle reprezentují stroje nebo jednotky složené z více zařízení (řídicí moduly) a procedury používané pro jejich řízení.

Vyhněte se nedbalému provedení programu

Vypracování mentálního modelu pro řešení programování pro reálný čas je obtížné, jestliže vaší jedinou dosavadní zkušeností bylo psaní webu nebo tradiční programování. Programy pro reálný čas můžete založit na dobře známých a chápaných modelech funkčního programování, zapouzdřování, hierarchického rozkladu a Petriho sítí. Do našeho prostředí přicházejí noví technici a programátoři. Povzbuďte je, aby přistupovali k řídicím problémům s použitím těchto dobře vyvinutých struktur a během času snižovali náklady. Neakceptujte nestrukturovaný nebo ledabyle navržený kód jen proto, že se programovací jazyky liší od moderních programovacích jazyků. ce

Dennis Brandl je prezident společnosti BR&L Consulting se sídlem v Cary v Severní Karolíně. Tato společnost je zaměřena na informační technologie ve výrobě. Upravil Mark T. Hoske, obsahový ředitel časopisu Control Engineering, mhoske@cfemedia.com.

Autor: Dennis Brandl, BR&L Consulting


Sponzorované odkazy

 
Aktuální vydání
Reklama

Navštivte rovněž

  •   Události  
  •   Katalog  

Události

Trendy v robotizaci 2020
2020-01-28 - 2020-01-30
Místo: Best Western Premier / Avanti, Brno
DIAGO 2020
2020-01-28 - 2020-01-29
Místo: Orea Resort Devět Skal ***, Sněžné - Milovy
Trendy automobilové logistiky 2020
2020-02-20 - 2020-02-20
Místo: Parkhotel Plzeň
Úspory v průmyslu
2020-03-03 - 2020-03-03
Místo: Ostrava
AMPER TOUR 2020
2020-03-17 - 2020-03-19
Místo: Brno

Katalog

BALLUFF CZ s.r.o.
BALLUFF CZ s.r.o.
Pelušková 1400
19800 Praha
tel. 724697790

EWWH, s. r. o.
EWWH, s. r. o.
Hornoměcholupská 68
102 00 Praha 10
tel. 734 823 339

B+R automatizace, spol. s r.o.
B+R automatizace, spol. s r.o.
Stránského 39
616 00 Brno
tel. +420 541 4203 -11

Schneider Electric CZ, s. r. o.
Schneider Electric CZ, s. r. o.
U Trezorky 921/2
158 00 Praha 5
tel. 00420737266673

COGNEX
COGNEX
Emmy-Noether-Str. 11
76131 Karlsruhe
tel. 720 981 181

všechny firmy
Reklama


Tematické newslettery




Anketa


Na internetu
V tištěných médiích
Na veletrzích a výstavách
Jinde

O nás   |   Reklama   |   Mapa stránek   |   Kontakt   |   Užitečné odkazy   |   Bezplatné zasílání   |   RSS   |   
Copyright © 2007-2019 Trade Media International s. r. o.
Navštivte naše další stránky
Trade Media International s. r. o. Trade Media International s. r. o. - Remote Marketing Továrna - vše o průmyslu Control Engineering Česko Řízení a údržba průmyslového podniku Inteligentní budovy Almanach produkce – katalog firem a produktů pro průmysl Konference TMI