Print

Objektově orientované programování PLC

-- 24.05.17

U objektově orientovaného programování (OOP) jde zejména o organizování a zjednodušení prvků programu optimálním způsobem díky použití objektů, metod a vlastností. 

Nejnovější verze normy IEC-61131-3 zahrnuje jazyk objektově orientovaného programování (OOP). Ačkoli se OOP často spojuje se složitě znějící terminologií, jde zejména o organizování a zjednodušení. Organizování se týká způsobu, jakým jsou prvky programu seskupeny, a využívání mechanismů seskupování. Dobře organizované programy jsou intuitivnější a snáze se s nimi pracuje. Funkce OOP jsou navrženy tak, aby podporovaly a usnadňovaly zdravé organizační projekty. Zjednodušování se týká zjednodušeného rozhraní, které je prezentováno vnějšímu světu. Pod tímto povrchem jsou složité detaily v rámci objektu samotného udržovány uvnitř programu. 

Co jsou to objekty?

Objekt v sobě kombinuje související funkce a data, na jejichž základě fungují, do jedné entity, která modeluje stav a chování skutečných zařízení, procesů a jiných konstruktů. V normě IEC 61131-3 jsou objekty implementovány jako funkční bloky s určitými dalšími schopnostmi. Funkční bloky mohou definovat metody a vlastnosti, které umožní další rozdělení kódu a rozšíření rozhraní. Metody a vlastnosti lze implementovat s použitím kteréhokoli z jazyků normy IEC-61131-3.  Výběr jazyka je dán individuální metodou nebo základnou vlastností, což usnadňuje použít nejvhodnější jazyk v závislosti na okolnostech. 

Vzorový projekt obsahuje funkční blok, jenž implementuje jednoduché přírůstkové/úbytkové počítadlo a je definován tak, jak je uvedeno na obrázku č. 1. Pojem „třída“, používaný v jiných jazycích OOP, je synonymem „funkčního bloku“. Oba pojmy odkazují na definice, jejichž instance se musejí před použitím vytvořit. Instance tříd nebo funkčních bloků se označují jako „objekty“. 

Definování metod

Metody jsou funkce, které mají přístup k interním datům a parametrům definujícího funkčního bloku. Mohou mít rovněž vstupní/výstupní parametry a vracet hodnoty, stejně jako běžné funkce. 

Metoda může být definována s použitím reléových liniových schémat jakožto implementačního jazyka. Když je vstupním parametrem pravda, počítadlo přičte hodnotu, dokud nedosáhne maximální hodnoty. Proměnné PMaxCount a Count jsou definovány v hlavním těle funkčního bloku. Protože metody mají přístup k datům a parametrům funkčního bloku, PMaxCount a Count lze použít zevnitř metody.  Vrácená hodnota je zapsána do CountUp, což je název metody samotné. 

Proměnná NotMax je definována uvnitř metody a alokována v zásobníku volání metody. To znamená, že hodnota z předchozího spuštění není zachována. Proměnné definované v těle funkčního bloku jsou alokovány v paměti a zachovávají si své hodnoty mezi jednotlivými spuštěními. 

Je definována i druhá metoda, která snižuje hodnotu počítadla, například když je implementačním jazykem strukturovaný text. Když je vstupním parametrem pravda, počítadlo přičte hodnotu, dokud nedosáhne maximální hodnoty. Proměnná Count je výstupním parametrem funkčního bloku a vrácená hodnota je zapsána do proměnné CountDn, tj. do názvu metody. Tato metoda poskytuje snadný a pohodlný způsob organizování programu do menších kousků, s nimiž se lépe pracuje. Je rovněž navržena tak, aby bylo snadné kombinovat různé jazyky. 

Je velmi jednoduché vyvolat tyto metody z těla funkčního bloku, jak ukazuje obrázek číslo 2. Protože tyto metody jsou definovány s použitím klíčového slova „PRIVATE“, lze je vyvolat pouze zevnitř funkčního bloku samotného. Metody definované s použitím klíčového slova „PUBLIC“ lze vyvolat i zvenčí. 

Definování vlastností

Vlastnosti jsou funkce, které se chovají jako proměnné, a lze je použít ve výrazech stejně, jako se používají proměnné. Vlastnost není vázaná na umístění v paměti, ale na své funkce get() a set(). Když jsou z vlastnosti čtena data, spustí se její funkce get(). Když jsou do vlastnosti zapisována data, spustí se její funkce set(), jak ukazuje níže uvedený příklad: 

