26.3.2024

Archivácia v SCADA a MES systémoch.

 

“Archivácia v SCADA a MES systémoch? To je jednoduché: vezmem hodnotu, hodím ju do archívu a je tam. A to je všetko. Načo o tom chcete písať článok?“

Historické dáta v systémoch SCADA a MES sú chápané ako jedno z najdôležitejších aktív. Aj preto sa u našich zákazníkov často stretávame s tým, že archívny subsystém (skrátene archív) je budovaný ako redundantný, prípadne sa v menších aplikáciach k zredundantneniu archívov pristupuje ako k jednému z prvých bodov pri rozvoji a pri prechode od pilotnej fázy projektu do plošnej produkcie.

 

takto archivácia v SCADA/MES nevyzerá ..
Obr1: takto archivácia v SCADA/MES nevyzerá ..

Takže akú funkcionalitu môže poskytovať archív systémov SCADA a MES? Pri ďalšom popise budeme ukazovať príklady z archívneho subsystému D2000, ktorý je súčasťou softvérovej technológie reálneho času D2000.

Základná funkcionalita už bola spomenutá vyššie – archivácia dát (či už ide o hodnoty objektov z komunikácie, o vypočítané hodnoty, ručne zadané alebo iné). Nazvime tieto archívne objekty primárne archívy. Primárna archivácia môže byť zmenová alebo periodická.

Každý archívny objekt má definovanú hĺbku archivácie – obdobie, za ktoré sa hodnoty ukladajú v archívnej databáze. Staršie hodnoty sa spravidla mažú a takto si archívna databáza udržuje po úvodnom naplnení zhruba rovnakú veľkosť. Niektoré systémy majú definovanú obmedzenú sadu hĺbok archivácie (napr. dňové, týždňové, mesačné, ročné). D2000 Archív umožňuje nastaviť ľubovolnú hĺbku archivácie na každom archívnom objekte.

Čo ďalej? Logickou požiadavkou je definícia štatistických archívov. Užívatelia požadujú údaje o priemeroch, maximách, sumách a iných štatistikách nad archivovanými hodnotami. Štatistické archívy majú spravidlá väčšiu archívnu hĺbku ako ich zdrojové archívy (napr. zmenové dáta z komunikácie meniace sa sekundovo sú archivované 1 mesiac a minútové priemery 1 rok). Štatistické archívy sú na rozdiel od primárnych vždy periodické.

Ďalším užitočným typom archívov sú vypočítané archívy, ktoré realizujú ľubovolnú užívateľsky definovanú funkciou nad svojimi zdrojovými archívmi. Napr. archívny objekt H.X s funkciou (H.A + H.B + H.C)/3 počíta aritmetický priemer troch archívov H.A, H.B a H.C. Podobne ako primárne archívy, aj vypočítané archívy môžu byť zmenové alebo periodické. D2000 Archív teda v sebe obsahuje vypočtový subsystém využívajúci identickú syntax ako proces realizujúci realtime výpočty D2000 Calc.

konfigurácie vypočítaného archívu
Obr 2: príklad konfigurácie netriviálneho vypočítaného archívu s použitím rozšírenej syntaxe, ktorá podporuje vetvenie (kľúčové slová IF/GOTO) a definície lokálnych premenných. Výsledkom výpočtu je lokálna premenná _KVALITA.

 Štatistické a vypočítané archívy nemusia pracovať iba s primárnymi archívmi, ale zdrojom pre ne môžu byť ľubovolné archívne objekty - aj štatistické a vypočítané. Takto v praxi vznikajú aj pomerne veľké archívne “stromy” , ktoré kombinujú štatistické a vypočítané archívy a počítajú napr. minútové alebo štvrťhodinové energetické bilancie celého výrobného podniku.

Keď hovoríme o závislých objektov, kvalitný SCADA/MES systém by mal udržovať referenčnú integritu objektov – vedieť, či je objekt používaný iným objektom, a ak áno, zabrániť jeho vymazaniu.

 

‘strom’ archívnych objektov v Cnf
Obr 3: Časť ‘stromu’ archívnych objektov (meno začína H) a zdrojových objektov (meno začína SV) zobrazená v konfiguračnom nástroji D2000 Cnf. Na ‘vrchu’ stromu je finálny vypočítaný archív, pod ním sú archívy, od ktorých závisí, ‘korene’ sú primárne archívy resp. objekty, ktoré sú nimi archivované. Dialóg slúži na zobrazenie väzieb medzi objektami.

Takže toto sú všetky typy archívov, že? No, skoro: špeciálnym typom primárnych archívov, ktoré ale nemajú nakonfigurovaný žiaden zdrojový objekt, sú archívy plnené zo skriptu. Ako hovorí už meno, slúžia pre ukladanie dát, ktoré sú plnené skriptom (napr. na základe užívateľom zadaných dát alebo v dôsledku importu externého súboru, prípadne načítaných z externej SQL databázy).

V D2000 archíve je možné skriptovacie funkcie použiť aj na obyčajné primárne archívy. Príkladom použitia v praxe sú primárne archívy archivujúce merané body z komunikácie, konkrétne IEC104 protokol. Keďže tento protokol nepodporuje dočítavanie historických dát (napr. po rozpade komunikácie), v konkrétnej aplikácii PLC ukladá dáta aj do súborov na disk, odkiaľ sú po skončení výpadku komunikácie načítané skriptom a uložené do primárnych archívov.

