DNP3 OPC Items

Standard Items

See Device Standard Items.

Protocol Items

The DNP3 protocol implementation supports the fields of DNP3 objects as item names. The ReadType field of an item indicates how the object should be read from the DNP3 device:

ReadTypeExampleDescription

c0

BinaryInput_State:0:c0

Read the object with a class 0 poll. A class 0 poll returns values for all objects in class 0. The object referenced by the item must be in class 0 for its value to be returned.

c1

c2

c3

BinaryInput_State:0:c1

BinaryInput_State:0:c2

BinaryInput_State:0:c3

Read the object with a class 1/2/3 poll. A class 1/2/3 poll returns values for all objects in class 1/2/3 whose values have changed since the last class 1/2/3 poll. The object must be in the class specified, and collection of that class must be enabled at the device, for its value to be returned.  The item will be initialized with class 0 poll (all objects in class 1/2/3 are also in class 0), unless the option to disable class 0 initialization is selected.


iBinaryInput_State:0:i

Read the object with an index poll. An index poll returns values for all objects in a list of indexes. To build messages with the most compact index lists, activate items in order of group and index: Binary Input 1, Binary Input 2, ... , Analog Input 1, Analog Input 2, ... ,  etc. Not all DNP3 devices will support reading objects by index.

<none>BinaryInput_State:0Read the object with a group poll. A group poll returns values for all objects in the group. Not all DNP3 devices will support reading objects by group.

Binary Input Items

ItemData TypeDescription
BinaryInput_State:N:ReadTypeBOOLValue of binary input N.

BinaryInput_Online:N:ReadType

BinaryInput_Restart:N:ReadType

BinaryInput_CommLost:N:ReadType

BinaryInput_ForcedRemote:N:ReadType

BinaryInput_ForcedLocal:N:ReadType

BinaryInput_Filter:N:ReadType

BOOL

BOOL

BOOL

BOOL

BOOL

BOOL

Flags for binary input N.
BinaryInput_ChangeTime:N:ReadTypeR8Timestamp of change event for binary input N.
BinaryInput_TimeSynched:N:ReadTypeBOOLIndicates whether timestamp for binary input N was synchronized or unsynchronized.

Binary Output Items

ItemData TypeDescription
BinaryOutput_State:N:ReadTypeBOOLValue of binary output N.  BinaryOutput_State is a read-only item. To write to a binary output, use the appropriate binary block items.

BinaryOutput_Online:N:ReadType

BinaryOutput_Restart:N:ReadType

BinaryOutput_CommLost:N:ReadType

BinaryOutput_ForcedRemote:N:ReadType

BinaryOutput_ForcedLocal:N:ReadType

BOOL

BOOL

BOOL

BOOL

BOOL

Flags for binary output N.
BinaryBlock_Latch:NI2

Implements a single-item latch command for binary output N. The command is direct operate, unless the option to use select-operate instead is checked in the Device Tab.

Write 0 to send a latch off command or 1 to send a latch on command. 

Note:  This item doesn't specify the trip/close state and therefore can't be used for paired relay binary outputs.

BinaryBlock_Code:N

BinaryBlock_Queue:N

BinaryBlock_Clear:N

BinaryBlock_Trip:N

BinaryBlock_Close:N

BinaryBlock_Count:N

BinaryBlock_Ontime:N

BinaryBlock_Offtime:N



I2

BOOL

BOOL

BOOL

BOOL

I2

R8

R8


Implement multiple-item control commands for binary output N.  The commands are direct operate, unless the option to use select-operate instead is checked in the Device Tab.

Writing to these items sets the fields of the command that will be sent by writing to the BinaryBlock_Code item.

You should make sure all these items are set to the desired values before writing to the BinaryBlock_Code item.

BinaryBlock_Ontime - On-time for pulse on and pulse off commands
BinaryBlock_Offtime - Off-time for pulse on and pulse off commands
BinaryBlock_Count - Number of times the output will be pulsed for the on-time and off-time before leaving it in its final state

