Štruktúrované premenné (štruktúry) slúžia na zjednodušenie práce s opakovanými technologickými celkami - PLC, technologickými linkami, generátormi, atď. 

Tip

Na zoznámenie sa s prácou so štruktúrovanými premennými a ich zobrazovaním slúžia aj tieto nahrávky z webinára dostupné na YouTube:


Základy

Štruktúrovaná premenná je niečo ako tabuľka v Exceli - má riadky a stĺpce, ktoré obsahujú hodnoty. Riadky sú referencované číslami v hranatých zátvorkách za menom štruktúry (napr. SV.Test[1] alebo SV.Test[2]), stĺpce majú svoje názvy (napr. ColumnA, ColumnB, Temperature1). K jednotlivým položkám sa pristupuje tak, že sa špecifikuje číslo riadka a meno stĺpca, napr. SV.Test[2]^ColumnA alebo SV.Test[1]^Temperature1.

Názvy stĺpcov ako aj typy hodnôt v jednotlivých stĺpcoch a ďalšie vlastnosti sú zadefinované v Definícii štruktúry. Pri vytváraní štruktúrovanej premennej je nutné špecifikovať, aká je jej definícia štruktúry - a samozrejme počet riadkov.

Jednotlivé stĺpce štruktúrovanej premennej majú definované konkrétny typ hodnoty, ktorý môže byť Logický, Celočíselný, Reálny, Absolútny čas, Relatívny čas, Textový a Objekt (v takomto stĺpci sú pripojené iné objekty D2000 - napr. merané body).

Každý technologický celok je reprezentovaný jedným riadkom štruktúrovanej premennej. 

D2000 podporuje tvorbu:

  • štruktúrovaných počítaných bodov - jeden výpočet pre všetky riadky štruktúry
  • štruktúrovaných archivovaných hodnôt
    • primárnych - archivácia celého stĺpca štruktúrovanej premennej
    • vypočítaných - jeden výpočet výrazu pre všetky riadky štruktúry
    • štatistických - jeden výpočet štatistiky pre všetky riadky štruktúry
    • plnených zo skriptu
  • inštančných schém - inštančná schéma zobrazuje hodnoty z N-tého riadku štruktúrovanej premennej. Inštančná schéma sa dá viackrát vložiť do štandardnej schémy a tak opakovane zobraziť dáta z konkrétnych riadkov
  • inštančných grafov - podobne ako inštančná schéma, aj graf môže zobrazovať hodnoty z N-tého riadku štruktúrovanej premennej. Inštančné grafy sa dajú otvárať z inštančných aj štandardných schém.

Príklad

Majme viacero PLC, z ktorých každé má názov a trojicu teplôt T1, T2, T3, ktoré sú získavané z komunikácie. Chceme vypočítavať priemer týchto teplôt a zobrazovať aj stav komunikácie. Chceme počítať 5-minútový vážený priemer z priemernej teploty (s použitím archívu).

Najskôr vytvoríme definíciu štruktúry SD.MyPlc. Stĺpec Name bude textový, stĺpce z komunikácie budú typu Objekt a priemery budú reálne čísla.

Následne vytvoríme štruktúrovanú premennú SV.MyPlc s typom štruktúry SD.MyPlc. Tá môže mať ľubovolný počet riadkov. Do prvých troch riadkov pripojíme objekty z komunikácie - merané body s teplotami a stavy jednotlivých staníc.

Tip

Ak chceme, aby štruktúrovaná premenná nebola konštantná (aby sa do jednotlivých položiek dalo zapisovať), zaškrtneme Manual. Ak chceme nastaviť možnosť zápisu iba pre jednotlivé stĺpce alebo položky, vieme predefinovať Manual na úrovni stĺpca (v záhlaví) alebo až na jednotlivé položky. To isté platí aj o ďalších vlastnostiach nakonfigurovaných pre jednotlivé stĺpce v definícii štruktúry (limity, ukladanie štartovacej hodnoty, hysterézia, textová paleta, index do transformačnej palety).


Štruktúrovaný počítaný bod

Pokiaľ chceme pre všetky riadky vypočítať priemer teplôt a zapísať ho do stĺpca TAvg, stačí na to vytvoriť jeden štruktúrovaný počítaný bod. Typ hodnoty zadáme "Ae - Analog" a ako výraz dáme aritmetický priemer

( SV.MyPlc[0]^T1 + SV.MyPlc[0]^T2 + SV.MyPlc[0]^T3) / 3

Špecifikovaním riadku [0] určujeme, že pracujeme so všetkými riadkami. Výsledok chceme uložiť do stĺpca TAvg, preto nastavíme Cieľový stĺpec na SV.MyPlc[0]^TAvg.

