The NotificationMessagestructure used in the Subscription Serviceset allows specifying different types of NotificationData. The NotificationDataparameter is an extensible parameter whose structure depends on the type of Notificationbeing sent. This parameter is defined in Table 159. Other types can be defined by additional parts of series of standards or other specifications based on OPC UA. The ExtensibleParametertype is defined in 7.12.

There may be multiple notifications for a single MonitoredItemin a single NotificationData structure. When that happens the Servershall ensure the notifications appear in the same order that they were queued in the MonitoredItem. These notifications do not need to appear as a contiguous block.

Table 159– NotificationData parameterTypeIds

Symbolic Id

Description

DataChange

Notificationdata parameter used for data change Notifications.

Event

Notificationdata parameter used for Event Notifications.

StatusChange

Notificationdata parameter used for Subscription status change Notifications.

Table 160defines the NotificationDataparameter used for data change notifications. This structure contains the monitored data items that are to be reported. Monitored data items are reported under two conditions:

  1. if the MonitoringModeis set to REPORTING and a change in value or its status (represented by its StatusCode) is detected;
  2. if the MonitoringModeis set to SAMPLING, the MonitoredItemis linked to a triggering item and the triggering item triggers.

See 5.12for a description of the MonitoredItem Serviceset, and in particular the MonitoredItem modeland the Triggering model.

After creating a MonitoredItem,the current value or status of the monitored Attribute shall be queued without applying the filter. If the current value is not available after the first sampling interval the first Notificationshall be queued after getting the initial value or status from the data source.

Table 160– DataChangeNotification

Name

Type

Description

DataChangeNotification

structure

Data change Notificationdata.

monitoredItems []

MonitoredItem Notification

The list of MonitoredItemsfor which a change has been detected. This structure is defined in-line with the following indented items.

clientHandle

IntegerId

Client-supplied handle for the MonitoredItem. The IntegerIdtype is defined in 7.14

Value

DataValue

The StatusCode, value and timestamp(s) of the monitored Attributedepending on the sampling and queuing configuration.

If the StatusCodeindicates an error then the value is to be ignored.

If not every detected change has been returned since the Server's queue buffer for the MonitoredItemreached its limit and had to purge out data and the size of the queue is larger than one, the Overflowbit in the DataValue InfoBitsof the statusCodeis set.

DataValueis a common type defined in 7.7.

diagnosticInfos []

DiagnosticInfo

List of diagnostic information. The size and order of this list matches the size and order of the monitoredItemsparameter. There is one entry in this list for each Nodecontained in the monitoredItemsparameter. This list is empty if diagnostics information was not requested or is not available for any of the MonitoredItems. DiagnosticInfois a common type defined in 7.8.

Table 161defines the NotificationDataparameter used for Event notifications.

The EventNotificationList defines a table structure that is used to return Eventfields to a Client Subscription. The structure is in the form of a table consisting of one or more Events, each containing an array of one or more fields. The selection and order of the fields returned for each Eventis identical to the selected parameter of the EventFilter.

Table 161– EventNotificationList

Name

Type

Description

EventNotificationList

structure

Event Notificationdata.

events []

EventFieldList

The list of Eventsbeing delivered. This structure is defined in-line with the following indented items.

clientHandle

IntegerId

Client-supplied handle for the MonitoredItem. The IntegerIdtype is defined in 7.14.

eventFields []

BaseDataType

List of selected Eventfields. This shall be a one to one match with the fields selected in the EventFilter.

7.17.3specifies how the Servershall deal with error conditions.

Table 162defines the NotificationDataparameter used for a StatusChangeNotification.

The StatusChangeNotificationinforms the Clientabout a change in the status of a Subscription.

Table 162– StatusChangeNotification

Name

Type

Description

StatusChangeNotification

structure

Event Notificationdata

status

StatusCode

The StatusCodethat indicates the status change.

diagnosticInfo

DiagnosticInfo

Diagnostic information for the status change