Umožní porovnať hodnoty cieľových stĺpcov (štruktúrovaných premenných) nakonfigurovaných v počítaných bodoch s hodnotami, ktoré boli vypočítané procesom D2000 Calc. Porovnanie sa vykoná zavolaním Tell príkazu CHECK_DESTID_VALUES [DestId [ColIndex]] [FlagList] nad procesom D2000 Calc.

Upozornenie: Použitie tell príkazu CHECK_DESTID_VALUES je podporované iba vo verzii D2000 V8.0.5.

Pre špecifikáciu konkrétneho objektu typu Štruktúrovaná premenná, pre ktorý sa má porovnanie vykonať, je potrebné zadať nenulovú hodnotu parametra DestId, prípadne aj nenulový ColIndex pre konkrétny stĺpec. Nasledujú nepovinné kľúčové slová, ktorých zápis umožní organizovať výsledný výstup (súhrnne nazvané ako parameter FlagList).

Poznámka: Pojem "hodnota počítaného bodu" (prípadne len skrátene "hodnota") bude v nasledujúcom texte použitý v zmysle hodnoty určenej na prepočet pre riadok cieľového stĺpca štruktúrovanej premennej, ktorej plnenie počítaný bod zabezpečuje. Jeden počítaný bod má viacero hodnôt, závisí to od počtu riadkov cieľového stĺpca štruktúrovanej premennej.

Zoznam kľúčových slov pre parameter FlagList (zapisované za sebou a oddelené medzerou, význam je bližšie rozobratý v postupe pri kontrole počítaných bodov):

Kľúčové slovo Význam
Detail Zobrazuje podrobnejšie informácie o nesúlade v porovnávaných hodnotách (obsahujú chybové alebo špeciálne príznaky).
Debug Rovnako ako Detail, no v prípade uvedenia parametra ColIndex zobrazuje aj porovnávané hodnoty bez príznakov.
Ignore_Time Ignoruje časové pečiatky porovnávaných hodnôt (pre SBS je táto voľba zapnutá vždy).
ReCalc0s Porovnáva hodnoty bez ohľadu na to, pred akou dobou k prepočtu počítaného bodu došlo. Default hodnota je 10s.
ReCalc1m Neporovnáva hodnoty, ak prepočet počítaného bodu prebehol pred menej ako 1 minútou a ešte neprišla odozva od D2000 Systému. Default hodnota je 10s.

Postup pri kontrole počítaných bodov

Kontroluje len tie počítané body, ktoré majú nastavený cieľový stĺpec štruktúrovanej premennej.


1. typ výpisu (nie je zadaný parameter Detail ani Debug)

V prípade potreby však možno zúžiť výber definovaním parametra DestID pre plnenú štruktúrovanú premennú, alebo aj parametra ColIdex pre konkrétny cieľový stĺpec.


Vzorové situácie:

Príklad 1

Tell Command: CHECK_DESTID_VALUES
Start Time: 31.05.2013 15:41:44.763
C_Index;C_ID;C_Name;C_Type;D_Column;COUNT;NoEval;ReCalc;ErrInv;ErrCnv;ErrDif
1;10216;P.SV.ALARM.AKTIV_DRN;CHANGE;$14491^29;45;45;0;0;0;0
...
41;11715;P._SysProf.Server.ThreadAlarm;CHANGE;$11427^11;154;154;0;0;0;0
42;11717;P._SysProf.Server.UsedMemPerc;CHANGE;$11427^5;154;154;0;0;0;6
43;11719;P.SV.B.LFC_SED.TG_FILTER_T10_MINUS_ALARM;CHANGE;$12280^86;60;0;0;0;0;0
...
705;71184;P.TEST_XXX_Priznak;PERIODIC;$71179^2;2;0;2;0;0;0
Duplicated Destination Column: $11427^5 - 2 occurences!
  Calc 'P._SysProf.Server.UsedMemPerc' with Type CHANGE
  Calc 'P._SysProf.Hpux.Server.UsedMemPerc' with Type CHANGE
