The command enables comparison of the values of target columns (of structured variables), configured in the eval tags, with the values that were calculated by D2000 Calc. The calculation is done by calling the Tell command CHECK_DESTID_VALUES [DestId [ColIndex]] [DETAIL] [FlagList] in D2000 Calc.

When specifying the particular object of the Structured variable type, for which the comparison should be done, the value of the parameter DestId, or also ColIndex for the particular column, must be non-zero. These parameters are followed by the optional keywords (named FlagList parameter) that enable the organization of the final output.

Note: The term "value of eval tag" (or abbreviated "value") will be used below in terms of the value that is intended for calculation for a row of a target column in the structured variable. One eval tag has several values. It depends on the number of rows of target columns in the structured variable.

List of keywords FlagList (written in consecutive order and separated by blank space, the detailed meaning is described in the article Procedure to check the eval tags):

KeywordMeaning
DetailDisplays detailed information about differences in the compared values (they contain an error or special flags).
DebugThe same meaning as Detail, but when writing ColIndex, it displays also the compared value without flags.
Ignore_TimeIgnores the timestamps of the compared values (for SBS this option is always enabled).
ReCalc0sCompares the values no matter when the eval tag was calculated. The default value is 10s.
ReCalc1mDoes not compare the values if the eval tag was calculated before less than 1 minute and the response has not been received from the D2000 System yet. The default value is 10s.


Procedure to check the eval tags

It checks only those eval tags with the defined reference to the target column of the structured variable.


1. type of log (neither Detail nor Debug parameters are set)

When necessary, you may narrow the selection by defining the DestID parameter for the structured variable, or the ColIdex parameter for the particular target column.

Examples:

Example 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)

At the beginning of the log, there is always a TELL command name and the time when it was started. This is followed by the specific record, which contains a header of CSV data. Just one row with data in CSV format is assigned to each eval tag with the defined target column. This row represents either debugging information (green color) or an error message (red color).
Each eval tag contains a consecutive number for row (the number of rows is equal to the number of eval tags with the defined target column of structured variable), the ID of the eval tag, its name, type, and filled target column in the format $HOBJ^ColIndex. The special counters come after this column in this order:

  • COUNT - total number of values for given structured eval tag,
  • NoEval - value that has not been calculated yet,
  • ReCalc - value that was calculated before less than n seconds (default is n=10s, it can be changed to 60s by ReCalc1m or disabled by ReCalc0s),
  • ErrInv - any information about the given value has never been received from the D2000 Server yet,
  • ErrCnv - the recalculated value is invalid because the conversion from the value that is calculated by the D2000 Calc to the value that is filled in a structured variable does not exist because it is of a different type,
  • ErrDiff - the value that has been calculated by the D2000 Calc is compared with the value that is registered in the D000 Calc from the D2000 System.

Rules:

  • none of the counters can be greater than the value in COUNT,
  • the flags are evaluated sequentially from top to bottom,
  • if the value has a NoEval flag, it is also compared with the value from the D2000 System (the value may have still an ErrCnv flag or ErrDiff),
  • if the value has a ReCalc flag, other flags will not be evaluated,
  • if the value has an ErrInv flag, other flags will not be evaluated,
  • if the value has an ErrCnv flag, it compares the value registered in the D2000 System and the invalid value (the value can even acquire an ErrDiff flag),
  • if the value has an ErrDiff flag, it means that the values differ and it is the main debugging error
  • when comparing the values, there are ignored these flags:
    • whether the value is manual,
    • value for indirect,
    • if it is SBS or Ignore_Time has been entered, it ignores also the value time;
  • the row in the log represents the debugging information if ErrInv, ErrCnv, and ErrDiff are null, otherwise, it represents the error message.

At the end of the log, there is a summary. Before starting the tell command with other parameters, you should check the error flags (cumulative ErrInv, ErrCnv, and ErrDiff) and special flags (cumulatively NoEval and ReCalc). If there are eval tags that fill the same destination column of the structure variable, a warning occurs even before this log.


2. type of log (Detail or Debug parameter is entered, but the particular destination column of structured variable is not defined)

Tell command without the parameters allowed to find out the number of error flags and special flags (see the summary at the end of a log of 1. example). If their sum is convenient because it defines the maximum number of rows of the next log, the tell command without DestID can be called for the structured variable. In the output, one row will correspond to each value of the structured eval tag, which contains error flags or special flags. If it contains special flags only,  it will be in the form of a warning, but if it contains both error and special flags, the row will represent the error message.

Example 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
...

At the beginning of the log, there is always the called TELL command and time, when it was started. This is followed by the specific record, which contains the header of CSV data. A one-row record, which starts with a flag that was evaluated as the last (it is the most important and starts with the CALC- prefix) corresponds to each value that contains the error or special flags. This is followed by the destination value of a structured variable in the format $[RowNumber]^ColIndex, the information about the first evaluation of the I/O tag (FIRST_EVAL: on SBS it is still True), its ID, name and type, whether the value is recalculated (CV_REDEF: on SBS it is still True after the first recalculation), type, value and date of recalculation, whether the destination value has never been received from the D2000 System (DV_UNDEF), its type, value and time stamp.


3. type of log (Detail or Debug parameter is entered and the destination column of structured variable is exactly defined)

The output file will contain either the detailed information for each value of the structured I/O tag, which contains the error flags if the Detail parameter is specified, or detailed information about all values if the Debug parameter is entered.

Example 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
...
Napíšte komentár