A keď už hovoríme o historických dátach z komunikácie, viaceré zariadenia (dataloggery, elektromery, OPC HDA servery..) umožňujú vyčítavanie historických dát. Čo s nimi následne? Staré dáta určite nechceme zobrazovať užívateľom v schémach – ale chceme ich uchovať v archívoch! Aj túto funkcionalitu D2000 Archív ponúka. Čo je ale dôležité – po archivácii automaticky prepočíta aj hodnoty štatistických a vypočítaných archívov, ktoré sú ovplyvnené príchodom starých dát primárnych archívov.

Tu je kvalitatívny rozdiel medzi aritmetikou vykonávanou výpočtovým procesom (D2000 Calc) nad aktuálnymi hodnotami objektov a aritmetikou D2000 Archívu. Aritmetika pracujúca s aktuálnymi hodnotami nemá ako robiť korekcie historických údajov. Aritmetika D2000 Archívu automaticky zabezpečuje konzistenciu štatistických a vypočítaných archívov po príchode starých hodnôt primárnych archívov ako aj po vložení starých hodnôt zo skriptu (pri skriptovaní je možné zvoliť, či sa majú závislé archívy prepočítať okamžite, prípadne ručne spustiť prepočet po dokončení vkladania do viacerých archívov).

Význam zachovania konzistencia štatistických a vypočítaných archívov sa prejaví aj vtedy, ak hodnoty z komunikácie chodia už s časovými značkami. Vtedy môže dôjsť k tomu, že niektoré komunikácie posielajú ‘nové’ hodnoty, ktoré majú ale časovú značku staršiu ako aktuálny čas (o niekoľko sekúnd, minút alebo aj viac). Aj v takomto prípade D2000 Archív zabezpečí konzistenciu.

Ak je v aplikácii väčšie množstvo objektov meraných bodov z komunikácie s rôznym rozptylom časových značiek, hrozí preťaženie archívu v dôsledku toho, že sa snaží priebežne udržovať konzistenciu a znovu a znovu prepočítava štatistické a vypočítané archívy napr. za posledných niekoľko minút. V konkrétnych aplikáciach tak fronta požiadaviek mohla dosiahnuť až stovky tisíc či milióny hodnôt. Čo s tým? Tvorcovia D2000 Archívu mysleli aj na toto. V konfigurácii štatistických a vypočítaných archívov je možné zvoliť si podmienku výpočtu. Štandardne sa výpočet robí priebežne, ale je možné ho vykonať až na požiadanie. To znamená, že takýto archív sa nebude počítať priebežne, ale až na povel užívateľa alebo akcie zo skriptu bude spustený výpočet jedného, viacerých (podľa masky mena archívneho objektu) alebo všetkých archívov za zvolené obdobie.

podmienka výpočtu štatistického archívu
Obr 4: nastavenie podmienky výpočtu štatistického archívu

V praxi sú využívané archívy vypočítané na požiadanie v bilančných systémoch. Výpočet je iniciovaný automaticky zo skriptu napr. každú hodinu v desiatej minúte, kedy sa predpokladá, že dáta z predchádzajúcej hodiny sú už k dispozícii.

V predchádzajúcom obrázku je viditeľná aj možnosť výpočtu “pri čítaní”. Čo to je? Ďalšia zaujímavá vlastnosť D2000 Archívu. Jedná sa o ‘virtuálny’ vypočítaný alebo štatistický archív, ktorý v archívnej databáze v skutočnosti neexistuje – takže nezaťažuje disky/CPU zapisovaním hodnôt. Pri požiadavke užívateľa alebo skriptu o dáta sú načítané dáta zdrojového archívneho objektu (v prípade štatistického archívu) alebo aj viacerých zdrojových archívnych objektov (v prípade vypočítaného archívu), vykoná sa výpočet a dáta sú zaslané žiadateľovi. Daňou za ušetrené miesto na disku je čas potrebný na načítanie zdrojových dát a výpočet, preto sú takéto archívy vhodné, ak je ich použitie zo strany užívateľa sporadické. Treba pamätať aj na to, že dostupnosť dát závisí od hĺbky archivácie zdrojových archívov (ak je ich pri vypočítanom archíve viacero, tak pochopiteľne výpočet má k dispozícii iba dáta za najkratšiu z hĺbok archivácií zdrojových archívov).

Pri primárnych archívoch sme uviedli, že primárna archivácia môže byť zmenová alebo periodická. V prípade zmenovej archivácie je možné definovať, čo je to zmena – pomocou filtra.

filter primárneho archívu
Obr 5: konfigurácia filtra primárneho archívu

D2000 Archív umožňuje zadefinovanie až troch rôznych veľkostí filtra – v rámci definovaných medzí, pod dolnou medzou a nad hornou medzou. Ak je filter rovný nule, archivuje sa každá zmena hodnoty (aj keď by sa hodnota číselne nezmenila, ale zmenila sa iba časová značka). Pre nenulový filter sa archivuje nová hodnota, ktorej rozdiel voči posledne archivovanej je väčší alebo rovný veľkosti filtra. Je tak možné odfiltrovaním nevýznamných zmien ušetriť miesto na disku a znížiť zaťaženie CPU a diskov.

 

Na pokračovanie článku sa môžete tešiť zase o týždeň ..

 

Ing. Peter Humaj, www.ipesoft.com

Iné blogy