The DataChangeFilterin OPC 10000-4defines the conditions under which a data change notification shall be reported. This filter contains a deadbandValuewhich can be of type AbsoluteDeadbandor PercentDeadband. OPC 10000-4already specifies the behaviour of the AbsoluteDeadband. This sub-clause specifies the behaviour of the PercentDeadbandtype.

DeadbandType = PercentDeadband

For this type of deadband the deadbandValueis defined as the percentage of the EURange. That is, it applies only to AnalogItemswith an EURange Propertythat defines the typical value range for the item. This range shall be multiplied with the deadbandValueand then compared to the actual value change to determine the need for a data change notification. The following pseudo code shows how the deadband is calculated:

DataChange if (absolute value of (last cached value - current value) > (deadbandValue/100.0) * ((high–low) of EURange)))

The range of the deadbandValueis from 0.0 to 100.0 Percent. Specifying a deadbandValueoutside of this range will be rejected and reported with the StatusCodeBad_DeadbandFilterInvalid (see Table 28).

If the Value of the MonitoredItemis an array, then the deadband calculation logic shall be applied to each element of the array. If an element that requires a DataChange is found, then no further deadband checking is necessary and the entire array shall be returned.