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.