Akcia CALCSTATFUNCARR


Funkcia
Výpočet archívnej štatistickej funkcie pre všetky dané časové intervaly.


Deklarácia
CALCSTATFUNCARR archIdent, bt_TmA, et_TmA, step, deepTime, statFuncIdent_Int, validPercIdent_Int, paramIdent, locVarColValueIdent_Rec, statusIdent_Int [,archivInstance_Int]
Parametre
archIdentinOdkaz na jednu archívnu hodnotu alebo odkaz na ľubovoľný objekt, ktorého hodnoty sa archivujú.

Upozornenie: Ak sa parameter odkazuje na objekt, ktorý je viacnásobne archivovaný, nie je určené, hodnoty ktorého archívneho objektu sa použijú pre akciu.
bt_TmAinIdentifikátor typu AbsTime - začiatok intervalu.
et_TmAinIdentifikátor typu AbsTime - koniec intervalu.
stepinIdentifikátor typu Int - časový krok [s].

Poznámka: hodnota parametra musí byť kladné číslo.
deepTimeinIdentifikátor typu Int - časová hĺbka [s] pre výpočet štatistiky.

Poznámka: hodnota parametra musí byť kladné číslo.
statFunctIdent_IntinIdentifikátor typu Int - typ štatistickej funkcie.
validPercIdent_IntinIdentifikátor typu Int - validačné kritérium.
paramIdentinIdentifikátor typu Int alebo Real - parameter pre niektoré typy funkcií.
locVarColValueIdent_RecoutOdkaz na stĺpec lokálnej premennej typu RECORD - výsledné hodnoty.
statusIdent_IntoutÚspešnosť výpočtu.
archivInstance_IntinNepovinný identifikátor typu Int - identifikácia inštancie archívu. Ak nie je uvedený, nahradí sa hodnotou 0.
Popis
Akcia vykoná výpočet štatistickej funkcie danej parametrom statFuncIdent_Int na archívnych dátach reprezentovaných archívnym objektom archIdent pre nasledujúce časové intervaly dané parametrami bt_TmA, et_TmA, step a deepTime:
  • prvý časový interval - <bt_TmA - deepTime; bt_TmA>
  • druhý časový interval - <bt_TmA + step - deepTime; bt_TmA + step>
  • .....
  • n-tý časový interval - <bt + (N-1)*step - deepTime; bt + (N-1)*_step>


Časová značka výsledku za určitý časový interval je zhodná s koncovým časom príslušného časového intervalu. Po úspešnom vykonaní akcie sú výsledky výpočtu dosadené do stĺpca lokálnej štruktúrovanej premennej danej parametrom locVarColValueIdent_Rec.

Poznámka: Pri výpočte akcie CALCSTATFUNCARR sa neuplatňuje obmedzenie času, ktoré je aktívne pri výpočtoch štatistických archívov a ktoré nedovolí výpočet pre časy v budúcnosti. Pomocou akcie CALCSTATFUNCARR je teda možné napríklad vypočítať štatistiku nad skriptom plneným archívom, ktorý má dáta aj v budúcnosti.


Návratový kód statusIdent_Int môže nadobúdať jednu z nasledujúcich hodnôt:

  • _ERR_TRANS_ABORT
  • _ERR_TRANS_ERROR
  • _ERR_TRANS_IGNORED
  • _ERR_NO_ERROR

Množina implementovaných funkcií je zhodná z funkciami, ktoré je možné konfigurovať pre štatistický archív (okrem funkcií FILTER a TIMESLICE). Pre jednotlivé funkcie sú v ESL preddefinované lokálne konštanty.

Parameter validPerctIdent_Int predstavuje validačné kritérium použité pri vyhodnocovaní štatistickej funkcie. Môže nadobúdať hodnoty 0 .. 100 (chyba pri nedodržaní podmienky ERR_RANGE_ERROR).

Pre niektoré štatistické funkcie je potrebné zadať parameter paramIdent podľa nasledujúcej tabuľky:

Štatistická funkciaPopis parametra
_STAT_F_INTEGRAL

Časový rozmer vstupu. Pre jednotlivé typy sú taktiež zavedené preddefinované lokálne konštanty podľa tabuľky:

KonštantaPopis
_INTEGRAL_HOURUNITHodinový integrál
_INTEGRAL_MINUNITMinútový integrál
_INTEGRAL_SECUNITSekundový integrál
_STAT_F_GE_TIME
_STAT_F_GT_TIME
_STAT_F_LE_TIME
_STAT_F_LT_TIME
_STAT_F_ADDITION_PARAM
_STAT_F_INCREMENT_PARAM
_STAT_F_DELTA_PARAM
Referenčná hodnota

Pre ostatné štatistické funkcie sa parameter paramIdent nevyhodnocuje.

Hodnota parametra archivInstance_Int udáva inštanciu archívu, ktorá realizuje požiadavku. Ak nie je uvedený (alebo má hodnotu 0) požiadavku realizuje aktívna inštancia archívu.


Príklad
Výpočet váženého plávajúceho priemeru z hodnôt v rozsahu 2 hodín.


 


 TIME _bt
 TIME _et
 INT _step
 INT _deepTime
 REAL _retCode
 INT  _idx
 RECORD NOALIAS (SD.Data) _statData
 
 _bt := %StrToTime("0:00:00 16-11-2006")
 _et := %StrToTime("0:00:00 17-11-2006")
 _step := 3600         ; hodnota pre každú hodinu
 _deepTime := 2*_step  ; plávajúci priemer, hĺbka 2 hodiny
 
 CALCSTATFUNCARR H.Col[1], _bt, _et, _step, _deepTime, _STAT_F_WGAVG, 100, 0, _statData^Value, _retCode
 IF _retCode = _ERR_NO_ERROR THEN
   ; výpočet prebehol, prezeranie hodnôt
      FOR _idx=1 TO _statData\DIM DO_LOOP
     ; _statData[_idx]^Value - hodnota
 ELSE
   ; nastala nejaká chyba
 ENDIF 
Poznámka
Použitie akcie CALCSTATFUNARR neumožňuje počítať štatistické funkcie FILTER a TIMESLICE.

Súvisiace stránky:

Napíšte komentár