Errata exists for this version of the document.
The goal of a well-designed alarm system is to ensure that an Operator is made aware of issues, both critical and non-critical, but is not overwhelmed by alarms/alerts or other messages. When designing an alarm system, criteria are defined for alarm rates and general performance of the system at various levels (Operator station, plant area, overall system etc.). Evaluating the performance of an alarm system with regard to these design criteria requires the collection of alarm metrics. These metrics provide summaries of alarm rates and other alarm related information.
This section defines a standard structure for metrics. This structure can be implemented at multiple levels allowing a Server to collect metrics as needed. For example, an Object of this type might be added to the Server Object providing a summary of the Alarm performance for the entire Server. An instance might also be provided on an Object that includes a HasNotifier hierarchy, such as a tank Object. In this case, it would provide the summary of all of the Alarms that are part of the tank HasNotifier hierarchy.
This ObjectType is used for metric information. The ObjectType is formally defined in Table 108.
Table 108 – AlarmMetricsType Definition
Attribute |
Value |
|||||
BrowseName |
AlarmMetricsType |
|||||
IsAbstract |
False |
|||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
ModellingRule |
|
Subtype of the BaseObjectType defined in OPC 10000-5. |
||||||
HasComponent |
Variable |
AlarmCount |
UInt32 |
BaseDataVariableType |
Mandatory |
|
HasComponent |
Variable |
StartTime |
UtcTime |
BaseDataVariableType |
Mandatory |
|
HasComponent |
Variable |
MaximumActiveState |
Duration |
BaseDataVariableType |
Mandatory |
|
HasComponent |
Variable |
MaximumUnAck |
Duration |
BaseDataVariableType |
Mandatory |
|
HasComponent |
Variable |
CurrentAlarmRate |
Double |
AlarmRateVariableType |
Mandatory |
|
HasComponent |
Variable |
MaximumAlarmRate |
Double |
AlarmRateVariableType |
Mandatory |
|
HasComponent |
Variable |
MaximumReAlarmCount |
UInt32 |
BaseDataVariableType |
Mandatory |
|
HasComponent |
Variable |
AverageAlarmRate |
Double |
AlarmRateVariableType |
Mandatory |
|
HasComponent |
Method |
Reset |
|
|
Mandatory |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
An instance of AlarmMetricsType can be added, with a HasComponent reference, to any Object that has its “SubscribeToEvents” bit set within the EventNotifier Attribute. It will collect the Alarm metrics for all Alarm sources assigned to this notifier Object. For example, if Alarm metrics are desired for Tank A Object (see Figure B.3) that is in the HasNotifier hierarchy than an instance of this object would be referenced by the Tank A object. When this object is associated with the Server Object it will report Alarm metrics for the entire Server.
AlarmCount is the total count of Alarms since the last restart of the system or reset of this counter.
StartTime is the time at which the Server started or the time of the last Reset Method invocation, whichever is later.
MaximumActiveState is the maximum time for which an Alarm was in the active state.
MaximumUnAck is the maximum time for which an Alarm was in the unacknowledged state.
CurrentAlarmRate is the sum of Alarms that occurred in the last Rate number of minutes (see 8.3). This sum should not include nuisance Alarms (i.e. chattering alarms). It is updated every Rate number of minutes.
MaximumAlarmRate is the maximum Alarm rate detected since the start of the Server, where the rate is calculated as for CurrentAlarmRate.
MaximumReAlarmCount is the maximum ReAlarmCount for any Alarm.
AverageAlarmRate is the average Alarm rate since the start of the Server or the last invocation of Reset Method, where the rate is calculated as for CurrentAlarmRate.
Reset is a Method that will reset all of the counters, rates or times in this Object
This variable type provides a unit field for the rate for which the Alarm diagnostic applies.
Table 109 – AlarmRateVariableType Definition
Attribute |
Value |
|||||||||
BrowseName |
AlarmRateVariableType |
|||||||||
IsAbstract |
False |
|||||||||
ValueRank |
Scalar |
|||||||||
DataType |
Double |
|||||||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
ModellingRule |
|||||
HasProperty |
Variable |
Rate |
UInt16 |
PropertyType |
Mandatory |
Rate – is the number of minutes over which the item is calculated.
The Reset Method is used reset all of the counters, rates and time in the Object
Signature
Reset();
Method Result Codes in Table 43 (defined in Call Service)
Table 110 – Suppress result codes
Result Code |
Description |
Bad_MethodInvalid |
The MethodId provided does not correspond to the ObjectId provided. See OPC 10000-4 for the general description of this result code. |
Bad_NodeIdInvalid |
Used to indicate that the specified ObjectId is not valid. See OPC 10000-4 for the general description of this result code. |
Comments
The Reset Method will clear all setting in the diagnostic object and initialize them to zero.
Table 111 specifies the AddressSpace representation for the Reset Method.
Table 111 – Reset Method AddressSpace definition
Attribute |
Value |
||||||
BrowseName |
Reset |
||||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
ModellingRule |
||
|
|
|
|
|
|
||
AlwaysGeneratesEvent |
ObjectType |
AuditUpdateMethodEventType |
Defined in OPC 10000-5 |