Aktuální vydání

celé číslo

08

2019

MSV 2019 v Brně

celé číslo

DisCO – jeden software, různý hardware

Automa 10/2000

Ing. Ladislav Reisner, Ing. Petr Štefka,
dataPartner spol. s r. o.

DisCO® – jeden software, různý hardware

Velkým cílem řady softwarových projektů je vytvořit takové dílo, které by svou architekturou dalo vzniknout dostatečně obecnému systému použitelnému pro řešení potřeb v různých typech aplikací. Cena za tuto obecnost je mnohdy zaplacena v podobě pracného aplikování na jedné straně anebo ve vzniku obsáhlého programového balíku na straně druhé. Vytváření konkrétní aplikace se tak v praxi pohybuje v mezích, kdy na jednom okraji je velmi flexibilní, ale pracné a později těžko rozšířitelné řešení a na druhém obsáhlé blokové řešení, mnohdy cenově nevýhodné. Důsledkem takového krajního řešení jsou zvýšené nároky na práci aplikátorů anebo zbytečné finanční zatížení koncového uživatele. Následující článek nabízí pověstnou střední cestu, tj. prostředky k tvorbě řídicích, automatizačních a vizualizačních aplikací, které nevyžadují od svých aplikátorů nadměrné množství času a nezatěžují uživatele zbytečnými náklady. Nabízí dostatečně obecný, otevřený, ale i sporý systém pro snadnou tvorbu malých autonomních i rozlehlých distribuovaných řídicích aplikací.

Obr. 1.

Trend vývoje vloženého hardwaru
Současný rozvoj v používání malých 32bitových počítačů na bázi procesorů Intel x86 jako vložených (embedded) počítačů do stanic dálkového řízení, na úrovni technologie (Remote Terminal Unit – RTU) nebo, chcete-li, rozhraní (frond-end stations), snižování cen a růst objemu výroby u zahraničních a nyní i domácích producentů těchto počítačů poskytují širokou základnu pro moderní aplikační software. Trend vývoje poměru programovatelných automatů (Programmable Logic Controller – PLC) versus RTU se tak obrací ve prospěch RTU s vloženými počítači. Tyto RTU, ať v roli technologických serverů anebo řídicích stanic, a jejich propojení do sítě průmyslových počítačů anebo kancelářských PC s  klientskými vizualizačními a parametrizačními programy se nabízejí k výstavbě jednotného kompaktního řídicího systému. Současná situace otevírá cestu k tomu, aby systémový aplikátor (tj. osoba realizující automatizační systém) mohl vybírat hardware ze široké nabídky možností a zcela nezávisle volit software ve vzájemné optimální kombinaci. Výběr fyzického provedení řídicích stanic je tedy plně v rukou systémového aplikátora a záleží jen na něm, co ze široké nabídky vloženého hardwaru použije. Přitom je zajištěno, že dále popisovaný řídicí systém DisCO bude pracovat v průmyslových pracovních stanicích, stolních PC i ve vložených počítačích technologických řídicích stanic (RTU).

Invence
S určitou nadsázkou lze říci, že nutnou součástí každého řídicího programu, který samočinně vykonává nějakou činnost, je mechanismus výměny dat, distribuce povelů a vznik standardních a varovných událostí. Takový mechanismus může být implementován v různé šíři, spontánně anebo plánovitě. V případě plánované implementace lze mluvit o standardu SCADA (Supervisory Control And Data Acquisition). Je tedy možné předpokládat, že dobře sladěný mechanismus SCADA by mohl být základem a společnou sjednocující částí všech dílčích distribuovaných součástí (RTU, průmyslových i kancelářských počítačů) navenek zcela kompaktního řídicího systému. A právě tato myšlenka byla jednou z inspirací pro vývoj jednotného kompaktního řídicího systému DisCO.

Druhou hlavní myšlenkou bylo dosáhnout co největší, tedy pokud možno úplné otevřenosti systému. Tím je v praxi umožněno implementovat systém na různý hardware (podmínkou je pouze 32bitový procesor na bázi Intel x86) a na různé operační systémy. Operační systém (OS) použitých RTU je systém reálného času RTOS americké firmy Phar Lap Software. Konzola a pracovní stanice systému DisCO vyžadují pro svůj chod nainstalovaný OS Windows NT Workstation. Připravována je verze pro OS Linux. Otevření systému je zde ale chápáno i z hlediska jeho uživatelů. Systém DisCO lze použít jako hotový produkt, lze jej doplňovat vlastními součástmi anebo jej lze využívat jako knihovnu funkcí ve vlastním vytvářeném produktu. Podporované programovací jazyky jsou MS C, C++, Basic; Pascal a Delphi.

