...
Počítanie hodnôt v D2000 zabezpečuje výpočtový proces D2000 Calc. Ten má ako potomkov počítané počítané body.
Väčšna aplikácií má jediný výpočtový proces (SELF.CLC), pod ktorým sú ktorý obsluhuje všetky počítané body.
...
Configuration
Pri konfigurácii počítaného bodu je potrebné konfigurovať:
- Typ hodnoty:
- De - Boolean (True/False)
- 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, archívne objekty 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ý Cieľový stĺpec (napr. SV.Something^SomeColumnSomething[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:
Blok kódu | ||
---|---|---|
| ||
SV.StructA[0]^PowerA + SV.StructB[0]^PowerB |
Komplikovanejší príklad výrazu s použitím vnoreného podmieneného výrazu:
Blok kódu | ||
---|---|---|
| ||
{ 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) |
...