BinaryBlock_Trip - For binary outputs that are paired relays, change the output of the trip relay
BinaryBlock_Close - For binary outputs that paired relays, change the output the close relay

BinaryBlock_Queue - After this control operation is executed, put it back at the end of the queue to be executed again
BinaryBlock_Clear - Remove all control operations currently in the queue, then execute this control operation

Writing to the BinaryBlock_Code item will send the command to change the binary output.

The following values can be written to the BinaryBlock_Code item to change the binary output in the specified ways:

0 - No Operation - Used to clear the control operations queue without performing another control operation.
1 - Pulse On - Turn the binary output on for the specified on-time, then off for the specified off-time, and leave it off.
2 - Pulse Off - Turn the binary output off for the specified off-time, then on for the specified on-time, and leave it on.
3 - Latch On - Turn the binary output on.
4 - Latch Off - Turn the binary output off.

BinaryBlock_Status:N

I2

Status from response to most recent control command for binary output N.

BinaryBlock_Reserve:NBOOLReserve bit always set to zero as of current DNP3 specification.

Counter Items

ItemData TypeDescription
Counter_State:N:ReadTypeR8Value of counter N.

Counter_Online:N:ReadType

Counter_Restart:N:ReadType

Counter_CommLost:N:ReadType

Counter_ForcedRemote:N:ReadType

Counter_ForcedLocal:N:ReadType

Counter_Rollover:N:ReadType

BOOL

BOOL

BOOL

BOOL

BOOL

BOOL

Flags for counter N.
Counter_Delta:N:ReadTypeBOOLIndicates whether or not counter N is a delta counter.
Counter_Size:N:ReadTypeI2Size of counter N: 16-bit or 32-bit.

Analog Input Items

ItemData TypeDescription
AnalogInput_Value:N:ReadTypeR8Value of analog input N.

AnalogInput_Online:N:ReadType

AnalogInput_Restart:N:ReadType

AnalogInput_CommLost:N:ReadType

AnalogInput_ForcedRemote:N:ReadType

AnalogInput_ForcedLocal:N:ReadType

AnalogInput_OverRange:N:ReadType

AnalogInput_RefCheck:N:ReadType

BOOL

BOOL

BOOL

BOOL

BOOL

BOOL

BOOL

Flags for analog input N.
AnalogInput_ChangeTime:N:ReadTypeR8Timestamp of change event for analog input N.
AnalogInput_Size:N:ReadTypeI2Size of analog input N: 16-bit, 32-bit, or 64-bit.
AnalogInput_IsFloat:N:ReadTypeBOOLIndicates whether analog input N is a float or an integer.

Analog Output Items

ItemData TypeDescription
AnalogOutput_Value:N:ReadTypeR8Value of analog output N.  AnalogOutput_Value is a read-only item. To write to an analog output, use the appropriate analog block item.

AnalogOutput_Online:N:ReadType

AnalogOutput_Restart:N:ReadType

AnalogOutput_CommLost:N:ReadType

AnalogOutput_ForcedRemote:N:ReadType

BOOL

BOOL

BOOL

BOOL

Flags for analog output N.


AnalogOutput_Size:N:ReadTypeI2Size of analog output N: 16-bit, 32-bit, or 64-bit.
AnalogOutput_IsFloat:N:ReadTypeBOOLIndicates whether analog output N is a float or an integer.

AnalogBlock_Value:N

AnalogBlock_Value32:N

AnalogBlock_Float32:N

AnalogBlock_Float64:N

R8

R8

R8

R8

Implement write command for analog output N.  The command is direct operate, unless the option to use select-operate instead is checked in the Device Tab.

Write the value to the AnalogBlock item that matches the data type of the analog output:

Write to AnalogBlock_Value for a 16-bit integer analog output.

Write to AnalogBlock_Value32 for a 32-bit Integer analog output.

Write to AnalogBlock_Float32 for a 32-bit floating point analog output.

Write to AnalogBlock_Float64 for a 64-bit floating point analog output.