Duplicated Destination Column: $13104^4 - 2 occurences!
  Calc 'P.SIMU.AGC_Unit_LFC.Manual.PbAct' with Type CHANGE
  Calc 'P.SIMUL.AGC_Unit_LFC.PbAct' with Type CHANGE
SUMMARY: 705 Calc(s) with 23658 Shadow Calc(s) - 65 Error(s) and 11113 Flag(s)

Na začiatku výpisu je vždy uvedený volaný TELL príkaz a čas, kedy bol spustený. Nasleduje špecifický výpis, ktorý má v úvode hlavičku CSV dát. Každému počítanému bodu s nastaveným cieľovým stĺpcom, je vo výstupe priradený práve jeden riadok s dátami v CSV formáte, pričom takýto riadok je buď ako ladiaci výpis (zelený riadok) alebo chybová hláška (červený riadok).
Každý obsahuje poradové číslo pre riadok (počet riadkov je rovný počtu počítaných bodov, kde je nastavený cieľový stĺpec štruktúrovanej premennej), ďalej ID počítaného bodu, jeho názov, typ a plnený cieľový stĺpec štruktúrovanej premennej vo formáte $^ColIndex. Za týmto stĺpcom nasledujú ešte špeciálne počítadlá v tomto poradí:

  • COUNT - celkový počet hodnôt pre daný štruktúrovaný počítaný bod,
  • NoEval - hodnota, ktorej prepočet ešte neprebehol,
  • ReCalc - hodnota, ktorej prepočet prebehol pred menej ako n sekundami (default je n=10s, je možné ho zmeniť na 60s parametrom ReCalc1m alebo úplne vypnúť parametrom ReCalc0s,
  • ErrInv - z D2000 Servera ešte nikdy neprišla informácia o danej hodnote,
  • ErrCnv - prepočítaná hodnota je neplatná, pretože neexistuje konverzia z hodnoty vypočítanej procesom D2000 Calc na hodnotu plnenú do štruktúrovanej premennej, lebo má iný typ,
  • ErrDiff - bolo prevedené porovnanie medzi hodnotou vypočítanou procesom D2000 Calc s hodnotu, ktorú ma proces D2000 Calc registrovanú z D2000 Systému.

Pravidlá:

  • žiadne z počítadiel nemôže byť väčšie ako hodnota počítadla COUNT,
  • vyhodnocovanie príznakov je prevádzané sekvenčne zhora nadol,
  • ak má hodnota príznak NoEval, je ešte predmetom porovnávania s hodnotu registrovanou z D2000 Systém-u (hodnota môže mať teda ešte príznak ErrCnv alebo ErrDiff),
  • ak má hodnota príznak ReCalc, už sa vyhodnocovanie ďalších príznakov neprevedie,
  • ak má hodnota príznak ErrInv, už sa vyhodnocovanie ďalších príznakov neprevedie,
  • ak má hodnota príznak ErrCnv, ešte urobí porovnanie hodnoty registrovanej z D2000 Systému s neplatnou hodnotou (hodnota teda ešte môže nadobudnúť aj príznak ErrDiff),
  • ak má hodnota príznak ErrDiff, znamená to, že sa hodnoty líšia, je to kľúčová chyba ladenia,
  • pri porovnávaní hodnôt sú ignorované tieto príznaky:
    • či je hodnota manuálna,
    • hodnota pre indirect,
    • ak je to SBS alebo bol zadaný parameter Ignore_Time, tak ignoruje aj čas hodnoty;
  • riadok výpisu je potom ako ladiaci výpis, ak sú počítadlá ErrInv, ErrCnv a ErrDiff nulové, inak je výpis ako chybové hlásenie.

Na konci výpisu je zhrnutie. Pred spúšťaním tell príkazu s ďalšími parametrami, je vhodné si všimnúť počet chybných (kumulatívne ErrInv, ErrCnv a ErrDiff) a špeciálnych príznakov (kumulatívne NoEval a ReCalc). Pred týmto výpisom sa nachádza ešte varovanie, ak existujú počítané body, ktoré plnia ten istý cieľový stĺpec štruktúrovanej premennej.


2. typ výpisu (je zadaný parameter Detail alebo Debug, nie je však presne vymedzený konkrétny cieľový stĺpec štruktúrovanej premennej)

Tell príkaz bez parametrov umožnil zistiť počet chybových a špeciálnych príznakov (sumárny výsledok v 1. príklade na konci výpisu). Ak je ich súčet únosný, lebo práve ten definuje maximálny počet riadkov nasledujúceho výstupu, je možné zavolať tell príkaz aj bez uvedenia parametra DestID pre plnenú štruktúrovanú premennú. Vo výstupe bude jeden riadok pre každú hodnotu štruktúrovaného počítaného bodu, obsahujúcu chybové alebo špeciálne príznaky, pričom ak obsahuje iba špeciálne príznaky, bude vypísaná hláška ako varovanie, ak však obsahuje aj chybové príznaky, bude vypísaná ako chybové hlásenie.

Príklad 2

Tell Command: CHECK_DESTID_VALUES 11427 DETAIL
Start Time: 03.06.2013 11:02:55.233
CNT_NAME;D_VOBJ;FIRST_EVAL;C_ID;C_NAME;C_TYPE;CV_REDEF;CV_TYPE;CV_VALUE;CV_TIME;DV_UNDEF;DV_TYPE;DV_VALUE;DV_TIMEID
CALC-ERRDIF;$11427[1]^5;FALSE;11717;P._SysProf.Server.UsedMemPerc;CHANGE;FALSE;INT;(invalid);30.05.2013 09:55:08.499;FALSE;INT;(invalid);30.05.2013 09:55:11.520
CALC-ERRDIF;$11427[2]^5;FALSE;11717;P._SysProf.Server.UsedMemPerc;CHANGE;FALSE;INT;(invalid);30.05.2013 09:55:08.499;FALSE;INT;(invalid);30.05.2013 09:55:11.520
CALC-ERRDIF;$11427[3]^5;FALSE;11717;P._SysProf.Server.UsedMemPerc;CHANGE;FALSE;INT;(invalid);30.05.2013 09:55:08.499;FALSE;INT;(invalid);30.05.2013 09:55:11.520
CALC-ERRDIF;$11427[4]^5;FALSE;11717;P._SysProf.Server.UsedMemPerc;CHANGE;FALSE;INT;(invalid);30.05.2013 09:55:08.499;FALSE;INT;(invalid);30.05.2013 09:55:11.520
CALC-ERRDIF;$11427[5]^5;FALSE;11717;P._SysProf.Server.UsedMemPerc;CHANGE;FALSE;INT;(invalid);30.05.2013 09:55:08.499;FALSE;INT;(invalid);30.05.2013 09:55:11.521
CALC-ERRDIF;$11427[6]^5;FALSE;11717;P._SysProf.Server.UsedMemPerc;CHANGE;FALSE;INT;(invalid);30.05.2013 09:55:08.499;FALSE;INT;(invalid);30.05.2013 09:55:11.521
...

Na začiatku výpisu je vždy volaný tell príkaz a čas, kedy bol spustený. Nasleduje špecifický výpis, ktorý ma v úvode hlavičku CSV dát. Každej hodnote, obsahujúcej chybové alebo špeciálne príznaky, potom zodpovedá jednoriadkový výpis, ktorý začína príznakom, ktorý bol pri vyhodnocovaní naposledy vyhodnotený (má najvyššiu dôležitosť, začína prefixom CALC-). Nasleduje cieľová hodnota štruktúrovanej premennej vo formáte $[RowNumber]^ColIndex, či už prebehol prvý prepočet počítaného bodu (FIRST_EVAL: na SBS-e stále True), jeho ID, názov a typ, či je hodnota v stave prepočítavania (CV_REDEF: na SBS-e po prvom prepočte stále True), typ, hodnota a dátum prepočtu, či cieľová hodnota ešte nikdy neprišla z D2000 Systém-u (DV_UNDEF), jej typ, hodnota a časová pečiatka.


3. typ výpisu (je zadaný parameter Detail alebo Debug a je presne vymedzený aj konkrétny cieľový stĺpec štruktúrovanej premennej)

Vo výstupe budú podrobné informácie pre každú hodnotu štruktúrovaného počítaného bodu, obsahujúcu chybové príznaky, ak je zadaný parameter Detail, alebo podrobné informácie o všetkých hodnotách, ak je zadaný parameter Debug.

Príklad 3

Tell Command: CHECK_DESTID_VALUES 11427 5 DETAIL
Start Time: 03.06.2013 12:21:34.864
CNT_NAME;D_VOBJ;FIRST_EVAL;C_ID;C_NAME;C_TYPE;CV_REDEF;CV_TYPE;CV_VALUE;CV_TIME;DV_UNDEF;DV_TYPE;DV_VALUE;DV_TIME
[Calc]
  ID                   : $11717[1]
  FirstEval            : FALSE
  bDestValUnDef        : FALSE
  bDestValReClc        : FALSE
  [Info]
    Id                 : 11717
    Name               : P._SysProf.Server.UsedMemPerc
    Descript           : Server - % vyuzitia pamate
    ParentId           : 28
    Value_Type         : CE
    ActRefNr           : 1
    PasRefNr           : 0
    CreateTime         : (null)
    ModifyTime         : 24.08.2010 17:48:17.263
  [Data]
    RECAL_REQ          : CHANGE
    PERIOD             : 0
    OFFSET             : 0
    START_VAL          : 
    TriggerId          : 
    TriggerTyp         : TVALUE
    InvertTrig         : FALSE
    MonotonicTime      : FALSE
    UTC_Offset         : 1
    DestId             : $11427^5
    IgnoreInvalid      : FALSE
    TimeFilter         : 0
  [Alarm Data]
    Row                : 0
    Col                : 0
    Alarm              : 
    Monitor            : 
    KvitReq            : 
    Critical           : 
    Timeout            : 0
    Silent             : FALSE
    SignalMonitor      : FALSE
    SignalAlarm        : FALSE
    SignalCritical     : FALSE
    IgnoreInvalid      : FALSE
    ProcAlarmShowMasks : 
  [Value]
    GValTyp            : INT (Integer)
    Status             : NOACKVALUE
    LimitStatus        : INLIMIT
    ProcAlarmStatus    : NOALARM
    ValTyp             : CE
    Flags              : F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F
    ValTime            : 30.05.2013 09:55:48.296
    AlarmTime          : (null)
    Value              : (invalid)
  [LastVal]
    GValTyp            : INT (Integer)
    Status             : NOACKVALUE
    LimitStatus        : INLIMIT
    ProcAlarmStatus    : NOALARM
    ValTyp             : CE
    Flags              : F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F
    ValTime            : 30.05.2013 09:55:08.499
    AlarmTime          : (null)
    Value              : (invalid)
  [DestVal]
    GValTyp            : INT (Integer)
    Status             : NOACKVALUE, MANUAL
    LimitStatus        : INLIMIT
    ProcAlarmStatus    : NOALARM
    ValTyp             : INT
    Flags              : F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F
    ValTime            : 30.05.2013 09:55:11.520
    AlarmTime          : (null)
    Value              : (invalid)
  LL_Stat              : TRUE
  VLL_Stat             : TRUE
  HL_Stat              : TRUE
  VHL_Stat             : TRUE
  Trigger              : FALSE
  calcCounter          : 3
  nvCounter            : 1
  ShadowList           : 0
  OnlyMyRow            : TRUE
  CalcTime             : (null)
  LastCalcTime         : (null)
  bAllwaysInLimits     : TRUE
  FirstAfterRDSw       : FALSE
  ActEvalTime          : 30.05.2013 09:55:11.509
  PocitajTime          : 30.05.2013 09:55:48.296
...
Write a comment...