The A&E COM UA Wrapper creates a Subscriptionwith the COM AE Serverthe first time a MonitoredItemis created for the Server Objector one of the Nodes representing Areas. The Area filter is set based on the Nodebeing monitored. No other filters are specified.

If all MonitoredItemsfor an Area are disabled then the Subscriptionwill be deactivated.

The Subscriptionis deleted when the last MonitoredItemfor the Nodeis 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 NodeIdand 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 Attributesfor all EventCategories when creating the Subscription. A more sophisticated wrapper may look at the EventFilterto determine which Attributesare actually used and only request those.

Table D.2lists 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 NodeIdof the corresponding Source Object Node.

SourceName

szSource

-

Time

ftTime

-

ReceiveTime

-

Set when the Notificationis 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.3lists 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 ServerNamespaceURI

ClientAuditEntryId

-

Not set.

ClientUserId

szActorID

-

Table D.4lists 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 NodeIdof the ConditionClassTypefor the EventCategory of a Condition EventType. Set to the NodeIdof BaseConditionClassType Nodefor non-Condition EventTypes.

ConditionClassName

dwEventType

Set to the BrowseNameof the ConditionClassTypefor the EventCategory of Condition EventType. To set “BaseConditionClass" non-Condition EventTypes.

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 Eventreceived for the Conditioninstance.

Set to the current value if the last Eventis 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 ActiveStatetransitions 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 ConditionModel defines other optional Variables which are not needed in the A&E COM UA Wrapper. Any additional fields associated with Event Attributesare also reported.