DNP3 Objects

The DNP3 protocol transmits data in the form of objects. An object is composed of a data value and any related fields, such as flags or timestamps. Objects can be polled by object class, object group, object variation, and/or object index.

Object Groups

Object groups are defined by the DNP3 protocol specification to describe the kind of data that an object contains.

These are the object groups defined by Std 1815-2012:

  • Device Attribute

  • Binary Input

  • Binary Input Change (Binary Input Event)

  • Double-Bit Binary Input

  • Double-Bit Binary Input Event

  • Binary Output

  • Binary Output Event

  • Control Block (Binary Output Command)

  • Binary Output Command Event

  • Binary Counter (Counter)

  • Frozen Counter

  • Counter Change Event (Counter Event)

  • Frozen Counter Event

  • Analog Input

  • Frozen Analog Input

  • Analog Change Event (Analog Input Event)

  • Frozen Analog (Input) Event

  • Analog Input Deadband

  • Analog Output Status

  • Analog Output Block (Analog Output)

  • Analog Output Event

  • Analog Output Command Event

  • Time and Date

  • Time and Date Common Time of Occurrence

  • Time Delay

  • Class Object

  • File Control

  • Internal Indication

  • Device Storage

  • Device Profile

  • Private Registration Data Set

  • Data Set Prototype

  • Data Set Descriptor

  • Data Set

  • Data Set Event

  • Application

  • Status of Requested Operation

  • Floating Point

  • Binary-Coded Decimal

  • Unsigned Integer

  • Octet String

  • Octet String Event

  • Virtual Terminal Output Block

  • Virtual Terminal Event

  • Authentication

  • Security Statistic

  • Security Statistic Event

Object Variation

Objects in each group can occur in multiple object variations. The object variation is determined by the fields that the object contains and the format their data is stored in.

For example, an Analog Input object can occur in the following variations:

  • 32-Bit Analog Input (with Flag): 8-bit flag, 32-bit integer value

  • 16-Bit Analog Input (with Flag): 8-bit flag, 16-bit integer value

  • 32-Bit Analog Input without Flag: 32-bit integer value

  • 16-Bit Analog Input without Flag: 16-bit integer value

  • Short (Single Precision) Floating Point Analog Input (with Flag): 8-bit flag, 32-bit float value

  • Long (Double Precision) Floating Point Analog Input (with Flag): 8-bit flag, 64-bit float value


An Analog Output Event object can occur in the following variations:

  • 32-Bit Analog Output Event without Time: 8-bit flag, 32-bit integer value

  • 16-Bit Analog Output Event without Time: 8-bit flag, 16-bit integer value

  • 32-Bit Analog Output Event with Time: 8-bit flag, 32-bit integer value, 48-bit timestamp

  • 16-Bit Analog Output Event with Time: 8-bit flag, 16-bit integer value, 48-bit timestamp

  • Single Precision Floating Point Analog Output Event without Time: 8-bit flag, 32-bit float value

  • Double Precision Floating Point Analog Output Event without Time: 8-bit flag, 64-bit float value

  • Single Precision Floating Point Analog Output Event with Time: 8-bit flag, 32-bit float value, 48-bit timestamp

  • Double Precision Floating Point Analog Output Event with Time: 8-bit flag, 64-bit float value, 48-bit timestamp

Point Type

Multiple object groups may reference the same point type. Objects with the same index and the same point type contain data for the same point, even if they are of different groups and variations. That is, the Binary Input object with index 1 and the Binary Input Change object with index 1 contain the value of the same binary input point.

These are the point types and their object groups defined by Std 1815-2012:

Single-Bit Binary Input

  • Binary Input

  • Binary Input Change (Binary Input Event)

Double-Bit Binary Input

  • Double-Bit Binary Input

  • Double-Bit Binary Input Event

Binary Output Point Type

  • Binary Output

  • Binary Output Event

  • Control Block (Binary Output Command)

  • Binary Output Command Event

Counter Point Type

  • Binary Counter (Counter)

  • Frozen Counter

  • Counter Change Event (Counter Event)

  • Frozen Counter Event

Analog Input Point Type

  • Analog Input

  • Frozen Analog Input

  • Analog Change Event (Analog Input Event)

  • Frozen Analog (Input) Event

  • Analog Input Deadband

Analog Output Point Type

  • Analog Output Status

  • Analog Output Block (Analog Output)

  • Analog Output Event

  • Analog Output Command Event

BCD Point Type

  • Binary-Coded Decimal

Octet String Point Type

  • Octet String

  • Octet String Event

Virtual Terminal Point Type

  • Virtual Terminal Output Block

  • Virtual Terminal Event

Security Statistics Point Type

  • Security Statistic

  • Security Statistic Event

Object Index

A DNP3 device will normally have more than one object of each point type.

For example, a DNP3 device might have:

  • 10 Binary Inputs

  • 8 Binary Outputs

  • 6 Analog Inputs

  • 4 Analog Output Statuses

These objects are referenced by indexes starting with zero:

  • Binary Input 0 - 9

  • Binary Output 0 - 7

  • Analog Input 0 - 5

  • Analog Output Status 0 - 3

Object Class

Object classes are defined by the user (with certain restrictions) to contain a subset of objects, which then may all be read at once by polling the object class. Class 0 may only contain static objects -- objects that contain a current value. Class 1, Class 2, and Class 3 may only contain event objects -- objects that contain a value from the time when the event occurred.

If an event object is assigned to Class 1 - 3, its corresponding static value will automatically be assigned to Class 0. For example, assigning Binary Output Event 1 to Class 2 will also assign Binary Output 1 to Class 0. A static object that is not assigned to Class 0 can still be read by polling the object group. An event object that is not assigned to Class 1 - 3 will not have its event stored by the device, and therefore cannot be read by polling the object group.

The following object groups may be assigned to Class 0:

  • Binary Input

  • Double-Bit Binary Input

  • Binary Output Status (with Flags)

  • Binary Counter (Counter)

  • Frozen Counter

  • Analog Input

  • Frozen Analog Input

  • Analog Output Status

  • Analog Output Block (Analog Output)

  • Analog Output Event

  • Analog Output Command Event

  • Data Set

  • Binary-Coded Decimal

  • Unsigned Integer

  • Octet String

  • Security Statistic

The following object groups may be assigned to Class 1 - 3:

  • Binary Input Change (Binary Input Event)

  • Double-Bit Binary Input Event

  • Binary Output Event

  • Binary Output Command Event

  • Counter Change Event (Counter Event)

  • Frozen Counter Event

  • Analog Change Event (Analog Input Event)

  • Frozen Analog (Input) Event

  • Analog Output Event

  • Analog Output Command Event

  • File Control

  • Data Set Event

  • Octet String Event

  • Virtual Terminal Event

  • Authentication

  • Security Statistic Event

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.