Kompaktní řídicí systém DisCO
Název DisCO je odvozen z využívaného funkčního principu – Distributed Computing Objects (volně lze přeložit jako „distribuované objektové řízení“). V podstatě jde o pokračování a přirozené rozvinutí jednoho směru vývoje informatiky – objektově orientovaných technologií (OOT). Díky novým možnostem v oblasti vloženého hardwaru i softwaru se podařilo tento princip implementovat i do RTU. Na tomto základě je možné vytvořit homogenní síť řídicích stanic, technologických serverů a terminálů systému. Architektura každého runtime modulu DisCO vychází z definice komunikačního modelu ISO/OSI (Open Systems Interconnection – OSI), který lze s výhodou aplikovat i na tvorbu těla řídicích programů. Vrstvy modelu aplikace jsou v tab. 1.

Tab. 1. Model aplikace podle ISO/OSI

7 aplikační vrstva vlastní tvorba aplikační logiky – konkrétní naprogramování chování aplikace
6 prezentační vrstva zobrazení a ukládání dat – GUI (Graphic User Interface)
5 relační vrstva výpočty a kontroly stavů a mezí
4 transportní vrstva převod transportního datového proudu
3 síťová vrstva manažer komunikačního spojení
2 spojová vrstva komunikační protokoly
1 fyzická vrstva fyzická realizace komunikačního spojení

Programové moduly jednotlivých stanic se po svém spuštění jednoduše zapojí do celkové činnosti systému podle role, jakou stanice hraje. Každá stanice může být libovolně spuštěna nebo vypnuta, samozřejmě s ohledem na řízenou technologii. Vlastní distribuce dat a řízení jsou podmíněny existencí síťového spoje na bázi standardu Ethernet nebo některého z komunikačního rozhraní RS-485, RS-422 a RS-232. Nové možnosti komunikace se otevírají při využití výměny dat pomocí automatického e-mailu, neuronových sítí nebo distribuce objektů prostřednictvím sítí Internet nebo Intranet. Systém DisCO tak může obsluhovat datové objekty vyskytující se doslova kdekoliv ve světě.

Hlavními rysy systému DisCO jsou:

a) z hlediska topologie dat a řízení systému:

  • distribuovaný objektový systém charakteristický strukturovanou distribucí dat do celého systému na pozadí jeho běžné činnosti;
  • vykonávání aplikačních skriptů nebo povelů obsluhy nad distribuovanými objekty systému v libovolné stanici systému DisCO, vždy s možností pohledu do stromové struktury dat stanic pod sebou;
  • možnost zřídit pohotovou (horkou) zálohu libovolné stanice systému;

b) z hlediska provozu systému:

  • operátorské konzoly systému pro vizualizaci a ovládání objektů systému představují klasické grafické uživatelské rozhraní (Graphical User Interface – GUI);
  • technologické řídicí stanice systému (RTU), zabezpečující řízení nebo jiné akce vykonávané v reálném čase, jsou z hlediska objektové komunikace přímo integrovány do systému;
  • externí RTU se připojují standardními komunikačními protokoly;

c) z hlediska návrhu systému tvoří celek s názvem DisCOsuite programové moduly:

  • Projektové návrhové studio systému,
  • Manažer konstrukčních dat systému (kompilátor popisné podoby dat do podoby objektového tělesa),
  • programové moduly runtime systému DisCO.

Výstavba aplikace s použitím systému DisCO
U řídicích systémů je bezesporu nejzajímavější ta část, kterou je řešena jejich aplikační vrstva, tj. způsob implementace aplikační logiky. Nejprve však musí  být převedena data z transportní do aplikační vrstvy, kdy prvky datového proudu přejdou do technologických proměnných. Při převodu dat jsou generována kontrolní a poruchová hlášení (prvotní události). Dále se pracuje s „čistými“ daty. Jde o způsob, jakým lze naprogramovat chování aplikace a přímé nebo automatické řízení svěřené technologie. Jak je tato problematika řešena v systému DisCO?