V skutočnosti takáto definícia počítaného bodu spôsobí, že proces D2000 Calc, ktorý je rodičom počítaných bodov, vytvorí pre každý riadok cieľovej štruktúry jeden "tieňový" počítaný bod a preň vygeneruje príslušný výpočet:

  • 1. riadok: ( SV.MyPlc[1]^T1 + SV.MyPlc[1]^T2 + SV.MyPlc[1]^T3) / 3
  • 2. riadok: ( SV.MyPlc[2]^T1 + SV.MyPlc[2]^T2 + SV.MyPlc[2]^T3) / 3
  • 3. riadok: ( SV.MyPlc[3]^T1 + SV.MyPlc[3]^T2 + SV.MyPlc[3]^T3) / 3
  • ... atď

Výhodou štruktúrovaných počítaných bodov je, že jednoduchým spôsobom definujeme výpočet pre všetky riadky štruktúry. Navyše, ak pridáme do štruktúry ďalšie riadky, automaticky vzniknú nové "tieňové" počítané body pre nové riadky a teda počítaný bod nemusíme vôbec modifikovať. A pokiaľ potrebujeme zmeniť nejaký parameter výpočtu (napr. pridať novú teplotu T4), stačí to urobiť na jednom mieste.

Takýto štruktúrovaný počítaný bod zverejňuje hodnoty iba do štruktúrovanej premennej, on samotný nemá hodnotu.


Tip

Odporúčame nazvať štruktúrovaný počítaný bod tak, aby obsahoval názov štruktúrovanej premennej aj názov cieľového stĺpca - v našom prípade P.MyPlc.TAvg - uľahčí sa potom vyhľadávanie pomocou referenčnej integrity.


Pokiaľ by niektorá z teplôt bola neplatná (napr. v dôsledku výpadku komunikácie), ich súčet bude tiež neplatný. Toto je možné riešiť buď nastavením "Neplatné hodnoty vo výraze nahraď hodnotou 0" alebo ak je potrebná iná náhrada, tak funkciou %IsNull. Napríklad nasledujúci výraz nahradí neplatné hodnoty v stĺpci T1 teplotou 20, T2 teplotou 25 a T3 teplotou 30 stupňov:

(%IsNull(SV.MyPlc[0]^T1, 20) + %IsNull(SV.MyPlc[0]^T2, 25) + %IsNull(SV.MyPlc[0]^T3, 30)) / 3

Tipy pre pokročilých

V počítaných bodoch je možné použiť rôzne matematické funkcie a výrazy, včítane podmieneného výrazu.

Podporená je aj takzvaná rozšírená syntax, ktorá umožňuje rozdelenie výpočtu na niekoľko krokov, definovanie lokálnych premenných, použitie podmienky IF - THEN - ELSE a skoku na návestie - GOTO.

Štruktúrované archivované hodnoty

Ak chceme počítať v archíve vážený priemer, tak musíme najskôr archivovať jednotlivé stĺpce s teplotami do primárnych archív, potom vytvoriť vypočítaný archív (priemer primárnych archívov - obdoba štruktúrovaného počítaného bodu) a nakoniec 5-minútový vážený priemer.

Primárne štruktúrované archívy

Pre každý zo stĺpcov T1, T2, T3 vytvoríme primárne archivované hodnoty.

Tip

Keď máme v D2000 Cnf označenú štruktúrovanú premennú a klikneme na ikonu "Do archívu", môžeme si vybrať stĺpce, ktoré chceme archivovať. Neodporúčame archivovať celú štruktúru naraz.
 

Ak vytvárame archívy kliknutím na ikonu "Nový objekt" v toolbare, ich mená je vhodné vytvoriť z názvu štruktúrovanej premennej a názvu archivovaného stĺpca.

Podobne ako v štruktúrovanom počítanom bode, špecifikujeme archiváciu celého stĺpca (SV.MyPlc[0]^T1SV.MyPlc[0]^T2 a SV.MyPlc[0]^T3).


V skutočnosti takáto definícia archivovanej hodnoty spôsobí, že proces D2000 Archív, ktorý je rodičom archivovaných hodnôt, vytvorí pre každý riadok archivovanej štruktúry jednu "tieňovú" archivovanú hodnotu, ktorá bude archivovať príslušný riadok (1, 2, atď).

Výhodou štruktúrovaných archivovaných hodnôt je, že jednoduchým spôsobom definujeme archiváciu pre celý stĺpec štruktúry. Navyše, ak pridáme do štruktúry ďalšie riadky, automaticky vzniknú nové "tieňové" archivované hodnoty pre nové riadky a teda archivovanú hodnotu nemusíme vôbec modifikovať. A pokiaľ potrebujeme zmeniť nejaký parameter archivácie (napr. časovú hĺbku), stačí to urobiť na jednom mieste.


Vypočítaný štruktúrovaný archív

