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