The DataChangeFilterdefines the conditions under which a DataChange Notificationshould be reported and, optionally, a range or band for value changes where no DataChange Notificationis generated. This range is called Deadband. The DataChangeFilteris 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 StatusCodeassociated with the value changes. See Table 178for StatusCodesdefined in this standard. OPC 10000-8specifies additional StatusCodesthat are valid in particular for device data.

STATUS_VALUE_1Report a notification if either the StatusCodeor the value change. The Deadbandfilter can be used in addition for filtering value changes.

For floating point values a Servershall 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 SourceTimestampchange. If a Deadbandfilter 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 Deadbandtype and behaviour.

Value deadbandType

None_0 No Deadbandcalculation should be applied.

Absolute_1 AbsoluteDeadband (see below)

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

deadbandValue

Double

The Deadbandis applied only if* the triggerincludes value changes and* the deadbandTypeis set appropriately.

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

DeadbandType = AbsoluteDeadband:

For this type the deadbandValuecontains the absolute change in a data value that shall cause a Notificationto be generated. This parameter applies only to Variables with any Numberdata type.

An exception that causes a DataChange Notificationbased 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.