Klíčová slova „PUBLIC“ a „PRIVATE“ lze rovněž použít k řízení, jak může být přistupováno k vlastnostem. „PRIVATE“ znamená, že vlastnost lze používat pouze interně uvnitř definujícího funkčního bloku. „PUBLIC“ znamená, že vlastnost lze používat externě. Nicméně klíčová slova „PUBLIC“ a „PRIVATE“ lze rovněž použít z definicí funkce get() a set(). To umožňuje, aby byly vlastnosti čitelné externě a zapisovatelné interně. 

Vlastnosti ve své nejzákladnější formě čtou a zapisují data do/z interních proměnných. Jejich další schopnosti lze použít pro validaci datových hodnot nebo pro provádění jiných operací. Například vlastnost MaxCount lze přidat do programu. To umožňuje nastavit maximální počet na určitou hodnotu a číst jeho aktuální hodnotu. Data jsou přenášena do/z funkcí set() a get() prostřednictvím názvu vlastnosti MaxCount, jako by to byla proměnná.  Funkce get() vrací hodnotu proměnné funkčního bloku PMaxCount. Funkce set() validuje vstupní hodnotu zajištěním, že jde o kladné číslo, předtím než výsledek zapíše do proměnné PMaxCount. 

V další části příkladu je na obrázku č. 3 do projektu pomocí jazyka reléových liniových schémat přidána vlastnost Reset. Vlastnost resetování nemá základní proměnnou, která by byla čtena a zapisována.  Když je zapsána hodnota TRUE, provede se operace resetování.  Když je čtena vlastnost, vyhodnotí se výraz a vrátí se výsledek. 

Stojí za povšimnutí, jak se v projektovém stromu odráží struktura a organizace projektu. Každý program, funkční blok, metoda a vlastnost v projektu jsou reprezentovány uzlem. Dvojitým kliknutím se uzel otevře jako záložka v dokumentové stránce hlavního okna. Záložky lze odpojit a zobrazit jako samostatná okna. Funkce get() a set() jsou odpojeny, takže lze obě zobrazit společně s definicí vlastnosti. 

Optimalizujte prvky programu pomocí OOP

OOP je mnohem komplexnější oblast, ale hlavním rysem zůstává základní cíl organizovat prvky programu optimálním způsobem.  Objekty, metody a vlastnosti jsou primárními prostředky k dosažení tohoto cíle, a proto je nezbytné těmto konceptům porozumět a zvládnout je. 

Začněte malými kroky organizaci v běžných programech. Objektové koncepce mohou přijít na řadu později.  Zvládnutí používání těchto technik vám usnadní představit si všechny další možnosti. Není důvod, proč to nezkusit. 

Richard Jafrate je zakladatel společnosti Mitek Automation. Upravil Chris Vavra, redaktor časopisu Control Engineering, CFE Media, cvavra@cfemedia.com.


Sponzorované odkazy

 
Aktuální vydání
Reklama

Navštivte rovněž

  •   Události  
  •   Katalog  

Události

Malá automatizace v čele s rebelem Modicon M221
2018-01-17 - 2018-01-17
Místo: webinář
Infotherma 2018
2018-01-22 - 2018-01-25
Místo: Černá louka 3235, Pavilon A, Ostrava
Diago 2018
2018-01-30 - 2018-01-31
Místo: Orea Resort Devět Skal ***, Sněžné - Milovy
Trendy v robotizaci a automatizaci
2018-01-31 - 2018-02-01
Místo: Brno, hotel Avanti
Řízení závislých pohybů aneb Motion Control umí
2018-02-14 - 2018-02-14
Místo: webinář

Katalog

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

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

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

Mitsubishi Electric Europe B.V.
Mitsubishi Electric Europe B.V.
Pekařská 621/7
155 00 Praha 5
tel. +420 251 551 470

všechny firmy
Reklama


Tematické newslettery




Anketa


Ano, proto se je snažíme minimalizovat
Ne, jsou na odpovídající úrovni
Nejsou vysoké, ale rychle rostou

O nás   |   Reklama   |   Mapa stránek   |   Kontakt   |   Užitečné odkazy   |   Bezplatné zasílání   |   RSS   |   
Copyright © 2007-2017 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