Architektúra

Počítanie hodnôt v D2000 zabezpečuje výpočtový proces D2000 Calc. Ten má ako potomkov počítané body.

Väčšna aplikácií má jediný výpočtový proces (SELF.CLC), ktorý obsluhuje všetky počítané body. 

Konfigurácia

Pri konfigurácii počítaného bodu je potrebné konfigurovať:

  • Typ hodnoty:
    • De - Boolean
    • Ce - Celočíselný
    • Ae - Analógový
    • TmA - Absolútny čas
    • TmR - Časový interval
    • Txt - Text
  • Výraz výpočtu - matematické spracovanie údajov, ktoré reprezentuje výraz, do ktorého vstupujú hodnoty iných objektov D2000 (merané body, iné počítané body, užívateľské premenné, položky štruktúrovaných premenných, archivované hodnoty a iné). K dispozícii sú aj tlačidlá umožňujúce do výrazu vložiť rôzne matematické funkcie, konštanty a atribúty hodnôt objektov.
    Je podporená aj Rozšírená syntax pre výrazy, v rámci ktorej je možné definovať pomocné lokálne premenné a používať návestia a príkaz GOTO.
  • Spôsob výpočtu:
    • Periodicky: s definovanou periódou a offsetom
    • Pri zmene: výpočet sa realizuje pri zmene hodnoty ľubovolného z objektov, ktorý sa nachádza vo výraze
    • Trigger: výpočet sa realizuje pri zmene hodnoty alebo atribútu hodnoty vybraného objektu
  • Maximálna hustota prepočtu - je možné obmedziť hustotu prepočtov na 1 prepočet za definovaný interval (počet sekúnd alebo milisekúnd). Ak v rámci intervalu znovu nastane dôvod (alebo dôvody) pre výpočet, odloží sa až po uplynutí intervalu a potom sa vykoná.
  • Neplatné hodnoty vo výraze nahraď hodnotou 0 - Invalid hodnoty, ktoré by spôsobili neplatnosť celého výpočtu, budú nahradené 0. Ak je potrebná iná náhradná hodnota, je možné vo výraze použiť funkciu %IsNull alebo podmienený výraz s testom atribútu\VLD.

Štruktúrované počítané body

Počítaný bod je štruktúrovaný, ak je definovaný Cieľový stĺpec (napr. SV.Something[0]^SomeColumn). V takom prípade predstavuje počítaný bod "šablónu", ktorá sa inštancuje pre každý riadok cieľovej štruktúrovanej premennej, pričom ak sú vo výraze použité indexy [0] štruktúrovaných premenných, tak sa nahradia indexami 1, 2, atď podľa počtu riadkov cieľovej štruktúrovanej premennej).

Príklad výrazu pre súčet stĺpcov dvoch rôznych štruktúr (cieľový stĺpec môže byť napr. SV.StructC[0]^PowerSum:

SV.StructA[0]^PowerA + SV.StructB[0]^PowerB


Komplikovanejší príklad výrazu s použitím vnoreného podmieneného výrazu:

{ SV.Channel[0]^Input\VLD } ?           ; if the value is valid
[
  {SV.Channel[0]^Input =-32768} ?       ; -32768 is defined as invalid
  [%SetInvalid(0)]                      ; invalid
  :
  [SV.Channel[0]^Input * %Power(10, SV.Channel[0]^Exponent)]  ; normal value
]
:
[%SetInvalid(0)]                        ; invalid value (communication is not ok)


Tip

Ladenie počítaných bodov: 

Výpis detailných ladiacich informácií pre konkrétny počítaný bod/body je možné tell príkazom SHOW_DYN_INFO <maska>.

Pre štruktúrované počítané body je možné porovnanie hodnôt cieľových stĺpcov (štruktúrovaných premenných) nakonfigurovaných v počítaných bodoch s vypočítanými hodnotami pomocou tell príkazu CHECK_DESTID_VALUES.



Write a comment...