Support for Version 7.20
- Last UpdatedAug 04, 2025
- 2 minute read
Active Alarm page can be used to display time stamped event data received from the event source. However, to display the time quality of a time stamped event on the Active Alarm page, a separate variable tag needs to be configured in addition to the time stamped digital variable tag. This new variable tag should be created with the address <item_ID>!Q and it represents the overall quality of the original digital variable tag, where:
<item_ID> refers to the original digital variable tag address.
The value of this tag will include time quality information: the low 8 bits represent the Quality, Substatus and Limit status according to the OPC specification; the high 8 bits represent time quality. Details of the time quality values can be found in the section on Time Quality.
In addition, a custom Cicode function will need to be written to return a string representation of time quality. To display time quality in the runtime environment this Cicode function can be placed in the "Alarm Desc" field when configuring the time stamped digital alarm in configuration time. This time quality will be displayed at runtime under the "Desc" column on the Active Alarm page.
The Cicode function should utilize the high 8 bits and translate this to a string representing the description of the time quality.
For example:
STRING
FUNCTION GetTimeQuality(INT iQuality)
INT iHighByte = HighByte(iQuality);
SELECT CASE iHighByte
CASE 2 TO 24
RETURN "Time Accuracy ("+IntToStr(iHighByte)+")";
CASE 27
RETURN "Clock In Sync ("+IntToStr(iHighByte)+")";
CASE 28
RETURN "TSInit ("+IntToStr(iHighByte)+")";
CASE 29
RETURN "IO Channel Error ("+IntToStr(iHighByte)+")";
CASE 30
RETURN "Invalid ("+IntToStr(iHighByte)+")";
CASE 31
RETURN "Unspecified ("+IntToStr(iHighByte)+")";
CASE 32 TO 63
RETURN "Clock Not Synchronized ("+IntToStr(iHighByte)+")";
CASE 64 TO 127
RETURN "Clock Failure ("+IntToStr(iHighByte)+")";
CASE 128 TO 255
RETURN "Leaps Seconds Known ("+IntToStr(iHighByte)+")";
CASE ELSE
RETURN "Unknown ("+IntToStr(iHighByte)+")";
END SELECT
END
For the alarm configuration, enter the following in the alarm's "Desc" field:
GetTimeQuality(Tag1_TSQuality),
where:
Tag1_TSQuality is the associated time quality tag.