Figure 1414 informally describes the AlarmConditionType, its sub-types and where it is in the hierarchy of Event Types.
Figure 1414 – AlarmConditionType Hierarchy Model
The AlarmConditionType extends the AcknowledgeableConditionType by introducing an ActiveState, SuppressedState and ShelvingState. It also adds the ability to set a delay time, re-alarm time, Alarm groups and audible Alarm settings. The Alarm model is illustrated in Figure 1515. This illustration is not intended to be a complete definition. It is formally defined in Table 4040 and Table 4141.
Table 4040 – AlarmConditionType definition
|
Attribute |
Value |
||||
|
BrowseName |
AlarmConditionType |
||||
|
IsAbstract |
False |
||||
|
References |
Node Class |
BrowseName |
DataType |
TypeDefinition |
Modelling Rule |
|
Subtype of the AcknowledgeableConditionType defined in clause 5.7.2 |
|||||
|
HasComponent |
Variable |
ActiveState |
LocalizedText |
TwoStateVariableType |
Mandatory |
|
HasProperty |
Variable |
InputNode |
NodeId |
PropertyType |
Mandatory |
|
HasComponent |
Variable |
SuppressedState |
LocalizedText |
TwoStateVariableType |
Optional |
|
HasComponent |
Variable |
OutOfServiceState |
LocalizedText |
TwoStateVariableType |
Optional |
|
HasComponent |
Object |
ShelvingState |
|
ShelvedStateMachineType |
Optional |
|
HasProperty |
Variable |
SuppressedOrShelved |
Boolean |
PropertyType |
Mandatory |
|
HasProperty |
Variable |
MaxTimeShelved |
Duration |
PropertyType |
Optional |
|
|
|
|
|
|
|
|
HasProperty |
Variable |
AudibleEnabled |
Boolean |
PropertyType |
Optional |
|
HasComponent |
Variable |
AudibleSound |
AudioDataType |
AudioVariableType |
Optional |
|
HasComponent |
Variable |
SilenceState |
LocalizedText |
TwoStateVariableType |
Optional |
|
|
|
|
|
|
|
|
HasProperty |
Variable |
OnDelay |
Duration |
PropertyType |
Optional |
|
HasProperty |
Variable |
OffDelay |
Duration |
PropertyType |
Optional |
|
|
|
|
|
|
|
|
HasComponent |
Variable |
FirstInGroupFlag |
Boolean |
BaseDataVariableType |
Optional |
|
HasComponent |
Object |
FirstInGroup |
|
AlarmGroupType |
Optional |
|
HasComponent |
Variable |
LatchedState |
LocalizedText |
TwoStateVariableType |
Optional |
|
HasAlarmSuppressionGroup |
Object |
<AlarmGroup> |
|
AlarmGroupType |
OptionalPlaceholder |
|
HasProperty |
Variable |
ReAlarmTime |
Duration |
PropertyType |
Optional |
|
HasComponent |
Variable |
ReAlarmRepeatCount |
Int16 |
BaseDataVariableType |
Optional |
|
|
|
|
|
|
|
|
HasComponent |
Method |
Reset |
Defined in 5.8.5 |
Optional |
|
|
HasComponent |
Method |
Reset2 |
Optional |
||
|
HasComponent |
Method |
Silence |
Defined in 5.8.7 |
Optional |
|
|
HasComponent |
Method |
Suppress |
Defined in 5.8.8 |
Optional |
|
|
HasComponent |
Method |
Suppress2 |
Defined in 5.8.9 |
Optional |
|
|
HasComponent |
Method |
Unsuppress |
Defined in 5.8.10 |
Optional |
|
|
HasComponent |
Method |
Unsuppress2 |
Defined in 5.8.11 |
Optional |
|
|
HasComponent |
Method |
RemoveFromService |
Defined in 5.8.12 |
Optional |
|
|
HasComponent |
Method |
RemoveFromService2 |
Defined in 5.8.13 |
Optional |
|
|
HasComponent |
Method |
PlaceInService |
Defined in 5.8.14 |
Optional |
|
|
HasComponent |
Method |
PlaceInService2 |
Defined in 5.8.15 |
Optional |
|
|
HasComponent |
Method |
GetGroupMemberships |
Defined in 5.8.16 |
Optional |
|
|
|
|
|
|
|
|
|
HasSubtype |
ObjectType |
DiscreteAlarmType |
|
|
|
|
HasSubtype |
ObjectType |
LimitAlarmType |
|
|
|
|
HasSubtype |
ObjectType |
DiscrepancyAlarmType |
|
|
|
|
|
|||||
|
ConformanceUnits |
|||||
|
A & C Alarm |
|||||
Table 4141 – AlarmConditionType Additional Subcomponents
|
BrowsePath |
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
Others |
|
ActiveState |
HasProperty |
Variable |
TrueState |
LocalizedText |
PropertyType |
|
|
ActiveState |
HasProperty |
Variable |
FalseState |
LocalizedText |
PropertyType |
|
|
SuppressedState |
HasProperty |
Variable |
TrueState |
LocalizedText |
PropertyType |
|
|
SuppressedState |
HasProperty |
Variable |
FalseState |
LocalizedText |
PropertyType |
|
|
OutOfServiceState |
HasProperty |
Variable |
TrueState |
LocalizedText |
PropertyType |
|
|
OutOfServiceState |
HasProperty |
Variable |
FalseState |
LocalizedText |
PropertyType |
|
|
SilenceState |
HasProperty |
Variable |
TrueState |
LocalizedText |
PropertyType |
|
|
SilenceState |
HasProperty |
Variable |
FalseState |
LocalizedText |
PropertyType |
|
|
LatchedState |
HasProperty |
Variable |
TrueState |
LocalizedText |
PropertyType |
|
|
LatchedState |
HasProperty |
Variable |
FalseState |
LocalizedText |
PropertyType |
|
The empty “ Others” column indicates that no ModellingRule applies.
The AlarmConditionType inherits all Properties of the AcknowledgeableConditionType. The following states are sub-states of the True EnabledState.
ActiveState/Id when set to True indicates that the situation the Condition is representing currently exists. When a Condition instance is in the inactive state (ActiveState/Id when set to False) it is representing a situation that has returned to a normal state. The transitions of Conditions to the inactive and Active states are triggered by Server specific actions. Subtypes of the AlarmConditionType specified later in this document will have sub-state models that further define the Active state. Recommended state names are described in A.1. In the event of a restart of an AlarmManager, the AlarmManager shall recover the ActiveState.
The InputNode Property provides the NodeId of the Variable the Value of which is used as primary input in the calculation of the Alarm state. If this Variable is not in the AddressSpace, a NULL NodeId shall be provided. In some systems, an Alarm may be calculated based on multiple Variables Values; it is up to the system to determine which Variable’s NodeId is used.
SuppressedState, OutOfServiceState and ShelvingState together allow the suppression of Alarms on display systems. These three suppressions are generally used by different personnel or systems at a plant, i.e. automatic systems, maintenance personnel and Operators.
SuppressedState is used internally by a Server to automatically suppress Alarms due to system specific reasons. For example, a system may be configured to suppress Alarms that are associated with machinery that is in a state such as shutdown. For example, a low level Alarm for a tank that is currently not in use might be suppressed. Recommended state names are described in A.1. In the event of a restart of an AlarmManager, the AlarmManager should recover the SuppressedState. If the system cannot determine if the alarm is Suppressed, the state shall be set to false (not Suppressed).
OutOfServiceState is used by maintenance personnel to suppress Alarms due to a maintenance issue. For example, if an instrument is taken out of service for maintenance or is removed temporarily while it is being replaced or serviced the item would have the OutOfServiceState set. Recommended state names are described in A.1. In the event of a restart of an AlarmManager, the AlarmManager should recover the OutOfServiceState. If the system cannot determine if the alarm is OutOfService, the state shall be set to false (not OutOfService).
ShelvingState suggests whether an Alarm shall (temporarily) be prevented from being displayed to the user. It is quite often used by Operators to block nuisance Alarms. The ShelvingState is defined in 5.8.17.
When an Alarm has any or all of the SuppressedState, OutOfServiceState or ShelvingState set to True, the SuppressedOrShelved property shall be set True and this Alarm is then typically not displayed by the Client. State transitions associated with the Alarm do occur, but they are not typically displayed by the Clients as long as the Alarm remains in any of the SuppressedState, OutOfServiceState or Shelved state.
The optional Property MaxTimeShelved is used to set the maximum time that an Alarm Condition may be shelved. The value is expressed as duration. Systems can use this Property to prevent permanent Shelving of an Alarm. If this Property is present, it will be an upper limit on the duration passed into a TimedShelve Method call. If a value that exceeds the value of this Property is passed to the TimedShelve Method, then a Bad_ShelvingTimeOutOfRange error code is returned on the call. If this Property is present, it will also be enforced for the OneShotShelved state, in that an Alarm Condition will transition to the Unshelved state from the OneShotShelved state if the duration specified in this Property expires following a OneShotShelve operation without a change of any of the other items associated with the Condition.
The optional Property AudibleEnabled is a Boolean that indicates if the current state of this Alarm includes an audible Alarm.
The optional Property AudibleSound contains the sound file that shall be played when an audible Alarm is generated. This file would be play/generated as long as the Alarm is active and unacknowledged, unless the silence StateMachine is included, in which case it may also be silenced by this StateMachine.
The SilenceState is used to suppress the generation of the audible sound. Typically, it is used when an Operator silences all Alarms on a screen, but will acknowledge the Alarms individually. Silencing an Alarm shall silence the Alarm on all systems (screens) that it is being reported on. Not all Clients will make use of this StateMachine, but it allows multiple Clients to synchronize audible Alarm states. Acknowledging an Alarm shall automatically silence an Alarm. In the event of a restart of an AlarmManager, the AlarmManager should recover the SilenceState. If the system cannot determine if the Alarm is silenced, it shall set the SilenceState, based on the AcknowledgeState. If it is Acknowledged, it is silenced, If it has not been Acknowledged, it shall not be silenced.
The OnDelay and OffDelay Properties can be used to eliminate nuisance Alarms. The OnDelay is used to avoid unnecessary Alarms when a signal temporarily overshoots its setpoint, thus preventing the Alarm from being triggered until the signal remains in the Alarm state continuously for a specified length of time (OnDelay time). The OffDelay is used to reduce chattering Alarms by locking the Alarm indication for a certain holding period after the condition has returned to normal. I.e., the Alarm shall stay active for the OffDelay time and shall not regenerate if it returns to active in that period. If the Alarm remains in the inactive zone for OffDelay it will then become inactive.
The optional variable FirstInGroupFlag is used together with the FirstInGroup object. The FirstInGroup Object is an instance of an AlarmGroupType that groups a number of related Alarms. The FirstInGroupFlag is set on the Alarm instance that was the first Alarm to trigger in a FirstInGroup. If this variable is present, then the FirstInGroup shall also be present. These two nodes allow an alarming system to determine which Alarm in the list was the trigger. It is commonly used in situations where Alarms are interrelated and usually multiple Alarms occur. For example, vibration sensors in a turbine, usually all sensors trigger if any one triggers, but what is important for an Operator is the first sensor that triggered.
The LatchedState Object, if present, indicates that this Alarm supports being latched. The Alarm will remain with a retain bit of True until it is no longer active, is acknowledged, is confirmed (if ConfirmedState is provided) and is reset. The Reset Method, if called while active has no effect on the Alarm and is ignored and an error of Bad_InvalidState is return on the call. The Object indicates the current state, latched or not latched. Recommended state names are described in A.1. If this Object is provided the Reset Method shall be provided. In the event of a restart of an AlarmManager, the AlarmManager shall recover the LatchedState.
An Alarm instance may contain HasAlarmSuppressionGroup reference(s) to instance(s) of AlarmGroupType (or subtype of it). Each instance is an AlarmSuppressionGroup. When an AlarmSuppressionGroup goes active, the Server shall set the SuppressedState of the Alarm containing the HasAlarmSuppressionGroup reference to True. When all of referenced AlarmSuppressionGroups are no longer active, then the Server shall set SuppressedState to False. A single AlarmSuppressionGroup can manage multiple Alarms. AlarmSuppressionGroups are used to control Alarm floods and to help manage Alarms.
ReAlarmTime if present sets a time that is used to bring an Alarm back to the top of an Alarm list. If an Alarm has not returned to normal within the provided time (from when it last was alarmed), the Server will generate a new Alarm for it (as if it just went into alarm). If it has been silenced it shall return to an un-silenced state, if it has been acknowledged it shall return to unacknowledged. The Alarm active time is set to the time of the re-alarm.
ReAlarmRepeatCount if present counts the number times an Alarm was re-alarmed. Some smart alarming system would use this count to raise the priority or otherwise generate additional or different annunciations for the given Alarm. The count is reset when an Alarm returns to normal.
Silence Method can be used to silence an instance of an Alarm. It is defined in 5.8.7.
Suppress and Suppress2 Method can be used to suppress an instance of an Alarm. Most Alarm suppression occurs via advanced alarming, but this method allows additional access to suppress a particular Alarm instance. Additional details are provided in the definition in 5.8.8 and 5.8.9
Unsuppress and Unsuppress2 Method can be used to remove an instance of an Alarm from SuppressedState. Additional details are provided in the definition in 5.8.10 and 5.8.11.
PlaceInService and PlaceInService2 Method can be used to remove an instance of an Alarm from OutOfServiceState. It is defined in 5.8.14 and 5.8.15.
RemoveFromService and RemoveFromService2 Method can be used to place an instance of an Alarm in OutOfServiceState. It is defined in 5.8.12 and 5.8.13.
Reset Method is used to clear a latched Alarm. It is defined in 5.8.5. If this Object is provided the LatchedState Object shall also be provided.
More details about the Alarm Model and the various states can be found in Sub clause 4.8. and in Annex E.
The AlarmGroupType provides a simple manner of grouping Alarms. This grouping can be used for Alarm suppression or for identifying related Alarms. The actual usage of the AlarmGroupType is specified where it is used.
Table 4242 – AlarmGroupType definition
|
Attribute |
Value |
||||
|
BrowseName |
AlarmGroupType |
||||
|
IsAbstract |
False |
||||
|
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
ModellingRule |
|
Subtype of the FolderType defined in 10000-5 |
|||||
|
AlarmGroupMember |
Object |
<AlarmConditionInstance> |
|
AlarmConditionType |
OptionalPlaceholder |
|
ConformanceUnits |
|||||
|
A & C First in Group Alarm |
|||||
|
A & C Suppression Group |
|||||
The instance of an AlarmGroupType should be given a name and description that describes the purpose of the Alarm group.
The AlarmGroupType instance will contain a list of instances of AlarmConditionType or sub type of AlarmConditionType referenced by AlarmGroupMember references. At least one instance of AlarmConditionType (or a subtype of it) shall be present in an instance of an AlarmGroupType.
This is a subtype of AlarmGroupType that can be used to suppress other alarms. This subtype of AlarmGroup extends the AlarmGroupType to allow the addition of Variables that have a Boolean DataType. The Variable can be thought of as representing the Id of the ActiveState of an Alarm, i.e. when any of the included Variables have a value of true the AlarmSuppressionGroup is active.
Table 4343 – AlarmSuppressionGroupType definition
|
Attribute |
Value |
||||
|
BrowseName |
AlarmSuppressionGroupType |
||||
|
IsAbstract |
False |
||||
|
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
ModellingRule |
|
Subtype of the AlarmGroupType |
|||||
|
AlarmSuppressionGroupMember |
Variable |
<DigitalVariable> |
Boolean |
BaseDataVariableType |
OptionalPlaceholder |
|
AlarmSuppressionGroupMember |
Object |
<AlarmCondition> |
|
AlarmConditionType |
OptionalPlaceholder |
|
ConformanceUnits |
|||||
|
A & C Suppression Group |
|||||
The instance of an AlarmSuppressionGroupType should be given a name and description that describes the purpose of the Alarm group.
The AlarmSuppressionGroupType instance will contain a list of instances of AlarmConditionType or sub type of AlarmConditionType or BaseDataVariableType with a DataType of Boolean referenced by AlarmSuppressionGroupMember references. At least one these instances shall be present in an instance of an AlarmSupressionGroupType.
The Reset Method is used reset a latched Alarm instance. It is only available on an instance of an AlarmConditionType that exposes the LatchedState. Normally, the NodeId of the Object instance is passed as the ObjectId to the Call Service. However, some Servers do not expose Condition instances in the AddressSpace. Therefore, Servers shall allow Clients to call the Reset Method by specifying ConditionId as the ObjectId. The Method cannot be called with an ObjectId of the AlarmConditionType Node.
Signature
Reset();
This method has no arguments.
Method result codes in Table 4444 (defined in Call service)
Table 4444 – Reset result codes
|
Result Code |
Description |
|
Bad_MethodInvalid |
The MethodId provided does not correspond to the ObjectId provided. See 10000-4 for the general description of this result code. |
|
Bad_NodeIdInvalid |
Used to indicate that the specified ObjectId is not valid or that the Method was called on the AlarmConditionType Node. See 10000-4 for the general description of this result code. |
|
Bad_InvalidState |
The Alarm instance was not latched or is still active or still requires acknowledgement / confirmation. To reset an Alarm instance shall have been in Alarm, returned to normal and have been acknowledged/confirmed prior to being reset. |
Table 4545 specifies the AddressSpace representation for the Reset Method.
Table 4545 – Reset Method AddressSpace definition
|
Attribute |
Value |
||||
|
BrowseName |
Reset |
||||
|
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
ModellingRule |
|
|
|
|
|
|
|
|
AlwaysGeneratesEvent |
ObjectType |
AuditConditionResetEventType |
Defined in 5.10.11 |
||
|
|
|
|
|
||
|
ConformanceUnits |
|||||
|
A & C Latched State |
|||||
If Auditing is supported, this Method shall generate an Event of AuditConditionResetEventType for all invocations of the Method.
The Reset2 Method extends the Reset Method, by adding an optional Comment. For other functionality see the Reset Method definition.
Signature
Reset2(
[in] LocalizedTextComment
);
The parameters are defined in Table 4646.
Table 4646 – Reset2 Method parameters
|
Argument |
Description |
|
Comment |
A localized text that shall be applied to the Condition. |
If the Comment argument is NULL (both locale and text are empty) it shall be ignored and any existing comments will remain unchanged. To reset the comment, an empty text with a locale shall be provided.
Method result codes in Table 4747 (defined in Call service)
Table 4747 – Reset2 result codes
|
Result Code |
Description |
|
Bad_MethodInvalid |
The MethodId provided does not correspond to the ObjectId provided. See 10000-4 for the general description of this result code. |
|
Bad_NodeIdInvalid |
Used to indicate that the specified ObjectId is not valid or that the Method was called on the AlarmConditionType Node. See 10000-4 for the general description of this result code. |
|
Bad_InvalidState |
The Alarm instance was not latched or is still active or still requires acknowledgement / confirmation. To reset an Alarm Instance it shall have been in Alarm, and returned to normal and have been acknowledged/confirmed prior to being reset. |
|
Bad_InvalidArgument |
The Comment string provided exceeds the allowed length for the comment or is invalid in some other manner. |
Table 4848 specifies the AddressSpace representation for the Reset2 Method.
Table 4848 – Reset2 Method AddressSpace definition
|
Attribute |
Value |
||||
|
BrowseName |
Reset2 |
||||
|
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
ModellingRule |
|
HasProperty |
InputArguments |
Argument[] |
PropertyType |
Mandatory |
|
|
AlwaysGeneratesEvent |
ObjectType |
AuditConditionResetEventType |
Defined in 5.10.11 |
||
|
ConformanceUnits |
|||||
|
A & C Latched State |
|||||
If Auditing is supported, this Method shall generate an Event of AuditConditionResetEventType for all invocations of the Method.
The Silence Method is used silence a specific Alarm instance. It is only available on an instance of an AlarmConditionType that also exposes the SilenceState. Normally, the NodeId of the Object instance is passed as the ObjectId to the Call Service. However, some Servers do not expose Condition instances in the AddressSpace. Therefore, Servers shall allow Clients to call the Silence Method by specifying ConditionId as the ObjectId. The Method cannot be called with an ObjectId of the AlarmConditionType Node.
Signature
Silence();
This method has no arguments.
Method result codes in Table 4949 (defined in Call service)
Table 4949 – Silence result codes
|
Result Code |
Description |
|
Bad_MethodInvalid |
The MethodId provided does not correspond to the ObjectId provided. See 10000-4 for the general description of this result code. |
|
Bad_NodeIdInvalid |
Used to indicate that the specified ObjectId is not valid or that the Method was called on the AlarmConditionType Node. See 10000-4 for the general description of this result code. |
Comments
If the instance is not currently in an audible state, the command is ignored.
Table 5050 specifies the AddressSpace representation for the Silence Method.
Table 5050 – Silence Method AddressSpace definition
|
Attribute |
Value |
||||
|
BrowseName |
Silence |
||||
|
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
ModellingRule |
|
AlwaysGeneratesEvent |
ObjectType |
AuditConditionSilenceEventType |
Defined in 5.10.10 |
||
|
ConformanceUnits |
|||||
|
A & C Silencing |
|||||
If Auditing is supported, this Method shall generate an Event of AuditConditionSilenceEventType for all invocations of the Method.
The Suppress Method is used to suppress a specific Alarm instance. It is only available on an instance of an AlarmConditionType that also exposes the SuppressedState. This Method can be used to change the SuppressedState of an Alarm and overwrite any suppression caused by an associated AlarmSuppressionGroup. This Method works in parallel with any suppression triggered by an AlarmSuppressionGroup, in that if the Method is used to suppress an Alarm, an AlarmSuppressionGroup might clear the suppression.
Normally, the NodeId of the object instance is passed as the ObjectId to the Call Service. However, some Servers do not expose Condition instances in the AddressSpace. Therefore, Servers shall allow Clients to call the Suppress Method by specifying ConditionId as the ObjectId. The Method cannot be called with an ObjectId of the AlarmConditionType Node.
Signature
Suppress();
Method Result Codes in Table 5151 (defined in Call Service)
Table 5151 – Suppress result codes
|
Result Code |
Description |
|
Bad_MethodInvalid |
The MethodId provided does not correspond to the ObjectId provided. See 10000-4 for the general description of this result code. |
|
Bad_NodeIdInvalid |
Used to indicate that the specified ObjectId is not valid or that the Method was called on the AlarmConditionType Node. See 10000-4 for the general description of this result code. |
Comments
Suppress Method applies to an Alarm instance, even if it is not currently active.
Table 5252 specifies the AddressSpace representation for the Suppress Method.
Table 5252 – Suppress Method AddressSpace definition
|
Attribute |
Value |
||||
|
BrowseName |
Suppress |
||||
|
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
ModellingRule |
|
|
|
|
|
|
|
|
AlwaysGeneratesEvent |
ObjectType |
AuditConditionSuppressionEventType |
Defined in 5.10.4 |
||
|
ConformanceUnits |
|||||
|
A & C Suppression by Operator |
|||||
If Auditing is supported, this Method shall generate an Event of AuditConditionSuppressionEventType for all invocations of the Method.
The Suppress2 Method extends the Suppress Method, by adding an optional Comment. For other functionality see the Suppress Method definition.
Signature
Suppress2(
[in] LocalizedTextComment
);
The parameters are defined in Table 5353
Table 5353 – Suppress2 Method parameters
|
Argument |
Description |
|
Comment |
A localized text that shall be applied to the Condition. |
If the Comment argument is NULL (both locale and text are empty) it shall be ignored and any existing comments will remain unchanged. To reset the comment an empty text with a locale shall be provided.
Method Result Codes in Table 5151 (defined in Call Service)
Table 5454 – Suppress result codes
|
Result Code |
Description |
|
Bad_MethodInvalid |
The MethodId provided does not correspond to the ObjectId provided. See 10000-4 for the general description of this result code. |
|
Bad_NodeIdInvalid |
Used to indicate that the specified ObjectId is not valid or that the Method was called on the AlarmConditionType Node. See 10000-4 for the general description of this result code. |
|
Bad_InvalidArgument |
The Comment string provided exceeds the allowed length for the comment or is invalid in some other manner. |
Table 5555 specifies the AddressSpace representation for the Suppress2 Method.
Table 5555 – Suppress2 Method AddressSpace definition
|
Attribute |
Value |
||||
|
BrowseName |
Suppress2 |
||||
|
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
ModellingRule |
|
HasProperty |
InputArguments |
Argument[] |
PropertyType |
Mandatory |
|
|
AlwaysGeneratesEvent |
ObjectType |
AuditConditionSuppressionEventType |
Defined in 5.10.4
|
||
|
ConformanceUnits |
|||||
|
A & C Suppression2 by Operator |
|||||
If Auditing is supported, this Method shall generate an Event of AuditConditionSuppressionEventType for all invocations of the Method.
The Unsuppress Method is used to clear the SuppressedState of a specific Alarm instance. It is only available on an instance of an AlarmConditionType that also exposes the SuppressedState. This Method can be used to overwrite any suppression cause by an associated AlarmSuppressionGroup. This Method works in parallel with any suppression triggered by an AlarmSuppressionGroup, in that if the Method is used to clear the SuppressedState of an Alarm, any change in an AlarmSuppressionGroup might again suppress the Alarm.
Normally, the NodeId of the ObjectInstance is passed as the ObjectId to the Call Service. However, some Servers do not expose Condition instances in the AddressSpace. Therefore, Servers shall allow Clients to call the Unsuppress Method by specifying ConditionId as the ObjectId. The Method cannot be called with an ObjectId of the AlarmConditionType Node.
Signature
Unsuppress();
Method Result Codes in Table 5656 (defined in Call Service).
Table 5656 – Unsuppress result codes
|
Result Code |
Description |
|
Bad_MethodInvalid |
The MethodId provided does not correspond to the ObjectId provided. See 10000-4 for the general description of this result code. |
|
Bad_NodeIdInvalid |
Used to indicate that the specified ObjectId is not valid or that the Method was called on the AlarmConditionType Node. See 10000-4 for the general description of this result code. |
Comments
Unsuppress Method applies to an Alarm instance, even if it is not currently active.
Table 5757 specifies the AddressSpace representation for the Suppress Method.
Table 5757 – Unsuppress Method AddressSpace definition
|
Attribute |
Value |
||||
|
BrowseName |
Unsuppress |
||||
|
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
ModellingRule |
|
|
|
|
|
|
|
|
AlwaysGeneratesEvent |
ObjectType |
AuditConditionSuppressionEventType |
Defined in 5.10.4 |
||
|
ConformanceUnits |
|||||
|
A & C Suppression by Operator |
|||||
If Auditing is supported, this Method shall generate and event of AuditConditionSuppressionEventType for all invocations of the Method.
The Unsuppress2 Method extends the Suppress Method, by adding an optional Comment. For other functionality see the Unsuppress Method definition.
Signature
Unsuppress2(
[in] LocalizedTextComment
);
The parameters are defined in Table 5858.
Table 5858 – Unsuppress2 Method parameters
|
Argument |
Description |
|
Comment |
A localized text that shall be applied to the Condition. |
If the Comment argument is NULL (both locale and text are empty) it shall be ignored and any existing comments will remain unchanged. To reset the comment an empty text with a locale shall be provided.
Unsuppress2 Method applies to an Alarm instance, even if it is not currently active.
Method Result Codes in Table 5656 (defined in Call Service).
Table 5959 – Unsuppress result codes
|
Result Code |
Description |
|
Bad_MethodInvalid |
The MethodId provided does not correspond to the ObjectId provided. See 10000-4 for the general description of this result code. |
|
Bad_NodeIdInvalid |
Used to indicate that the specified ObjectId is not valid or that the Method was called on the AlarmConditionType Node. See 10000-4 for the general description of this result code. |
|
Bad_InvalidArgument |
The Comment string provided exceeds the allowed length for the comment or is invalid in some other manner. |
Table 6060 specifies the AddressSpace representation for the Unsuppress2 Method.
Table 6060 – Unsuppress2 Method AddressSpace definition
|
Attribute |
Value |
||||
|
BrowseName |
Unsuppress2 |
||||
|
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
ModellingRule |
|
HasProperty |
InputArguments |
Argument[] |
PropertyType |
Mandatory |
|
|
AlwaysGeneratesEvent |
ObjectType |
AuditConditionSuppressionEventType |
Defined in 5.10.4 |
||
|
ConformanceUnits |
|||||
|
A & C Suppression2 by Operator |
|||||
If Auditing is supported, this Method shall generate an Event of AuditConditionSuppressionEventType for all invocations of the Method.
The RemoveFromService Method is used to suppress a specific Alarm instance. It is only available on an instance of an AlarmConditionType that also exposes the OutOfServiceState. Normally, the NodeId of the object instance is passed as the ObjectId to the Call Service. However, some Servers do not expose Condition instances in the AddressSpace. Therefore, Servers shall allow Clients to call the RemoveFromService Method by specifying ConditionId as the ObjectId. The Method cannot be called with an ObjectId of the AlarmConditionType Node.
Signature
RemoveFromService();
Method result codes in Table 6161 (defined in Call Service).
Table 6161 – RemoveFromService result codes
|
Result Code |
Description |
|
Bad_MethodInvalid |
The MethodId provided does not correspond to the ObjectId provided. See 10000-4 for the general description of this result code. |
|
Bad_NodeIdInvalid |
Used to indicate that the specified ObjectId is not valid or that the Method was called on the AlarmConditionType Node. See 10000-4 for the general description of this result code. |
Comments
Instances that do not expose the OutOfServiceState shall reject RemoveFromService calls. RemoveFromService Method applies to an Alarm instance, even if it is not currently in the Active State.
Table 6262 specifies the AddressSpace representation for the RemoveFromService Method.
Table 6262 – RemoveFromService Method AddressSpace definition
|
Attribute |
Value |
||||
|
BrowseName |
RemoveFromService |
||||
|
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
ModellingRule |
|
AlwaysGeneratesEvent |
ObjectType |
AuditConditionOutOfServiceEventType |
Defined in 5.10.12 |
||
|
ConformanceUnits |
|||||
|
A & C OutOfService |
|||||
If Auditing is supported, this Method shall generate an Event of AuditConditionOutOfServiceEventType for all invocations of the Method.
The RemoveFromService2 Method extends the RemoveFromService Method, by adding an optional Comment. For other functionality see the RemoveFromService Method definition.
Signature
RemoveFromService2(
[in] LocalizedTextComment
);
The parameters are defined in Table 6363
Table 6363 – RemoveFromService2 Method parameters
|
Argument |
Description |
|
Comment |
A localized text that shall be applied to the Condition. |
If the Comment argument is NULL (both locale and text are empty) it shall be ignored and any existing comments will remain unchanged. To reset the comment an empty text with a locale shall be provided.
Method result codes in Table 6464 (defined in Call Service)
Table 6464 – RemoveFromService2 result codes
|
Result Code |
Description |
|
Bad_MethodInvalid |
The MethodId provided does not correspond to the ObjectId provided. See 10000-4 for the general description of this result code. |
|
Bad_NodeIdInvalid |
Used to indicate that the specified ObjectId is not valid or that the Method was called on the AlarmConditionType Node. See 10000-4 for the general description of this result code. |
|
Bad_InvalidArgument |
The Comment string provided exceeds the allowed length for the comment or is invalid in some other manner. |
Comments
Instances that do not expose the OutOfServiceState shall reject RemoveFromService2 calls. RemoveFromService2 Method applies to an Alarm instance, even if it is not currently in the Active State.
Table 6565 specifies the AddressSpace representation for the RemoveFromService2 Method.
Table 6565 – RemoveFromService2 Method AddressSpace definition
|
Attribute |
Value |
||||
|
BrowseName |
RemoveFromService2 |
||||
|
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
ModellingRule |
|
HasProperty |
InputArguments |
Argument[] |
PropertyType |
Mandatory |
|
|
AlwaysGeneratesEvent |
ObjectType |
AuditConditionOutOfServiceEventType |
Defined in 5.10.12 |
||
|
ConformanceUnits |
|||||
|
A & C OutOfService2 |
|||||
If Auditing is supported, this Method shall generate an Event of AuditConditionOutOfServiceEventType for all invocations of the Method.
The PlaceInService Method is used to set the OutOfServiceState to False of a specific Alarm instance. It is only available on an instance of an AlarmConditionType that also exposes the OutOfServiceState. Normally, the NodeId of the ObjectInstance is passed as the ObjectId to the Call Service. However, some Servers do not expose Condition instances in the AddressSpace. Therefore, Servers shall allow Clients to call the PlaceInService Method by specifying ConditionId as the ObjectId. The Method cannot be called with an ObjectId of the AlarmConditionType Node.
Signature
PlaceInService();
Method result codes in Table 6666 (defined in Call Service).
Table 6666 – PlaceInService result codes
|
Result Code |
Description |
|
Bad_MethodInvalid |
The MethodId provided does not correspond to the ObjectId provided. See 10000-4 for the general description of this result code. |
|
Bad_NodeIdInvalid |
Used to indicate that the specified ObjectId is not valid or that the Method was called on the AlarmConditionType Node. See 10000-4 for the general description of this result code. |
Comments
The PlaceInService Method applies to an Alarm instance, even if it is not currently in the Active State.
Table 6767 specifies the AddressSpace representation for the PlaceInService Method.
Table 6767 – PlaceInService Method AddressSpace definition
|
Attribute |
Value |
||||
|
BrowseName |
PlaceInService |
||||
|
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
ModellingRule |
|
|
|
|
|
|
|
|
AlwaysGeneratesEvent |
ObjectType |
AuditConditionOutOfServiceEventType |
Defined in 5.10.12 |
||
|
ConformanceUnits |
|||||
|
A & C OutOfService |
|||||
If Auditing is supported, this Method shall generate an Event of AuditConditionOutOfServiceEventType for all invocations of the Method.
The PlaceInService2 Method extends the PlaceInService Method, by adding an optional Comment. For other functionality see the PlaceInService Method definition.
Signature
PlaceInService2(
[in] LocalizedTextComment
);
The parameters are defined in Table 6868.
Table 6868 – PlaceInService2 Method parameters
|
Argument |
Description |
|
Comment |
A localized text that shall be applied to the Condition. |
If the Comment argument is NULL (both locale and text are empty) it shall be ignored and any existing comments will remain unchanged. To reset the comment an empty text with a locale shall be provided.
Method result codes in Table 6969 (defined in Call Service)
Table 6969 – PlaceInService2 result codes
|
Result Code |
Description |
|
Bad_MethodInvalid |
The MethodId provided does not correspond to the ObjectId provided. See 10000-4 for the general description of this result code. |
|
Bad_NodeIdInvalid |
Used to indicate that the specified ObjectId is not valid or that the Method was called on the AlarmConditionType Node. See 10000-4 for the general description of this result code. |
|
Bad_InvalidArgument |
The Comment string provided exceeds the allowed length for the comment or is invalid in some other manner. |
Comments
The PlaceInService2 Method applies to an Alarm instance, even if it is not currently in the Active State.
Table 7070 specifies the AddressSpace representation for the PlaceInService2 Method.
Table 7070 – PlaceInService2 Method AddressSpace definition
|
Attribute |
Value |
||||
|
BrowseName |
PlaceInService2 |
||||
|
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
ModellingRule |
|
HasProperty |
InputArguments |
Argument[] |
PropertyType |
Mandatory |
|
|
AlwaysGeneratesEvent |
ObjectType |
AuditConditionOutOfServiceEventType |
Defined in 5.10.12 |
||
|
ConformanceUnits |
|||||
|
A & C OutOfService2 |
|||||
If Auditing is supported, this Method shall generate an Event of AuditConditionOutOfServiceEventType for all invocations of the Method.
The GetGroupMemberships Method is used to find the list of AlarmGroups that this alarm is in.
Signature
GetGroupMemberships(
[out] NodeId[] Group
);
Method result codes in Table 7171 (defined in Call Service)
Table 7171 – GetGroupMemberships result codes
|
Result Code |
Description |
|
Bad_MethodInvalid |
The MethodId provided does not correspond to the ObjectId provided. See 10000-4 for the general description of this result code. |
|
Bad_NodeIdInvalid |
Used to indicate that the specified ObjectId is not valid or that the Method was called on the AlarmConditionType Node. See 10000-4 for the general description of this result code. |
Comments
The GetGroupMemberships Method applies to an Alarm instance, even if it is not currently in the Active State.
Table 7272 specifies the AddressSpace representation for the GetGroupMemberships Method.
Table 7272 – GetGroupMemberships Method AddressSpace definition
|
Attribute |
Value |
||||
|
BrowseName |
GetGroupMemberships |
||||
|
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
ModellingRule |
|
HasProperty |
OutputArguments |
Argument[] |
PropertyType |
Mandatory |
|
|
|
|
|
|
||
|
ConformanceUnits |
|||||
|
A & C GetGroupMemberships |
|||||
The ShelvedStateMachineType defines a sub-state machine that represents an advanced Alarm filtering model. This model is illustrated in Figure 1717.
The state model supports two types of Shelving: OneShotShelving and TimedShelving. They are illustrated in Figure 1616. The illustration includes the allowed transitions between the various sub-states. Shelving is an Operator initiated activity.
In OneShotShelving, a user requests that an Alarm be Shelved for its current Active state or if not Active its next Active state. This type of Shelving is typically used when an Alarm is continually occurring on a boundary (i.e. a Condition is jumping between High Alarm and HighHigh Alarm, always in the Active state). The OneShotShelving will automatically clear when an Alarm returns to an inactive state. Another use for this type of Shelving is for a plant area that is shutdown i.e. a long running Alarm such as a low level Alarm for a tank that is not in use. When the tank starts operation again the Shelving state will automatically clear.
In TimedShelving, a user specifies that an Alarm be shelved for a fixed time period. This type of Shelving is quite often used to block nuisance Alarms. For example, an Alarm that occurs more than 10 times in a minute may get shelved for a few minutes. The Alarm is shelved for the time period, no matter how many transitions the Alarm has between Active state and Inactive state.
In all states, the Unshelve can be called to cause a transition to the Unshelve state; this includes Un-shelving an Alarm that is in the TimedShelve state before the time has expired and the OneShotShelve state without a transition to an inactive state. In the event of a restart of an AlarmManager, the AlarmManager should recover the ShelvedStateMachine. If the system cannot determine if the state of the ShelvedStateMachine for a given alarm instance, the ShelvedStateMachine shall be set to Unshelved.
All but two transitions are caused by Method calls as illustrated in Figure 1616. The “Time Expired” transition is simply a system generated transition that occurs when the time value defined as part of the “Timed Shelved Call” has expired. The “Any Transition Occurs” transition is also a system generated transition; this transition is generated when the Condition goes to an inactive state.
Figure 1616 – Shelve state transitions
The ShelvedStateMachineType includes a hierarchy of sub-states. It supports all transitions between Unshelved, OneShotShelved and TimedShelved.
The state machine is illustrated in Figure 1717 and formally defined in Table 7373.
Figure 1717 – ShelvedStateMachineType model
Table 7373 – ShelvedStateMachineType definition
|
Attribute |
Value |
|||||
|
BrowseName |
ShelvedStateMachineType |
|||||
|
IsAbstract |
False |
|||||
|
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
ModellingRule |
|
|
Subtype of the FiniteStateMachineType defined in 10000-16 |
|
|||||
|
|
|
|
|
|
|
|
|
HasProperty |
Variable |
UnshelveTime |
Duration |
PropertyType |
Mandatory |
|
|
|
|
|
|
|
|
|
|
HasComponent |
Object |
Unshelved |
|
StateType |
|
|
|
HasComponent |
Object |
TimedShelved |
|
StateType |
|
|
|
HasComponent |
Object |
OneShotShelved |
|
StateType |
|
|
|
|
|
|
|
|
|
|
|
HasComponent |
Object |
UnshelvedToTimedShelved |
|
TransitionType |
|
|
|
HasComponent |
Object |
TimedShelvedToUnshelved |
|
TransitionType |
|
|
|
HasComponent |
Object |
TimedShelvedToOneShotShelved |
|
TransitionType |
|
|
|
HasComponent |
Object |
UnshelvedToOneShotShelved |
|
TransitionType |
|
|
|
HasComponent |
Object |
OneShotShelvedToUnshelved |
|
TransitionType |
|
|
|
HasComponent |
Object |
OneShotShelvedToTimedShelved |
|
TransitionType |
|
|
|
|
|
|
|
|
|
|
|
HasComponent |
Method |
TimedShelve |
Defined in Clause 5.8.17.4 |
Mandatory |
||
|
HasComponent |
Method |
OneShotShelve |
Defined in Clause 5.8.17.6 |
Mandatory |
||
|
HasComponent |
Method |
Unshelve |
Defined in Clause 5.8.17.2 |
Mandatory |
||
|
HasComponent |
Method |
TimedShelve2 |
Defined in Clause 5.8.17.5 |
Optional |
||
|
HasComponent |
Method |
OneShotShelve2 |
Defined in Clause 5.8.17.7 |
Optional |
||
|
HasComponent |
Method |
Unshelve2 |
Defined in Clause 5.8.17.3 |
Optional |
||
|
|
|
|
|
|
||
|
ConformanceUnits |
||||||
|
A & C Shelving |
||||||
UnshelveTime specifies the remaining time in milliseconds until the Alarm automatically transitions into the Un-shelved state. For the TimedShelved state this time is initialised with the ShelvingTime argument of the TimedShelve Method call. For the OneShotShelved state the UnshelveTime will be initialized to the Value of MaxTimeShelved Property if it is present otherwise it is initialized to the maximum Duration.
This FiniteStateMachine supports three Active states; Unshelved, TimedShelved and OneShotShelved. It also supports six transitions. The states and transitions are described in Table 7474. This FiniteStateMachine also supports three Methods; TimedShelve, OneShotShelve and Unshelve.
Table 7474 – ShelvedStateMachineType Additional References
|
SourceBrowsePath |
References |
IsForward |
TargetBrowsePath |
|
UnshelvedToTimedShelved |
FromState |
True |
Unshelved |
ToState |
True |
TimedShelved |
HasEffect |
True |
AlarmConditionType |
HasCause |
True |
TimedShelve |
HasCause |
True |
TimedShelve2 |
|
UnshelvedToOneShotShelved |
FromState |
True |
Unshelved |
ToState |
True |
OneShotShelved |
HasEffect |
True |
AlarmConditionType |
HasCause |
True |
OneShotShelve |
HasCause |
True |
OneShotShelve2 |
|
TimedShelvedToUnshelved |
FromState |
True |
TimedShelved |
ToState |
True |
Unshelved |
HasEffect |
True |
AlarmConditionType |
|
TimedShelvedToOneShotShelved |
FromState |
True |
TimedShelved |
ToState |
True |
OneShotShelved |
HasEffect |
True |
AlarmConditionType |
HasCause |
True |
OneShotShelve |
HasCause |
True |
OneShotShelve2 |
|
OneShotShelvedToUnshelved |
FromState |
True |
OneShotShelved |
ToState |
True |
Unshelved |
HasEffect |
True |
AlarmConditionType |
|
OneShotShelvedToTimedShelved |
FromState |
True |
OneShotShelved |
ToState |
True |
TimedShelved |
HasEffect |
True |
AlarmConditionType |
HasCause |
True |
TimedShelve |
HasCause |
True |
TimedShelve2 |
The component Variables of the ShelvedStateMachineType have additional Attributes defined in Table 7575.
Table 7575 – ShelvedStateMachineType Attribute values for child Nodes
|
BrowsePath |
Value Attribute |
||
|
1 |
||
|
2 |
||
|
3 |
||
|
12 |
||
|
21 |
||
|
23 |
||
|
13 |
||
|
31 |
||
|
32 |
The Unshelve Method sets the instance of AlarmConditionType to the Unshelved state. Normally, the MethodId found in the Shelving child of the Condition instance and the NodeId of the Shelving object as the ObjectId are passed to the Call Service. However, some Servers do not expose Condition instances in the AddressSpace. Therefore, all Servers shall also allow Clients to call the Unshelve Method by specifying ConditionId as the ObjectId where the ConditionId is the Condition that has Shelving child. The Method cannot be called with an ObjectId of the ShelvedStateMachineType Node.
Signature
Unshelve();
Method Result Codes in Table 7676 (defined in Call Service)
Table 7676 – Unshelve result codes
|
Result Code |
Description |
|
Bad_ConditionNotShelved |
See Table 137137 for the description of this result code. |
Table 7777 specifies the AddressSpace representation for the Unshelve Method.
Table 7777 – Unshelve Method AddressSpace definition
|
Attribute |
Value |
||||
|
BrowseName |
Unshelve |
||||
|
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
ModellingRule |
|
AlwaysGeneratesEvent |
ObjectType |
AuditConditionShelvingEventType |
Defined in 5.10.7 |
||
|
ConformanceUnits |
|||||
|
A & C Shelving |
|||||
If Auditing is supported, this Method shall generate an Event of AuditConditionShelvingEventType for all invocations of the Method.
The Unshelve2 Method extends the Unshelve Method, by adding an optional Comment. For other functionality see the Unshelve Method definition.
Signature
Unshelve2(
[in] LocalizedTextComment
);
The parameters are defined in Table 7878
Table 7878 – Unshelve2 Method parameters
|
Argument |
Description |
|
Comment |
A localized text that shall be applied to the Conditions. |
If the Comment argument is NULL (both locale and text are empty) it shall be ignored and any existing comments will remain unchanged. To reset the comment, an empty text with a locale shall be provided.
Method Result Codes in Table 7979 (defined in Call Service)
Table 7979 – Unshelve2 result codes
|
Result Code |
Description |
|
Bad_ConditionNotShelved |
See Table 137137 for the description of this result code. |
|
Bad_InvalidArgument |
The Comment string provided exceeds the allowed length for the comment or is invalid in some other manner. |
Table 8080 specifies the AddressSpace representation for the Unshelve2 Method.
Table 8080 – Unshelve2 Method AddressSpace definition
|
Attribute |
Value |
||||
|
BrowseName |
Unshelve2 |
||||
|
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
ModellingRule |
|
HasProperty |
InputArguments |
Argument[] |
PropertyType |
Mandatory |
|
|
AlwaysGeneratesEvent |
ObjectType |
AuditConditionShelvingEventType |
Defined in 5.10.7 |
||
|
ConformanceUnits |
|||||
|
A & C Shelving2 |
|||||
If Auditing is supported, this Method shall generate an Event of AuditConditionShelvingEventType for all invocations of the Method.
The TimedShelve Method sets the instance of AlarmConditionType to the TimedShelved state (parameters are defined in Table 8181 and result codes are described in Table 8282). Normally, the MethodId found in the Shelving child of the Condition instance and the NodeId of the Shelving object as the ObjectId are passed to the Call Service. However, some Servers do not expose Condition instances in the AddressSpace. Therefore, all Servers shall also allow Clients to call the TimedShelve Method by specifying ConditionId as the ObjectId where the ConditionId is the Condition that has the Shelving child. The Method cannot be called with an ObjectId of the ShelvedStateMachineType Node.
This Method can be called on any ConditionId, even if it is not active. The timer will start on Method invocation. The Alarm may go active and inactive multiple times during this Duration, but it will remain shelved for the Duration, unless it is changed to a different Shelving State.
Signature
TimedShelve(
[in] Duration ShelvingTime
);
The parameters are defined in Table 8181
Table 8181 – TimedShelve parameters
|
Argument |
Description |
|
ShelvingTime |
Specifies a fixed time for which to shelve the Alarm. The Server may refuse the provided duration. If a MaxTimeShelved Property exist on the Alarm than the Shelving time shall be less than or equal to the value of this Property. |
Method Result Codes (defined in Call Service)
Table 8282 – TimedShelve result codes
|
Result Code |
Description |
|
Bad_ConditionAlreadyShelved |
See Table 137137 for the description of this result code. The Alarm is already in TimedShelved state and the system does not allow a reset of the shelved timer. |
|
Bad_ShelvingTimeOutOfRange |
See Table 137137 for the description of this result code. |
Comments
Shelving for some time is quite often used to block nuisance Alarms. For example, an Alarm that occurs more than 10 times in a minute may get shelved for a few minutes.
In some systems the length of time covered by this duration may be limited and the Server may generate an error refusing the provided duration. This limit may be exposed as the MaxTimeShelved Property.
Table 8383 specifies the AddressSpace representation for the TimedShelve Method.
Table 8383 – TimedShelve Method AddressSpace definition
|
Attribute |
Value |
||||
|
BrowseName |
TimedShelve |
||||
|
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
ModellingRule |
|
HasProperty |
Variable |
InputArguments |
Argument[] |
PropertyType |
Mandatory |
|
AlwaysGeneratesEvent |
ObjectType |
AuditConditionShelvingEventType |
Defined in 5.10.7 |
||
|
ConformanceUnits |
|||||
|
A & C Shelving |
|||||
If Auditing is supported, this Method shall generate an Event of AuditConditionShelvingEventType for all invocations of the Method.
The TimedShelve Method extends the TimedShelve Method, by adding an optional Comment. For other functionality see the TimedShelve Method definition.
Signature
TimedShelve2(
[in] Duration ShelvingTime
[in] LocalizedTextComment
);
The parameters are defined in Table 8484.
Table 8484 – TimedShelve2 parameters
|
Argument |
Description |
|
ShelvingTime |
Specifies a fixed time for which to shelve the Alarm. The Server may refuse the provided duration. If a MaxTimeShelved Property exist on the Alarm than the Shelving time shall be less than or equal to the value of this Property. |
|
Comment |
A localized text that shall be applied to the Condition. |
Method Result Codes in Table 8585 (defined in Call Service)
Table 8585 – TimedShelve2 result codes
|
Result Code |
Description |
|
Bad_ConditionAlreadyShelved |
See Table 137137 for the description of this result code. The Alarm is already in TimedShelved state and the system does not allow a reset of the shelved timer. |
|
Bad_ShelvingTimeOutOfRange |
See Table 137137 for the description of this result code. |
|
Bad_InvalidArgument |
The Comment string provided exceeds the allowed length for the comment or is invalid in some other manner. |
Comments
Shelving for some time is quite often used to block nuisance Alarms. For example, an Alarm that occurs more than 10 times in a minute can get shelved for a few minutes.
In some systems the length of time covered by this duration can be limited and the Server can generate an error refusing the provided duration. This limit can be exposed as the MaxTimeShelved Property.
If the Comment argument is NULL (both locale and text are empty) it shall be ignored and any existing comments will remain unchanged. To reset the Comment an empty text with a locale shall be provided.
Table 8686 specifies the AddressSpace representation for the TimedShelve2 Method.
Table 8686 – TimedShelve2 Method AddressSpace definition
|
Attribute |
Value |
||||
|
BrowseName |
TimedShelve2 |
||||
|
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
ModellingRule |
|
HasProperty |
Variable |
InputArguments |
Argument[] |
PropertyType |
Mandatory |
|
AlwaysGeneratesEvent |
ObjectType |
AuditConditionShelvingEventType |
Defined in 5.10.7 |
||
|
ConformanceUnits |
|||||
|
A & C Shelving2 |
|||||
If Auditing is supported, this Method shall generate an Event of AuditConditionShelvingEventType for all invocations of the Method.
The OneShotShelve Method sets the instance of AlarmConditionType to the OneShotShelved state. Normally, the MethodId found in the Shelving child of the Condition instance and the NodeId of the Shelving object as the ObjectId are passed to the Call Service. However, some Servers do not expose Condition instances in the AddressSpace. Therefore, all Servers shall also allow Clients to call the OneShotShelve Method by specifying ConditionId as the ObjectId where the ConditionId is the Condition that has the Shelving child. The Method cannot be called with an ObjectId of the ShelvedStateMachineType Node. This Method can be called on any ConditionId, even if it is not active.
Signature
OneShotShelve( );
Method Result Codes are defined in Table 8787 (status code field is defined in Call Serv ice)
Table 8787 – OneShotShelve result codes
|
Result Code |
Description |
|
Bad_ConditionAlreadyShelved |
See Table 137137 for the description of this result code. The Alarm is already in OneShotShelved state. |
Table 8888 specifies the AddressSpace representation for the OneShotShelve Method.
Table 8888 – OneShotShelve Method AddressSpace definition
|
Attribute |
Value |
||||
|
BrowseName |
OneShotShelve |
||||
|
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
ModellingRule |
|
AlwaysGeneratesEvent |
ObjectType |
AuditConditionShelvingEventType |
Defined in 5.10.7 |
||
|
ConformanceUnits |
|||||
|
A & C Shelving |
|||||
If Auditing is supported, this Method shall generate an Event of AuditConditionShelvingEventType for all invocations of the Method.
Signature
OneShotShelve2(
[in] LocalizedTextComment
);
The parameters are defined in Table 8989.
Table 8989 – OneShotShelve2 Method parameters
|
Argument |
Description |
|
Comment |
A localized text that shall be applied to the Conditions. |
If the Comment argument is NULL (both locale and text are empty) it shall be ignored and any existing comments will remain unchanged. To reset the comment, an empty text with a locale shall be provided.
Method Result Codes are defined in Table 9090 (status code field is defined in Call Serv ice)
Table 9090 – OneShotShelve2 result codes
|
Result Code |
Description |
|
Bad_ConditionAlreadyShelved |
See Table 137137 for the description of this result code. The Alarm is already in OneShotShelved state. |
|
Bad_InvalidArgument |
The Comment string provided exceeds the allowed length for the comment or is invalid in some other manner. |
Table 9191 specifies the AddressSpace representation for the OneShotShelve2 Method.
Table 9191 – OneShotShelve2 Method AddressSpace definition
|
Attribute |
Value |
||||
|
BrowseName |
OneShotShelve2 |
||||
|
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
ModellingRule |
|
HasProperty |
InputArguments |
Argument[] |
PropertyType |
Mandatory |
|
|
AlwaysGeneratesEvent |
ObjectType |
AuditConditionShelvingEventType |
Defined in 5.10.7 |
||
|
ConformanceUnits |
|||||
|
A & C Shelving2 |
|||||
If Auditing is supported, this Method shall generate an Event of AuditConditionShelvingEventType for all invocations of the Method.
Alarms can be modelled with multiple exclusive sub-states and assigned limits or they may be modelled with nonexclusive limits that can be used to group multiple states together.
The LimitAlarmType is used to provide a base Type for AlarmConditionTypes with multiple limits. The LimitAlarmType is illustrated in Figure 1818.
The LimitAlarmType is formally defined in Table 9292.
Table 9292 – LimitAlarmType definition
|
Attribute |
Value |
||||
|
BrowseName |
LimitAlarmType |
||||
|
IsAbstract |
False |
||||
|
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
ModellingRule |
|
Subtype of the AlarmConditionType defined in clause 5.8.2. |
|||||
|
HasSubtype |
ObjectType |
ExclusiveLimitAlarmType |
Defined in Clause 5.8.19.3 |
||
|
HasSubtype |
ObjectType |
NonExclusiveLimitAlarmType |
Defined in Clause 5.8.20 |
||
|
HasProperty |
Variable |
HighHighLimit |
Double |
PropertyType |
Optional |
|
HasProperty |
Variable |
HighLimit |
Double |
PropertyType |
Optional |
|
HasProperty |
Variable |
LowLimit |
Double |
PropertyType |
Optional |
|
HasProperty |
Variable |
LowLowLimit |
Double |
PropertyType |
Optional |
|
HasProperty |
Variable |
BaseHighHighLimit |
Double |
PropertyType |
Optional |
|
HasProperty |
Variable |
BaseHighLimit |
Double |
PropertyType |
Optional |
|
HasProperty |
Variable |
BaseLowLimit |
Double |
PropertyType |
Optional |
|
HasProperty |
Variable |
BaseLowLowLimit |
Double |
PropertyType |
Optional |
|
HasProperty |
Variable |
SeverityHighHigh |
UInt16 |
PropertyType |
Optional |
|
HasProperty |
Variable |
SeverityHigh |
UInt16 |
PropertyType |
Optional |
|
HasProperty |
Variable |
SeverityLow |
UInt16 |
PropertyType |
Optional |
|
HasProperty |
Variable |
SeverityLowLow |
UInt16 |
PropertyType |
Optional |
|
HasProperty |
Variable |
HighHighDeadband |
Double |
PropertyType |
Optional |
|
HasProperty |
Variable |
HighDeadband |
Double |
PropertyType |
Optional |
|
HasProperty |
Variable |
LowDeadband |
Double |
PropertyType |
Optional |
|
HasProperty |
Variable |
LowLowDeadband |
Double |
PropertyType |
Optional |
|
ConformanceUnits |
|||||
|
A & C Exclusive Limit |
|||||
|
A & C Non-Exclusive Limit |
|||||
Four optional limits are defined that configure the states of the derived limit Alarm Types. These Properties shall be set for any Alarm limits that are exposed by the derived limit Alarm types. These Properties are listed as optional but at least one is required. For cases where an underlying system cannot provide the actual value of a limit, the limit Property shall still be provided, but will have its AccessLevel set to not readable. It is assumed that the limits are described using the same Engineering Unit that is assigned to the variable that is the source of the Alarm. For Rate of change limit Alarms, it is assumed this rate is units per second unless otherwise specified. The limits shall follow the following inequality HighHigh > High > Low > LowLow. If Deadband properties are provided then:
- HighHighLimit - HighHighDeadband > HighLimit
- HighLimit – HighDeadband > LowLimit
- LowLimit + LowDeadband < HighLimit
- LowLowLimit + LowLowDeadband < LowLimit
Four optional base limits are defined that are used for AdaptiveAlarming. They contain the configured Alarm limit. If a Server supports AdaptiveAlarming for Alarm limits, the corresponding base Alarm limit shall be provided for any limits that are exposed by the derived limit Alarm types. The value of this property is the value of the limit to which an AdaptiveAlarm can be reset if rolling back any algorithmic changes is desired.
The Alarm limits listed may cause an Alarm to be generated when a value equals the limit or it may generate the Alarm when the limit is exceeded, (i.e. the Value is above the limit for HighLimit and below the limit for LowLimit). The exact behaviour when the value is equal to the limit is Server specific.
The Variable that is the source of the LimitAlarmType Alarm shall be a scalar. This LimitAlarmType can be subtyped if the Variable that is the source is an array. The subtype shall describe the expected behaviour with respect to limits and the array values. Some possible options:
- if any element of the array exceeds the limit an Alarm is generated,
- if all elements exceed the limit an Alarm is generated,
- the limits may also be an array, in which case if any array limit is exceeded by the corresponding source array element, an Alarm is generated.
The four optional severity Properties, if defined, provided the severity for each of the limits (i.e. this would be the value of Severity that would be reported if the alarm were in the given state).
The four optional deadband Properties, if they are defined, are used to delay the return to normal until the value is within the limit by the value of the deadband. For example, if a Value exceeds a HighLimit of 20, and there is a HighDeadband define of 1, the value will remain in alarm until the Value drops below 19. An Alarm deadband can be used to limit Alarms in a system where values may bounce or have some noise (i.e. the value is jumping up and down by 0.2). They keep the Alarm from being reactivated until it has dropped enough to not retrigger by noise.
In the event of a restart of an AlarmManager, the AlarmManager shall recover the LimitAlarm state, this also applies to all subtypes.
This clause describes the state machine and the base Alarm Type behaviour for AlarmConditionTypes with multiple mutually exclusive limits.
The ExclusiveLimitStateMachineType defines the state machine used by AlarmConditionTypes that handle multiple mutually exclusive limits. It is illustrated in Figure 1919.
Figure 1919 – ExclusiveLimitStateMachineType
It is created by extending the FiniteStateMachineType. It is formally defined in Table 9393 and the state transitions are described in Table 9494.
Table 9393 – ExclusiveLimitStateMachineType definition
|
Attribute |
Value |
||||
|
BrowseName |
ExclusiveLimitStateMachineType |
||||
|
IsAbstract |
False |
||||
|
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
ModellingRule |
|
Subtype of the FiniteStateMachineType |
|||||
|
HasComponent |
Object |
HighHigh |
|
StateType |
|
|
HasComponent |
Object |
High |
|
StateType |
|
|
HasComponent |
Object |
Low |
|
StateType |
|
|
HasComponent |
Object |
LowLow |
|
StateType |
|
|
HasComponent |
Object |
LowToLowLow |
|
TransitionType |
|
|
HasComponent |
Object |
LowLowToLow |
|
TransitionType |
|
|
HasComponent |
Object |
HighToHighHigh |
|
TransitionType |
|
|
HasComponent |
Object |
HighHighToHigh |
|
TransitionType |
|
|
ConformanceUnits |
|||||
|
A & C Exclusive Limit |
|||||
Table 9494 – ExclusiveLimitStateMachineType Additional References
|
SourceBrowsePath |
References |
IsForward |
TargetBrowsePath |
|
HighHighToHigh |
FromState |
True |
HighHigh |
ToState |
True |
High |
HasEffect |
True |
AlarmConditionType |
|
HighToHighHigh |
FromState |
True |
High |
ToState |
True |
HighHigh |
HasEffect |
True |
AlarmConditionType |
|
LowLowToLow |
FromState |
True |
LowLow |
ToState |
True |
Low |
HasEffect |
True |
AlarmConditionType |
|
LowToLowLow |
FromState |
True |
Low |
ToState |
True |
LowLow |
HasEffect |
True |
AlarmConditionType |
‘
The component Variables of the ExclusiveLimitStateMachineType have additional Attributes defined in Table 9595.
Table 9595 – ExclusiveLimitStateMachineType Attribute values for child Nodes
|
BrowsePath |
Value Attribute |
||
|
1 |
||
|
2 |
||
|
3 |
||
|
4 |
||
|
34 |
||
|
43 |
||
|
21 |
||
|
12 |
The ExclusiveLimitStateMachineType defines the sub state machine that represents the actual level of a multilevel Alarm when it is in the Active state. The sub state machine defined here includes High, Low, HighHigh and LowLow states. This model also includes in its transition state a series of transition to and from a parent state, the inactive state. This state machine as it is defined shall be used as a sub state machine for a state machine which has an Active state. This Active state could be part of a “level” Alarm or “deviation” Alarm or any other Alarm state machine.
The LowLow, Low, High, HighHigh are typical for many industries. Vendors can introduce sub-state models that include additional limits; they may also omit limits in an instance. If a model omits states or transitions in the StateMachine, it is recommended that they provide the optional Property AvailableStates and/or AvailableTransitions (see 10000-16).
The ExclusiveLimitAlarmType is used to specify the common behaviour for Alarm Types with multiple mutually exclusive limits. The ExclusiveLimitAlarmType is illustrated in Figure 2020.
Figure 2020 – ExclusiveLimitAlarmType
The ExclusiveLimitAlarmType is formally defined in Table 9696.
Table 9696 – ExclusiveLimitAlarmType definition
|
Attribute |
Value |
||||
|
BrowseName |
ExclusiveLimitAlarmType |
||||
|
IsAbstract |
False |
||||
|
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
ModellingRule |
|
Subtype of the LimitAlarmType defined in clause 5.8.18. |
|||||
|
HasSubtype |
ObjectType |
ExclusiveLevelAlarmType |
Defined in Clause 5.8.21.3 |
||
|
HasSubtype |
ObjectType |
ExclusiveDeviationAlarmType |
Defined in Clause 5.8.22.3 |
||
|
HasSubtype |
ObjectType |
ExclusiveRateOfChangeAlarmType |
Defined in Clause 5.8.23.3 |
||
|
HasComponent |
Object |
LimitState |
|
Mandatory |
|
|
ConformanceUnits |
|||||
|
A & C Exclusive Limit |
|||||
The LimitState is a sub state of the ActiveState and has an IsTrueSubStateOf reference to the ActiveState. The LimitState represents the actual limit that is violated in an instance of ExclusiveLimitAlarmType. When the ActiveState of the AlarmConditionType is inactive the LimitState shall not be available and shall return NULL on read. Any Events that subscribe for fields from the LimitState when the ActiveState is inactive shall return a NULL for these unavailable fields.
The NonExclusiveLimitAlarmType is used to specify the common behaviour for Alarm Types with multiple non-exclusive limits. The NonExclusiveLimitAlarmType is illustrated in Figure 2121.
Figure 2121 – NonExclusiveLimitAlarmType
The NonExclusiveLimitAlarmType is formally defined in Table 9797 and Table 9898.
Table 9797 – NonExclusiveLimitAlarmType definition
|
Attribute |
Value |
||||
|
BrowseName |
NonExclusiveLimitAlarmType |
||||
|
IsAbstract |
False |
||||
|
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
ModellingRule |
|
Subtype of the LimitAlarmType defined in clause 5.8.18. |
|||||
|
HasSubtype |
ObjectType |
NonExclusiveLevelAlarmType |
Defined in Clause 5.8.21.2 |
||
|
HasSubtype |
ObjectType |
NonExclusiveDeviationAlarmType |
Defined in Clause 5.8.22.2 |
||
|
HasSubtype |
ObjectType |
NonExclusiveRateOfChangeAlarmType |
Defined in Clause 5.8.23.2 |
||
|
HasComponent |
Variable |
HighHighState |
LocalizedText |
TwoStateVariableType |
Optional |
|
HasComponent |
Variable |
HighState |
LocalizedText |
TwoStateVariableType |
Optional |
|
HasComponent |
Variable |
LowState |
LocalizedText |
TwoStateVariableType |
Optional |
|
HasComponent |
Variable |
LowLowState |
LocalizedText |
TwoStateVariableType |
Optional |
|
|
|||||
|
ConformanceUnits |
|||||
|
A & C Non-Exclusive Limit |
|||||
Table 9898 – NonExclusiveLimitAlarmType Additional Subcomponents
|
BrowsePath |
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
Others |
|
HighHighState |
HasProperty |
Variable |
TrueState |
LocalizedText |
PropertyType |
|
|
HighHighState |
HasProperty |
Variable |
FalseState |
LocalizedText |
PropertyType |
|
|
HighState |
HasProperty |
Variable |
TrueState |
LocalizedText |
PropertyType |
|
|
HighState |
HasProperty |
Variable |
FalseState |
LocalizedText |
PropertyType |
|
|
LowState |
HasProperty |
Variable |
TrueState |
LocalizedText |
PropertyType |
|
|
LowState |
HasProperty |
Variable |
FalseState |
LocalizedText |
PropertyType |
|
|
LowLowState |
HasProperty |
Variable |
TrueState |
LocalizedText |
PropertyType |
|
|
LowLowState |
HasProperty |
Variable |
FalseState |
LocalizedText |
PropertyType |
|
The empty “ Others” column indicates that no ModellingRule applies.
HighHighState, HighState, LowState, and LowLowState represent the non-exclusive states. As an example, it is possible that both HighState and HighHighState are in their True state. Vendors may choose to support any subset of these states. Recommended state names are described in A.1.
Four optional limits are defined that configure these states. At least the HighState or the LowState shall be provided even though all states are optional. It is implied by the definition of a HighState and a LowState, that these groupings are mutually exclusive. A value cannot exceed both a HighState value and a LowState value simultaneously.
A level Alarm is commonly used to report when a limit is exceeded. It typically relates to an instrument – e.g. a temperature meter. The level Alarm becomes active when the observed value is above a high limit or below a low limit.
The NonExclusiveLevelAlarmType is a special level Alarm utilized with one or more non-exclusive states. If for example both the High and HighHigh states need to be maintained as active at the same time then an instance of NonExclusiveLevelAlarmType should be used.
The NonExclusiveLevelAlarmType is based on the NonExclusiveLimitAlarmType. It is formally defined in Table 9999.
Table 9999 – NonExclusiveLevelAlarmType definition
|
Attribute |
Value |
||||
|
BrowseName |
NonExclusiveLevelAlarmType |
||||
|
IsAbstract |
False |
||||
|
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
ModellingRule |
|
Subtype of the NonExclusiveLimitAlarmType defined in clause 5.8.20. |
|||||
|
|
|
|
|
|
|
|
ConformanceUnits |
|||||
|
A & C Non-Exclusive Level |
|||||
No additional Properties to the NonExclusiveLimitAlarmType are defined.
The ExclusiveLevelAlarmType is a special level Alarm utilized with multiple mutually exclusive limits. It is formally defined in Table 100100.
Table 100100 – ExclusiveLevelAlarmType definition
|
Attribute |
Value |
||||
|
BrowseName |
ExclusiveLevelAlarmType |
||||
|
IsAbstract |
False |
||||
|
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
ModellingRule |
|
Inherits the Properties of the ExclusiveLimitAlarmType defined in clause 5.8.19.3. |
|||||
|
|
|
|
|
|
|
|
ConformanceUnits |
|||||
|
A & C Exclusive Level |
|||||
No additional Properties to the ExclusiveLimitAlarmType are defined.
A deviation Alarm is commonly used to report an excess deviation between a desired setpoint level of a process value and an actual measurement of that value. The deviation Alarm becomes active when the deviation exceeds or drops below a defined limit.
For example, if a setpoint had a value of 10, a high deviation Alarm limit of 2 and a low deviation Alarm limit of -1 then the low sub state is entered if the process value drops below 9; the high sub state is entered if the process value raises above 12. If the setpoint is changed to 11 then the new deviation values would be 10 and 13 respectively. The setpoint can be fixed by a configuration, adjusted by an Operator or it can be adjusted by an algorithm, the actual functionality exposed by the setpoint is application specific. The deviation Alarm can also be used to report a problem between a redundant data source where the difference between the primary source and the secondary source exceeds the included limit. In this case, the SetpointNode would point to the secondary source.
The LowLimit and LowLowLimit shall be negative, indicating a number below the target value and the HighLimit and HighHighLimit shall be positive, indicating a number above the target value. If provided, the limits shall not be zero and shall follow these rules:
For example, if the LowLimit is -2 then a LowLowLimit of -1 would not be allowed, but a LowLowLimit of -3 would be allowed.
The NonExclusiveDeviationAlarmType is a special level Alarm utilized with one or more non-exclusive states. If for example both the High and HighHigh states need to be maintained as active at the same time then an instance of NonExclusiveDeviationAlarmType should be used.
The NonExclusiveDeviationAlarmType is based on the NonExclusiveLimitAlarmType. It is formally defined in Table 101101.
Table 101101 – NonExclusiveDeviationAlarmType definition
|
Attribute |
Value |
||||
|
BrowseName |
NonExclusiveDeviationAlarmType |
||||
|
IsAbstract |
False |
||||
|
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
ModellingRule |
|
Subtype of the NonExclusiveLimitAlarmType defined in clause 5.8.20. |
|||||
|
HasProperty |
Variable |
SetpointNode |
NodeId |
PropertyType |
Mandatory |
|
HasProperty |
Variable |
BaseSetpointNode |
NodeId |
PropertyType |
Optional |
|
|
|||||
|
ConformanceUnits |
|||||
|
A & C Non-Exclusive Deviation |
|||||
The SetpointNode Property provides the NodeId of the setpoint used in the deviation calculation. In cases where the Alarm is generated by an underlying system and if the Variable is not in the AddressSpace, a NULL NodeId shall be provided.
The BaseSetpointNode Property provides the NodeId of the original or base setpoint. The value of this node is the value of the setpoint to which an AdaptiveAlarm can be reset if rolling back algorithmic changes is desired. The value of this node usually contains the originally configured setpoint.
The ExclusiveDeviationAlarmType is utilized with multiple mutually exclusive limits. It is formally defined in Table 102102.
Table 102102 – ExclusiveDeviationAlarmType definition
|
Attribute |
Value |
||||
|
BrowseName |
ExclusiveDeviationAlarmType |
||||
|
IsAbstract |
False |
||||
|
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
Modelling Rule |
|
Inherits the Properties of the ExclusiveLimitAlarmType defined in clause 5.8.19.3. |
|||||
|
HasProperty |
Variable |
SetpointNode |
NodeId |
PropertyType |
Mandatory |
|
HasProperty |
Variable |
BaseSetpointNode |
NodeId |
PropertyType |
Optional |
|
|
|||||
|
ConformanceUnits |
|||||
|
A & C Exclusive Deviation |
|||||
The SetpointNode Property provides the NodeId of the setpoint used in the Deviation calculation. If this Variable is not in the AddressSpace, a NULL NodeId shall be provided.
The BaseSetpointNode Property provides the NodeId of the original or base setpoint. The value of this node is the value of the setpoint to which an AdaptiveAlarm can be reset if any algorithmic changes need to be discarded. The value of this node usually contains the originally configured setpoint.
A RateOfChangeAlarm is commonly used to report an unusual change or lack of change in a measured value related to the speed at which the value has changed. The RateOfChangeAlarm becomes active when the rate at which the value changes exceeds or drops below a defined limit.
A RateOfChangeAlarm is measured in some time unit, such as seconds or minutes and some unit of measure such as percent or meter. For example, a tank may have a High limit for the rate of change of its level (measured in meters) which would be 4 meters per minute. If the tank level changes at a rate that is greater than 4 meters per minute then the High sub state is entered.
The NonExclusiveRateOfChangeAlarmType is a special level Alarm utilized with one or more non-exclusive states. If for example both the High and HighHigh states need to be maintained as active at the same time this AlarmConditionType should be used
The NonExclusiveRateOfChangeAlarmType is based on the NonExclusiveLimitAlarmType. It is formally defined in Table 103103.
Table 103103 – NonExclusiveRateOfChangeAlarmType definition
|
Attribute |
Value |
||||
|
BrowseName |
NonExclusiveRateOfChangeAlarmType |
||||
|
IsAbstract |
False |
||||
|
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
ModellingRule |
|
Subtype of the NonExclusiveLimitAlarmType defined in clause 5.8.20. |
|||||
|
HasProperty |
Variable |
EngineeringUnits |
EUInformation |
PropertyType |
Optional |
|
|
|||||
|
ConformanceUnits |
|||||
|
A & C Non-Exclusive RateOfChange |
|||||
EngineeringUnits provides the engineering units associated with the limits values. If this is not provided the assumed Engineering Unit is the same as the EU associated with the parent variable per second e.g. if parent is meters, this unit is meters/second.
ExclusiveRateOfChangeAlarmType is utilized with multiple mutually exclusive limits. It is formally defined in Table 104104.
Table 104104 – ExclusiveRateOfChangeAlarmType definition
|
Attribute |
Value |
||||
|
BrowseName |
ExclusiveRateOfChangeAlarmType |
||||
|
IsAbstract |
False |
||||
|
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
ModellingRule |
|
Inherits the Properties of the ExclusiveLimitAlarmType defined in clause 5.8.19.3. |
|||||
|
HasProperty |
Variable |
EngineeringUnits |
EUInformation |
PropertyType |
Optional |
|
|
|||||
|
ConformanceUnits |
|||||
|
A & C Exclusive RateOfChange |
|||||
EngineeringUnits provides the engineering units associated with the limits values. If this is not provided the assumed Engineering Unit is the same as the EU associated with the parent variable per second e.g. if parent is meters, this unit is meters/second.
The DiscreteAlarmType is used to classify Types into Alarm Conditions where the input for the Alarm may take on only a certain number of possible values (e.g. True/False, running/stopped/terminating). The DiscreteAlarmType with sub types defined in this document is illustrated in Figure 2222. It is formally defined in Table 105105.
Figure 2222 – DiscreteAlarmType Hierarchy
Table 105105 – DiscreteAlarmType definition
|
Attribute |
Value |
||||
|
BrowseName |
DiscreteAlarmType |
||||
|
IsAbstract |
False |
||||
|
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
ModellingRule |
|
Subtype of the AlarmConditionType defined in clause 5.8.2. |
|||||
|
HasSubtype |
OffNormalAlarmType |
Defined in Clause 5.8.22 |
|||
|
ConformanceUnits |
|||||
|
A & C Discrete |
|||||
The OffNormalAlarmType is a specialization of the DiscreteAlarmType intended to represent a discrete Condition that is considered to be not normal. It is formally defined in Table 106106. This sub type is usually used to indicate that a discrete value is in an Alarm state, it is active as long as a non-normal value is present.
Table 106106 – OffNormalAlarmType definition
|
Attribute |
Value |
|||||
|
BrowseName |
OffNormalAlarmType |
|||||
|
IsAbstract |
False |
|||||
|
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
ModellingRule |
|
|
Subtype of the DiscreteAlarmType defined in clause 5.8.24.1 |
||||||
|
HasSubtype |
TripAlarmType |
Defined in Clause 5.8.24.4 |
||||
|
HasSubtype |
SystemOffNormalAlarmType |
Defined in Clause 5.8.24.3 |
||||
|
|
|
|
|
|||
|
HasProperty |
NormalState |
NodeId |
PropertyType |
Mandatory |
||
|
ConformanceUnits |
||||||
|
A & C OffNormal |
||||||
The NormalState Property is a Property that points to a Variable which has a value that corresponds to one of the possible values of the Variable pointed to by the InputNode Property where the NormalState Property Variable value is the value that is considered to be the normal state of the Variable pointed to by the InputNode Property. When the value of the Variable referenced by the InputNode Property is not equal to the value of the NormalState Property the Alarm is Active. If this Variable is not in the AddressSpace, a NULL NodeId shall be provided.
This Condition is used by a Server to indicate that an underlying system that is providing Alarm information is having a communication problem and that the Server may have invalid or incomplete Condition state in the Subscription. Its representation in the AddressSpace is formally defined in Table 107107.
Table 107107 – SystemOffNormalAlarmType definition
|
Attribute |
Value |
||||
|
BrowseName |
SystemOffNormalAlarmType |
||||
|
IsAbstract |
False |
||||
|
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
ModellingRule |
|
HasSubtype |
CertificateExpirationAlarmType |
Defined in Clause 5.8.24.7 |
|||
|
Subtype of the OffNormalAlarmType, i.e. it has HasProperty References to the same Nodes. |
|||||
|
ConformanceUnits |
|||||
|
A & C SystemOffNormal |
|||||
The TripAlarmType is a specialization of the OffNormalAlarmType intended to represent an equipment trip Condition. The Alarm becomes active when the monitored piece of equipment experiences some abnormal fault such as a motor shutting down due to an overload condition. It is formally defined in Table 108108. This Type is mainly used for categorization.
Table 108108 – TripAlarmType definition
|
Attribute |
Value |
||||
|
BrowseName |
TripAlarmType |
||||
|
IsAbstract |
False |
||||
|
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
ModellingRule |
|
Subtype of the OffNormalAlarmType defined in clause 5.8.24.2. |
|||||
|
|
|
|
|
||
|
ConformanceUnits |
|||||
|
A & C Trip |
|||||
The InstrumentDiagnosticAlarmType is a specialization of the OffNormalAlarmType intended to represent a fault in a field device. The Alarm becomes active when the monitored device experiences a fault such as a sensor failure. It is formally defined in Table 108108. This Type is mainly used for categorization.
Table 109109 – InstrumentDiagnosticAlarmType definition
|
Attribute |
Value |
||||
|
BrowseName |
InstrumentDiagnosticAlarmType |
||||
|
IsAbstract |
False |
||||
|
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
ModellingRule |
|
Subtype of the OffNormalAlarmType defined in clause 5.8.24.2. |
|||||
|
|
|
|
|
||
|
ConformanceUnits |
|||||
|
A & C InstrumentDiagnostic |
|||||
The SystemDiagnosticAlarmType is a specialization of the OffNormalAlarmType intended to represent a fault in a system or sub-system. The Alarm becomes active when the monitored system experiences a fault. It is formally defined in Table 108108. This Type is mainly used for categorization.
Table 110110 – SystemDiagnosticAlarmType definition
|
Attribute |
Value |
||||
|
BrowseName |
SystemDiagnosticAlarmType |
||||
|
IsAbstract |
False |
||||
|
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
ModellingRule |
|
Subtype of the OffNormalAlarmType defined in clause 5.8.24.2. |
|||||
|
|
|
|
|
||
|
ConformanceUnits |
|||||
|
A & C SystemDiagnostic |
|||||
This SystemOffNormalAlarmType is raised by the Server when the Server’s Certificate is within the ExpirationLimit of expiration. This Alarm automatically returns to normal when the certificate is updated.
Table 111111 – CertificateExpirationAlarmType definition
|
Attribute |
Value |
||||
|
BrowseName |
CertificateExpirationAlarmType |
||||
|
IsAbstract |
False |
||||
|
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
ModellingRule |
|
Subtype of the SystemOffNormalAlarmType defined in clause 5.8.24.3 |
|||||
|
HasProperty |
Variable |
ExpirationDate |
DateTime |
PropertyType |
Mandatory |
|
HasProperty |
Variable |
ExpirationLimit |
Duration |
PropertyType |
Optional |
|
HasProperty |
Variable |
CertificateType |
NodeId |
PropertyType |
Mandatory |
|
HasProperty |
Variable |
Certificate |
ByteString |
PropertyType |
Mandatory |
|
ConformanceUnits |
|||||
|
A & C CertificateExpiration |
|||||
ExpirationDate is the date and time this certificate will expire.
ExpirationLimit is the time interval before the ExpirationDate at which this Alarm will trigger. This shall be a positive number. If the property is not provided, a default of 2 weeks shall be used.
CertificateType – See Part 12 for definition of CertificateType.
Certificate is the certificate that is about to expire.
The DiscrepancyAlarmType is commonly used to report an action that did not occur within an expected time range.
The DiscrepancyAlarmType is based on the AlarmConditionType. It is formally defined in Table 112112.
Table 112112 – DiscrepancyAlarmType definition
|
Attribute |
Value |
||||
|
BrowseName |
DiscrepancyAlarmType |
||||
|
IsAbstract |
False |
||||
|
References |
Node Class |
BrowseName |
DataType |
TypeDefinition |
ModellingRule |
|
Subtype of the AlarmConditionType defined in 5.8.2. |
|||||
|
HasProperty |
Variable |
TargetValueNode |
NodeId |
PropertyType |
Mandatory |
|
HasProperty |
Variable |
ExpectedTime |
Duration |
PropertyType |
Mandatory |
|
HasProperty |
Variable |
Tolerance |
Double |
PropertyType |
Optional |
|
ConformanceUnits |
|||||
|
A & C Discrepancy |
|||||
The TargetValueNode Property provides the NodeId of the Variable that is used for the target value.
The ExpectedTime Property provides the Duration within which the value pointed to by the InputNode shall equal the value specified by the TargetValueNode (or be within the Tolerance range, if specified).
The Tolerance Property is a value that can be added to or subtracted from the TargetValueNode’s value, providing a range that the value can be in without generating the Alarm.
A DiscrepancyAlarmType can be used to indicate a motor has not responded to a start request within a given time, or that a process value has not reached a given value after a setpoint change within a given time interval.
The DiscrepancyAlarmType shall return to normal when the value has reached the target value.