The DataChangeFilter defines the conditions under which a DataChange Notification should be reported and, optionally, a range or band for value changes where no DataChange Notification is generated. This range is called Deadband. The DataChangeFilter is defined in Table 141.

Table 141 – DataChangeFilter

Name

Type

Description

DataChangeFilter

structure

trigger

Enum

DataChangeTrigger

Specifies the conditions under which a data change notification should be reported. It has the following values:

STATUS_0Report a notification ONLY if the StatusCode associated with the value changes. See Table 178 for StatusCodes defined in this standard. OPC 10000-8 specifies additional StatusCodes that are valid in particular for device data.

STATUS_VALUE_1Report a notification if either the StatusCode or the value change. The Deadband filter can be used in addition for filtering value changes.

For floating point values a Server shall check for NaN and only report a single notification with NaN when the value enters the NaN state.

This is the default setting if no filter is set.

STATUS_VALUE_TIMESTAMP_2Report a notification if either StatusCode, value or the SourceTimestamp change. If a Deadband filter is specified, this trigger has the same behaviour as STATUS_VALUE_1.

If the DataChangeFilter is not applied to the monitored item, STATUS_VALUE_1 is the default reporting behaviour.

deadbandType

UInt32

A value that defines the Deadband type and behaviour.

Value deadbandType

None_0 No Deadband calculation should be applied.

Absolute_1 AbsoluteDeadband (see below)

Percent_2 PercentDeadband (This type is specified in OPC 10000-8).

deadbandValue

Double

The Deadband is applied only if* the trigger includes value changes and* the deadbandType is set appropriately.

Deadband is ignored if the status of the data item changes.

DeadbandType = AbsoluteDeadband:

For this type the deadbandValue contains the absolute change in a data value that shall cause a Notification to be generated. This parameter applies only to Variables with any Number data type.

An exception that causes a DataChange Notification based on an AbsoluteDeadband is determined as follows:

Generate a Notification if (absolute value of (last cached value - current value) > AbsoluteDeadband)

The last cached value is defined as the last value pushed to the queue.

If the item is an array of values, the entire array is returned if any array element exceeds the AbsoluteDeadband, or the size or dimension of the array changes.

DeadbandType = PercentDeadband:

This type is specified in OPC 10000-8

The DataChangeFilter does not have an associated result structure.