Annex D (informative) Mapping from OPC A&E to OPC UA A&C ToC Previous Next

D.2 Alarms and Events COM UA wrapper ToC Previous Next

D.2.5 Event subscriptions ToC Previous Next

The A&E COM UA Wrapper creates a Subscription with the COM AE Server the first time a MonitoredItem is created for the Server Object or one of the Nodes representing Areas. The Area filter is set based on the Node being monitored. No other filters are specified.

If all MonitoredItems for an Area are disabled then the Subscription will be deactivated.

The Subscription is deleted when the last MonitoredItem for the Node is deleted.

When filtering by Area the A&E COM UA Wrapper needs to add two Area filters: one based on the QualifiedAreaName which forms the NodeId and one with the text ‘/*’ appended to it. This ensures that Events from sub areas are correctly reported by the COM AE Server.

A simple A&E COM UA Wrapper will always request all Attributes for all Event Categories when creating the Subscription. A more sophisticated wrapper may look at the EventFilter to determine which Attributes are actually used and only request those.

Table D.2 lists how the fields in the ONEVENTSTRUCT that are used by the A&E COM UA Wrapper are mapped to UA BaseEventType Variables.

Table D.2 – Mapping from ONEVENTSTRUCT fields to UA BaseEventType Variables

UA Event Variable ONEVENTSTRUCT Field Notes
EventId szSource
szConditionName
ftTime
ftActiveTime
dwCookie
A ByteString constructed by appending the fields together.
EventType dwEventType
dwEventCategory
szConditionName
The NodeId for the corresponding ObjectType Node. The szConditionName maybe omitted by some implementations.
SourceNode szSource The NodeId of the corresponding Source Object Node.
SourceName szSource -
Time ftTime -
ReceiveTime - Set when the Notification is received by the wrapper.
LocalTime - Set based on the clock of the machine running the wrapper.
Message szMessage Locale is the default locale for the COM AE Server.
Severity dwSeverity -

Table D.3 lists how the fields in the ONEVENTSTRUCT that are used by the A&E COM UA Wrapper are mapped to UA AuditEventType Variables.

Table D.3 – Mapping from ONEVENTSTRUCT fields to UA AuditEventType Variables

UA Event Variable ONEVENTSTRUCT Field Notes
ActionTimeStamp ftTime Only set for tracking Events.
Status - Always set to True.
ServerId - Set to the COM AE Server NamespaceURI
ClientAuditEntryId - Not set.
ClientUserId szActorID -

Table D.4 lists how the fields in the ONEVENTSTRUCT that are used by the A&E COM UA Wrapper are mapped to UA AlarmType Variables.

Table D.4 – Mapping from ONEVENTSTRUCT fields to UA AlarmType Variables

UA Event Variable ONEVENTSTRUCT Field Notes
ConditionClassId dwEventType Set to the NodeId of the ConditionClassType for the Event Category of a Condition Event Type. Set to the NodeId of BaseConditionClassType Node for non-Condition Event Types.
ConditionClassName dwEventType Set to the BrowseName of the ConditionClassType for the Event Category of Condition Event Type. To set “BaseConditionClass” non-Condition Event Types.
ConditionName szConditionName -
BranchId - Always set to NULL.
Retain wNewState Set to True if the OPC_CONDITION_ACKED bit is not set or OPC_CONDITION_ACTIVE bit is set.
EnabledState wNewState Set to “Enabled” or “Disabled”
EnabledState.Id wNewState Set to True if OPC_CONDITION_ENABLED is set
EnabledState.
EffectiveDisplayName
wNewState A string constructed from the bits in the wNewState flag.
The following rules are applied in order to select the string:
“Disabled” if OPC_CONDITION_ENABLED is not set.
“Unacknowledged” if OPC_CONDITION_ACKED is not set.
“Active” if OPC_CONDITION_ACKED is set.
“Enabled” if OPC_CONDITION_ENABLED is set.
Quality wQuality The COM DA Quality converted to a UA StatusCode.
Severity dwSeverity Set based on the last Event received for the Condition instance.
Set to the current value if the last Event is not available.
Comment - The value of the ACK_COMMENT Attribute
ClientUserId szActorID -
AckedState wNewState Set to “Acknowledged” or “Unacknowledged “
AckedState.Id wNewState Set to True if OPC_CONDITION_ACKED is set
ActiveState wNewState Set to “Active” or “Inactive “
ActiveState.Id wNewState Set to True if OPC_CONDITION_ACTIVE is set
ActiveState.TransitionTime ftActiveTime This time is set when the ActiveState transitions from False to True.
   Note: Additional logic applies to exclusive limit alarms, in that the LimitState.TransitionTime also needs to be set, but this is set each time a limit is crossed (multiple limits might exist). For the initial transition to True the ftActiveTime is used for both LimitState.TransitionTime and ActiveState.TransitionTime. For subsequent transition the ActiveState.Transition time does not change, but the LimitState.TransitionTime will be updated with the new ftActiveTime.
For example, if an alarm has Hi and HiHi limits, when the Hi limit is crossed and the alarm goes active the FTActiveTime is used for both times, but when the HiHi limit is later crossed, the FtActiveTime is only be used for the LimitState.TransitionTime. Note: The ftActiveTime is part of the key for identifying the unique event in the A&E server and needs to be saved for processing any commands back to the A&E Server.
     

The A&C Condition Model defines other optional Variables which are not needed in the A&E COM UA Wrapper. Any additional fields associated with Event Attributes are also reported.

Previous Next