AnalogBlock_Status:NI2Status from response to most recent control command for binary output N.
AnalogBlock_Size:NI2Size of analog output N: 16-bit, 32-bit, or 64-bit.

Internal Indication Items

ItemData TypeDescription

IIN_BroadcastReceived

IIN_Class1Available

IIN_Class2Available

IIN_Class3Available

IIN_TimeSyncRequired

IIN_LocalOutputs

IIN_DeviceTrouble

IIN_DeviceRestart

IIN_UnimplementedCode

IIN_UnknownObject

IIN_InvalidParameters

IIN_BufferOverflow

IIN_OperationExecuting

IIN_CorruptConfig

BOOL

BOOL

BOOL

BOOL

BOOL

BOOL

BOOL

BOOL

BOOL

BOOL

BOOL

BOOL

BOOL

BOOL

These items are updated with the values of the internal indications (IINs) whenever a response containing IINs is received.  The device will not be polled specifically to update these items.  When no DNP3 communication from other sources is taking place, the items will not be updated, and assigning them to a particular interval has no affect.

IIN_DeviceRestart may be cleared by writing Off to the item.  All other IIN items are read-only.

Internal_Indication:N:ReadTypeBOOL

Addressed by item name, index, and class, e.g., Internal_Indication:0:c2 means that the state of Internal Indication 0 will be read using a Class 2 poll.

When a new item is added, a Class 0 poll is issued to initialize it. After that, a class poll (including Class 0 if specified) will be run on the item interval.

Miscellaneous Items

ItemData TypeDescription
DataIntegrityCheckI4

This item is polled by sending a class 0 poll and updating all active items that are in class 0 with the response data. If the poll is successful, the item will be set to an integer indicating the date/time of poll: MMDDHHMM (for example, 2111520 for Feb 11, 3:20pm).  There is an option in the Device Tab to prevent a class 0 poll from the DataIntegrityCheck item from being sent during a demand poll.

Writing a -1 to this item will force the class 0 poll to be sent immediately.

Cold_RestartI4

Writing a -1 to this item will send a cold restart command to the device.  If the command is successful, the item will be set to time delay value (in millisecs) returned in the response.

Extended Items

ItemData TypeDescription
TimeSyncI2Write a positive value to this item to perform a time synchronization.
LastTimeSyncDATEDate and time of the last time synchronization.
LastTimeSyncResultI4Result of the last time synchronization: 0 = In Progress, 1 = Success, -100 (default) = Alarm, -200 (default) = Error.
LastClassCfgReadDATETimestamp of the most recent publication of the class configuration data.
LastClass1RecordDATETimestamp of the latest class 1 record collected.
LastClass2RecordDATETimestamp of the latest class 2 record collected.
LastClass3RecordDATETimestamp of the latest class 3 record collected.
RetrieveHistoryI2Write a positive value to this item to retrieve history.
#LOG_EFM_ITEMSI4Write a value to this item to log status information for all EFM items.
#LOG_ITEM_LISTI4Write a value to this item to log status information for all items that have been advised to the device.
#LOG_READ_QUEUEI4Write a value to this item to log status information for all poll messages in the device read queue.
#LOG_WRITE_QUEUEI4Write a value to this item to log status information for all poll messages in the device write queue.

Item Scaling

The DNP3 protocol module supports scaling of item values. This allows client applications to view or change data based on engineering units instead of raw device data. Any register-based item can be scaled, with the exception of Boolean (bit) and String items. To apply scaling to an item, use the following syntax as the OPC item name:

ItemName{Gain:Offset}

Where:

  • ItemName is any valid numeric item
  • Gain is a multiplier
  • Offset is an addition

Item Scaling Examples

OPC ItemRaw DataScalingScaled Value
AnalogInput_Value:0:c1{1.5:1}2.0(2.0 * 1.5) + 14
AnalogInput_Value:0:c1{0.2:-1}2.0(2.0 * 0.2) - 1-0.6


For assistance, please submit a ticket via our Support Portal, email autosol.support@autosoln.com or call 281.286.6017 to speak to a support team member.