V případě komunikace prostřednictvím externích transportních protokolů nebo se vstupně-výstupními kartami umožňuje Projektové návrhové studio z balíku DisCOsuite interaktivním grafickým způsobem a s využitím zásad práce s hromadnými daty generovat mapy převodu prvků transportního protokolu na objekty systému. Mapy jsou generovány pro každý definovaný telegram přenosu v čase návrhu systému. Založením objektu Telegramu a vygenerováním jeho map lze jednoduše implementovat libovolný komunikační (vyzývaný) protokol. V případě spontánního příjmu dat je možné implementovat snímací (dohlížecí) protokol, opět s příslušnou mapou nad snímaným polem prvků. Mapy převodů dat a nastavení přepočtů jsou součástí konstrukčních dat aplikace. Data při převodu do aplikační vrstvy jsou dále zpracovávána pomocí kontrolních objektů vyhodnocujících dosažené stavy a hodnoty. Pro každý zpracovávaný prvek dat se volitelně sleduje dosažení shody nebo definovaného poměru stavů anebo analogových hodnot, a to s konstantou nebo jiným datovým prvkem. Vnitřní komunikace mezi jednotlivými stanicemi systému DisCO je řešena na bázi objektové komunikace, na úrovni aplikačního protokolu (události se nevytvářejí, ale již vzniklé se přenášejí spolu s daty), ukládáním a výstavbou objektů do datového proudu a z něj.

Jednoduše řečeno jsou příjem a zpracování dat nebo distribuce povelů řešeny základními funkcemi SCADA řídicího systému. Nad množinou pořízených dat začíná vlastní realizace specifické činnosti každé aplikace. Existuje široká paleta řídicích systémů od různých výrobců s různou úrovní a různě zdařilými způsoby tvorby aplikačního programu. Jsou známy různé algoritmy řízení (např. Function Blocks Diagrams – FBD) a parametrizace chování nebo modifikování činnosti aplikace příkazy skriptovacího jazyka (VBScript, JavaScript apod.). Systém DisCO nabízí čtyři základní principy modifikace chování aplikační vrstvy – tvorby aplikačních programů, které lze vzájemně kombinovat. Je na rozhodnutí systémového aplikátora, který způsob zvolí s ohledem na své možnosti, výkonnost použitého hardwaru a požadavky aplikace. Pro vlastní tvorbu aplikace nabízí systém DisCO tyto čtyři metody:

  • výběr a parametrizace připravené šablony chování,
  • podmíněný výkon aplikačního skriptu,
  • tvorba vlastní dynamicky připojené aplikační knihovny,
  • využití systému DisCO jako knihovny ve vlastním programu.

Obr. 2.

Výběr a parametrizace šablony chování z připravené množiny typů podle druhu aplikace
Tvorba aplikační vrstvy tímto způsobem je nejrychlejší a nejbezpečnější. Další výhodou je rychlá realizace takto utvořené aplikace a také velmi snadná opakovatelnost řešení v podobném nebo stejném případě. Nevýhoda spočívá v nutnosti podřídit se existujícím šablonám nebo vytvářet šablony nové. Metoda je založena na principu použití zvolené šablony chování a významů a pravidel pro tvorbu datových prvků, což dohromady tvoří datový obraz dílčího technologického celku. Takto jsou předem připraveny např. šablony vn kobek, vypínačů, dálkově ovládaných úsečníků, šoupat a ventilů, serv atd. Použití šablon není povinné.

Výkon aplikačního skriptu na určených místech a v reakci na definované události
V systému DisCO může být volitelně implementován moderní výkonný interpreter objektového skriptovacího jazyka. Interpreter je přímo vložen do těla aplikace DisCO, takže nepoužívá rozhraní ani registraci nutné pro technologie založené na využití komponent (např. COM VBScript). Přímé vložení zvyšuje výkonnost a zjednodušuje použití. Technika registrace objektů je specifická pouze pro prostředí MS Windows a v OS reálného času pro vložené počítače (Phar Lap RTOS) ji nelze použít. Použitím skriptů je možné modifikovat chování programu po spuštění a výpočty s technologickými proměnnými anebo výpočty blokovacích podmínek. Lze přidávat reakce na položky nabídky funkcí (menu), specifickým způsobem vyřešit poruchu komunikace nebo spouštět příkazy skriptu podle časového plánu (scheduler).