Ďalším krokom je vytvorenie vypočítaného štruktúrovaného archívu, ktorý bude počítať priemer teplôt. Vytvoríme archivovanú hodnotu s názvom H.MyPlc_TAvg, nastavíme Účel archívu na Prepočet zaarchivovaných hodnôt zadaným výrazom.

Nastavíme Rozmer archívu na ľubovolný z troch zdrojových archívov, napr. H.MyPlc_T1 (je možné pre rozmer použiť aj položku štruktúrovanej premennej, napr. SV.MyPlc[0]^TAvg, v tomto prípade by bolo možné zaškrtnúť aj Zverejňovať hodnoty a vypočítané priemery by sa zverejňovali v zadanom stĺpci (takže by sme nepotrebovali ani vyššie vytvorený štruktúrovaný počítaný bod P.MyPlc.TAvg).

Na záložke Výraz zadáme aritmetický priemer zdrojových archívov. Je možné použiť syntax

(H.MyPlc_T1 + H.MyPlc_T2 + H.MyPlc_T3) / 3

alebo so zadaním nulových indexov riadkov (aby bolo jasné, že sa jedná o štruktúrovaný výpočet):

(H.MyPlc_T1[0] + H.MyPlc_T2[0] + H.MyPlc_T3[0]) / 3

Vo výraze sa môžu vyskytovať iné archívne objekty a konštanty, ale nie iné typy objektov D2000 (napr. merané body). Ak chceme použiť hodnoty iného typu objektu, treba preň najskôr nakonfigurovať primárny archív.


V skutočnosti takáto definícia vypočítanej archivovanej hodnoty spôsobí, že proces D2000 Archív, ktorý je rodičom archivovaných hodnôt, vytvorí pre každý riadok archivovanej štruktúry (podľa parametra Rozmer archívu) jednu "tieňovú" archivovanú hodnotu a pre ňu vygeneruje príslušný výpočet:

  • 1. riadok: (H.MyPlc_T1[1] + H.MyPlc_T2[1] + H.MyPlc_T3[1]) / 3
  • 2. riadok: (H.MyPlc_T1[2] + H.MyPlc_T2[2] + H.MyPlc_T3[2]) / 3
  • 3. riadok: (H.MyPlc_T1[3] + H.MyPlc_T2[3] + H.MyPlc_T3[3]) / 3
  • ... atď

Výhodou štruktúrovaných vypočítaných archivovaných hodnôt je, že jednoduchým spôsobom definujeme výpočet pre celý stĺpec štruktúry. Navyše, ak pridáme do štruktúry ďalšie riadky, automaticky vzniknú nové "tieňové" archivované hodnoty pre nové riadky a teda archivovanú hodnotu nemusíme vôbec modifikovať. A pokiaľ potrebujeme zmeniť nejaký parameter archivácie (napr. časovú hĺbku) alebo zmeniť nejaký parameter výpočtu (napr. pridať novú teplotu T4), stačí to urobiť na jednom mieste.

Tipy pre pokročilých

Podobne ako v prípade počítaného bodu je možné nahradiť neplatné hodnoty nulou, použiť funkciu %IsNull a použiť rôzne matematické funkcie a výrazy, včítane podmieneného výrazu.

Podporená je aj takzvaná rozšírená syntax, ktorá umožňuje rozdelenie výpočtu na niekoľko krokov, definovanie lokálnych premenných, použitie podmienky IF - THEN - ELSE a skoku na návestie - GOTO.

Navyše sú dostupné špeciálne funkcie pre vypočítané archivované hodnoty. Je taktiež možné vo výpočte použiť systémovú konštantu @EvalTime, ktorá reprezentuje čas pre ktorý sa vykonáva výpočet.


Štatistický štruktúrovaný archív

No a nakoniec vytvoríme štatistický archív H.MyPlc_TAvg_5MinWAvg, ktorému nastavíme Účel archívu na Prepočet zaarchivovaných hodnôt štatistickou funkciou. Zdrojový Archívny objekt nastavíme na vypočítaný archív s priemernou teplotou H.MyPlc_TAvg.

Keďže chceme výsledok zverejňovať do štruktúrovanej premennej, zaškrtneme Zverejňovať hodnoty a nastavíme Cieľový objekt na SV.MyPlc[0]^TAvg5Min.

Na záložke Časové parametre nastavíme Periódu archivácie na 5 minút (vytvárame 5-minútový priemer) a na záložke Štatistika vyberieme štatistickú funkciu Vážený priemer.



Tip pre pokročilých

D2000 Archív umožňuje aj výpočet plávajúceho priemeru, ak sa na záložke Štatistika nastaví iný časový interval pre zdrojové dáta - napr. ak sa nastaví na 10 minút, tak každých 5 minút sa bude počítať vážený priemer z údajov za posledných 10 minút.


V užívateľskom rozhraní D2000 HI je možné si zobraziť štruktúrovanú premennú a sledovať, ako sa jednotlivé položky štruktúry menia:


Napíšte komentár