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.
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. |
Kotva | ||||
---|---|---|---|---|
|
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:
Kotva | ||||
---|---|---|---|---|
|
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 $HOBJ^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.
Kotva | ||||
---|---|---|---|---|
|
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.
Kotva | ||||
---|---|---|---|---|
|
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 ...