Tvorba vlastní aplikační knihovny, dynamicky připojené k programu DisCO
S pomocí popisu rozhraní a pravidel chování programu lze k funkčnímu jádru DisCO (SCADA) připojovat jako doplněk aplikace dynamické knihovny. Ty může aplikátor psát ve standardním programovacím jazyce, např. C. Zde může být umístěna speciální složitá funkční schopnost, modifikující chování aplikace. Výpočetní výkon poklesne při tomto způsobu modifikace chování jen velmi málo a záleží spíše na dovednosti a technické invenci programátora, jak dokáže strojový čas počítače využít. Tímto způsobem jsou realizovány např. funkce PID regulátor, Prediktivní regulátor odběru elektrické energie nebo Bilanční automat pro řízení ostrovního provozu v podnikové energetice.

Využití systému DisCO jako knihovny ve vlastním projektu vyvíjeného programu
S využitím funkcí knihovny DisCOKernel lze vyvíjet vlastní program a z knihovny funkcí DisCO do něj připojovat potřebné metody. Programátor má při tvorbě aplikace zcela volné ruce a k dispozici mu jsou SCADA i ostatní modifikační metody aplikační a vrstvy. Podporovány jsou programovací jazyky Microsoft C, C++, Pascal a Delphi.

Programový balík DisCOsuite

Projektové návrhové studio
Součástí programového balíku DisCOsuite je modul umožňující systémovému aplikátorovi navrhnout, nakonfigurovat a použít systém DisCO pro řešení projektu v konkrétním prostředí. Zásadním cílem při vývoji modulu Projektové návrhové studio bylo usnadnit a maximálně urychlit proces řešení projektu, implementování a konfigurování systému. Důraz byl kladen na intuitivnost ovládání a mnemotechnickou představivost s cílem nezatěžovat řešitele samotným systémem, ale dovolit mu plně využít svých odborných znalostí a zkušeností z praxe.

Modul Projektové návrhové studio se skládá z mnoha částí – komponent, které lze do jeho prostředí jednoduchým způsobem vkládat, a tak dále rozšiřovat jeho funkční možnosti. Část komponent je dodávána jako standardní součást a další komponenty lze získat od dodavatele prostředí jako rozšíření sestavy. Existuje i možnost nechat si vytvořit komponenty podle vlastních specifických potřeb.

Základní, tj. standardně dodávané komponenty, jednotné pro celý systém DisCO, umožňují nastavovat:

a) společné vlastnosti průmyslové pracovní stanice, operátorské konzoly PC i řídicí stanice (RTU), tj.:

  • modelovat vstupní/výstupní prvky, tzn. generovat parametry transportních a aplikačních protokolů pro systém SCADA a datový model systému;
  • zadávat aplikační skripty;
  • definovat vznik, obsah a adresy zpráv (messaging);
  • parametrizovat správce uživatelů systému;
  • nastavovat objektové komunikace stanic;
  • parametrizovat programové moduly reálného času (ve funkcích regulátorů, registračních a diagnostických přístrojů apod.);

b) vlastnosti pouze technologických řídicích stanic (RTU):

  • nastavovat uživatelské rozhraní (funkční klávesnici, displej, obsah stránek vysílaných pro MicroWeb Server);
  • nastavovat databázi stanice;

c) vlastnosti pouze pracovních stanic a operátorských konzol:

  • nastavovat grafická uživatelská rozhraní, rozložení oken na pracovní ploše monitorů (individuálně pro různé uživatele);
  • navrhovat ovládací a zobrazovací formuláře;
  • navrhovat zobrazení technologie;
  • parametrizovat zobrazení historických i aktuálních časových průběhů (trendů);
  • nastavovat obsah stránek vysílaných prostřednictvím modulu Web Server (realizace funkce tzv. tenkého klienta);
  • nastavovat otevřené databázové prostředí (Open Database Connectivity – ODBC).

Jednotlivé komponenty modulu Projektové návrhové studio jsou logicky uspořádány do záložek (stránek) tak, aby zůstal zachován přehled i při velkém počtu komponent. V mnoha případech se do výsledného projektu vkládá větší počet kopií vybrané komponenty, lišících se pouze jménem, např. stejný typ technologické veličiny, stejný ovládací dialog nebo třeba stejný typ generované zprávy. V konečném důsledku tak vzniká v cílové fázi návrhu velmi mnoho objektů. Práce s nimi vyžaduje využívat techniku hromadného zpracování dat. V této situaci si každý prvek návrhu lze představit jako objekt mající své vlastnosti, některé své specifické, ale jiné společné s ostatními. Vlastnosti je možné jednoduše nastavit pomocí Okna nastavení vlastností, a to jak specifické jednotlivě, tak i společné hromadně. Často se opakující kombinace jednotlivých komponent a jejich nastavení je možné ukládat do zásobníku Předvolby (Presets) pro další pohotové používání. Určité předvolby je také možné získat jako doplněk k základnímu vybavení. Takto je řešeno např. nastavení komunikací typizovaných průmyslových sběrnic anebo nastavení regulátorů pro specifické aplikace.

Po ukončení návrhu je celý projekt v popisné podobě uložen do databáze a přichází ke slovu proces kompilace.

Manažer konstrukčních dat
Kompilace projektu spočívá ve finální kontrole zpracovaného řešení, nastavení a optimalizace jednotlivých vazeb mezi prvky systému a v uložení konfiguračních dat v podobě vhodné pro rychlé a jednoduché spuštění, a to pro data každé ze stanic systému. Tímto způsobem je dosaženo jednoduché práce s daty ve fázi návrhu (popisná podoba dat) a rychlosti při spuštění systému (objektové těleso). Obě fáze kladou rozdílné požadavky na kvalitu (způsob) záznamu dat.

Proces kompilace zde není přesně to, co si každý programátor pod tímto termínem představí (převod zdrojového textu programu na vlastní spustitelný kód). V daném případě jde o úpravu (přepočty a dosazení konkrétních odkazů) a převedení dat na jinou logickou strukturu a formát. Ve své popisné podobě tvoří data Projektového návrhového studia archiv vytvářeného projektu řídicího systému. Z archivních dat také vychází tvorba projektové dokumentace.

Runtime systému
Po ukončení návrhu musí být zkompilovaná data rozeslána do jednotlivých stanic systému DisCO (konzol, pracovních anebo technologických řídicích stanic). Představme si takto např. spuštění procesu regulace, zobrazování stavů a hodnot na řídicích panelech systému, vydávání varovných hlášení a zpráv o chybách a dále také archivace měřených a stavových hodnot a vedení provozních deníků.

Runtime systému DisCO uskutečňuje, kromě již zmíněných funkcí, autodiagnostiku a řeší krizové a výjimečné stavy systému řízeného i řídicího – sebe sama.

Závěr
Na závěr shrnutí, několik technických detailů a reference. Produkt DisCO je robustní systém založený na distribuovaném objektovém modelu, který umožňuje transparentní distribuci aplikační logiky na různé stanice (pracovní i řídicí). Mezi stanicemi je přitom ustaveno spojení na úrovni funkčního rozhraní, kdy vlastní aplikace v každé stanici si ani není vědoma komunikace s jiným počítačem.

Tím je dosaženo relativně velké flexibility, rozšířitelnosti a stability řešení. Snadno lze také spojovat různé operační systémy. Použitý moderní přístup umožňuje distribuovat řídicí logiku do sítě malých a cenově atraktivních, avšak dostatečně spolehlivých řídicích stanic (RTU). V celkovém důsledku tak systém DisCO představuje komplexní řešení dodávky řídicího systému od projektu (návrh systému řízení testy regulací, prováděcí dokumentace, podklady pro údržbu atd.) až k výběru optimálního hardwaru jednotlivých stanic. Návrh řídicího systému i jeho realizace se tak výrazně zlevňují.

Nejnovějším z významných použití celého systému DisCOsuite je aplikace ve ŠKO-Energo podniku Škoda Auto k řízení elektrických rozvoden napětí 22 kV a 110 kV. Systém umožňuje řídit rozvodny a sleduje energetickou bilanci (vlastní výroba/dodávka). Při odpojení vnějšího napájení továrny od rozvodné sítě STE řídí vzniklý ostrovní provoz a udržuje vyrovnanou energetickou bilanci. Technologických proměnných je téměř 5 000, doba odezvy (od vstupního podnětu k regulačnímu zásahu) je do 600 ms. Systém obsahuje 58 externích RTU, devět vlastních RTU (typu front-end), dva systémové servery a dvě operátorská pracoviště.