DNP3 Levels
Because there are so many different types of DNP3 objects and groupings in which they can be polled (for an overview, see DNP3 Objects), DNP3 hosts and devices are not required to support all of them. Instead, these features are divided into implementation levels. Each implementation level contains a subset of requests that a device must respond to and responses that a host must process, including commands, object types, and groupings of objects.
The level requirements for DNP3 hosts and DNP3 devices are independent of one another. A Level 1 device is not required to contain all the objects that a Level 1 host is capable of processing, and Level 1 host is not required to send all the requests that a Level 1 device is capable of responding to. To be identified as a host or a device of a particular level, the host or device must support all features of that level and all features of the lower levels as well. A Level 2 device must support all features required of Level 1 devices as well as of Level 2. A Level 3 host must support all features required of Level 1, Level 2, and Level 3 hosts.
This page lists all the features required to be supported by each DNP3 implementation level and identifies which ones are supported or not supported by ACM. For a listing of only those DNP3 features supported by ACM (not broken down by implementation level) see DNP3 Supported Features.
Standards
Implementation levels are defined by the DNP3 protocol specification, which is maintained by the DNP3 User Group. The latest release of this specification is IEEE Std 1815-2012, in which four implementation levels of DNP3 are defined. The sections below list the requirements for each level, identifying the features that ACM does and does not support.
Note: The ACM DNP3 protocol was originally developed using an earlier version of the specification: the DNP3 Document Library, March 13, 2002 release. The ACM DNP3 items were named to match the object group names used in that version. Some of these object gropu names have been changed in the latest release. This page will use object group names that match the ACM items. When the older name is used, the newer name will be referenced in parentheses.
Implementation Levels
At Level 1, the host processes objects of the basic data types, most without timestamps and most read by polling all objects of an object class. Event objects will be processed if received in unsolicited messages. The host performs control operations on binary and analog outputs, issues cold restarts and clears the restart flag, and writes the time and date when the device requests a time sync. It does not read the time or support any kind of frozen objects.
At Level 2, some frozen objects and freeze commands are supported. Many objects can now be read by polling all objects of the same group rather than an entire class, and event objects can also be read by polling a count of objects of the same group rather than all of them.
At Level 3, more object groups and variations are supported, and more can be read by object group rather than by class. More event objects can be read by count of objects, and some static objects can be read by object start and stop indexes, rather than all objects of the same group. Unsolicited messages can be enabled or disabled for all objects in a specified class. Objects can be dynamically reassigned to different classes.
At Level 4, the following new objects are supported: Device Attribute, Double-Bit Binary Input, Analog Input Reporting Deadband, Binary Output Event, and Analog Output Event. More variations with times are included for event and frozen objects, as well as floating point variations for analog objects.
Beyond Level 4, there are other object groups that are part of the DNP3 specification, but are not required to be supported at any level. The sections below describe the requirements of each level in more detail and specify which ones are and are not implemented by ACM.
ACM Level 1 Implementation
ACM implements all features required of a DNP3 Level 1 host, and uses all features supported by Level 1 DNP3 devices except one. ACM won't read Class 1 - 3 data with an object count; it always reads all objects in the class. ACM also implements some features from Level 2, Level 3, and beyond, which will be described in those sections.
ACM implements the following DNP3 features required of Level 1 hosts and/or supported by Level 1 devices:
ACM reads these objects by reading all objects in a specified class:
- Binary Input (Packed Format)
- Binary Input with Status (with Flags)
- 32-Bit Binary Counter (Counter with Flag)
- 16-Bit Binary Counter (Counter with Flag)
- 32-Bit Binary Counter (Counter) without Flag
- 16-Bit Binary Counter (Counter) without Flag
- 32-Bit Analog Input (with Flag)
- 16-Bit Analog Input (with Flag)
- 32-Bit Analog Input without Flag
- 16-Bit Analog Input without Flag
- Binary Input Change (Binary Input Event) without Time
- Binary Input Change (Binary Input Event) with (Absolute) Time
- Binary Input Change (Binary Input Event) with Relative Time
- 32-Bit Counter Change Event without Time (Counter Event with Flag)
- 16-Bit Counter Change Event without Time (Counter Event with Flag)
- 32-Bit Analog Change Event (Analog Input Event) without Time
- 16-Bit Analog Change Event (Analog Input Event) without Time
ACM reads these objects by reading all objects of the specified group:
- Binary Output Status (with Flags)
- 16-Bit Analog Output Status (with Flag)
ACM processes these objects if received in an unsolicited message:
- Binary Input Change (Binary Input Event) without Time
- Binary Input Change (Binary Input Event) with (Absolute) Time
- Binary Input Change (Binary Input Event) with Relative Time
- 32-Bit Counter Change Event without Time (Counter Event with Flag)
- 16-Bit Counter Change Event without Time (Counter Event with Flag)
- 32-Bit Analog Change Event (Analog Input Event) without Time
- 16-Bit Analog Change Event (Analog Input Event) without Time
- Time and Date (Absolute Time) CTO Synchronized
- Time and Date (Absolute Time) CTO Unsynchronized
ACM writes these objects with the direct operate or select-operate command:
- Control Relay Output Block (Binary Output Command)
- 16-Bit Analog Output Block (Analog Output)
ACM writes the Time and Date object after executing a delay measurement command for accuracy (but doesn't read the Time and Date object because Level 1 devices don't support that function).
ACM executes the cold restart command.
ACM clears internal indication 7, the device restart flag.
ACM processes application layer confirmation responses.
ACM implements the following DNP3 features which are obsolete and no longer required of Level 1 hosts and/or supported by Level 1 devices:
ACM reads these objects by reading all objects in a specified class:
- 32-Bit Delta Counter (with Flag)
- 16-Bit Delta Counter (with Flag)
- 32-Bit Delta Counter without Flag
- 16-Bit Delta Counter without Flag
- 32-Bit Delta Counter Change Event without Time (Delta Counter Event with Flag)
- 16-Bit Delta Counter Change Event without Time (Delta Counter Event with Flag)
ACM processes these objects if received in an unsolicited message:
- 32-Bit Delta Counter Change Event without Time (Delta Counter Event with Flag)
- 16-Bit Delta Counter Change Event without Time (Delta Counter Event with Flag)
ACM Level 2 Implementation
Some frozen objects and freeze commands are supported. Many objects can now be read by polling all objects of the same group rather than an entire class, and event objects can also be read by polling a count of objects of the same group rather than all of them.
ACM implements the following DNP3 features required of Level 2 hosts and/or supported by Level 2 devices:
ACM recognizes the following objects, but doesn't include OPC items to store their data. This is so that if these objects appear in a message from the device, the rest of the objects can still be processed:
- 32-Bit Frozen Counter (with Flag)
- 16-Bit Frozen Counter (with Flag)
- 32-Bit Frozen Counter without Flag
- 16-Bit Frozen Counter without Flag
ACM reads these objects by reading all objects of the specified group.
- Binary Input - Any Variation
- Binary Input Change (Binary Input Event) - Any Variation
- Binary Input Change (Binary Input Event) without Time
- Binary Input Change (Binary Input Event) with (Absolute) Time
- Binary Input Change (Binary Input Event) with Relative Time
- Binary Counter (Counter) - Any Variation
- Counter Change Event (Counter Event) - Any Variation
- Analog Input - Any Variation
- Analog Change Event (Analog Input Event) - Any Variation
ACM implements the following DNP3 features which are obsolete and no longer required of Level 2 hosts and/or supported by Level 2 devices:
ACM processes these objects if received in an unsolicited message:
- 32-Bit Delta Counter (with Flag)
- 16-Bit Delta Counter (with Flag)
- 32-Bit Delta Counter without Flag
- 16-Bit Delta Counter without Flag
ACM does not yet implement the following DNP3 features required of Level 2 hosts and/or supported by Level 2 devices:
ACM does not include OPC items to store the data from these objects. (However, if the objects appear in a message from the device, it will not prevent the rest of the objects from being processed):
- 32-Bit Frozen Counter (with Flag)
- 16-Bit Frozen Counter (with Flag)
- 32-Bit Frozen Counter without Flag
- 16-Bit Frozen Counter without Flag
ACM does not read these objects by reading all objects of the specified group. (ACM will read these objects by reading all objects of a specified class, but as previously noted, OPC items to store Frozen Counter data are not yet included):
- Frozen Counter - Any Variation
ACM does not read these objects by reading objects of a specified group with a specified object count. (ACM will read these objects by reading all objects of a specified group):
- Binary Input Change (Binary Input Event) - Any Variation
- Binary Input Change (Binary Input Event) without Time
- Binary Input Change (Binary Input Event) with (Absolute) Time
- Binary Input Change (Binary Input Event) with Relative Time
- Counter Change Event (Counter Event) - Any Variation
- Analog Change Event (Analog Input Event) - Any Variation
ACM does not issue immediate freeze or freeze and clear commands to all objects of the specified group:
- Binary Counter (Counter) - Any Variation
ACM Level 3 Implementation
More object groups and variations are supported, and more can be read by object group rather than by class. More event objects can be read by count of objects, and some static objects can be read by object start and stop indexes, rather than all objects of the same group. Unsolicited messages can be enabled or disabled for all objects in a specified class. Objects can be dynamically reassigned to different classes.
ACM implements the following DNP3 features required of Level 3 hosts and/or supported by Level 3 devices:
ACM reads these objects by reading all objects of the specified group. It processes these objects if received in an unsolicited message:
- Binary Input (Packed Format)
- Binary Input with Status (Flags)
- 32-Bit Binary Counter (Counter with Flag)
- 16-Bit Binary Counter (Counter with Flag)
- 32-Bit Binary Counter (Counter) without Flag
- 16-Bit Binary Counter (Counter) without Flag
- 32-Bit Counter Change Event without Time (Counter Event with Flag)
- 16-Bit Counter Change Event without Time (Counter Event with Flag)
- 32-Bit Analog Input (with Flag)
- 16-Bit Analog Input (with Flag)
- 32-Bit Analog Input without Flag
- 16-Bit Analog Input without Flag
- 32-Bit Analog Output Status (with Flag)
- 32-Bit Analog Change Event (Analog Input Event) without Time
- 16-Bit Analog Change Event (Analog Input Event) without Time
ACM writes these objects with the direct operate or select-operate command:
- 32-Bit Analog Output Block (Analog Output)
ACM reads these objects by reading all objects in a specified class.
- Internal Indications
ACM implements the following DNP3 features which are obsolete and no longer required of Level 3 hosts and/or supported by Level 3 devices:
ACM recognizes the following objects, but doesn't include OPC items to store their data. This is so that if these objects appear in a message from the device, the rest of the objects can still be processed:
- 32-Bit Frozen Delta Counter (with Flag)
- 16-Bit Frozen Delta Counter (with Flag)
ACM does not yet implement the following DNP3 features required of Level 3 hosts and/or supported by Level 3 devices:
ACM does not read these objects by reading objects of a specified group with start and stop indexes. (ACM will read these objects by reading all objects of a specified group):
- Binary Input (Packed Format)
- Binary Input with Status (Flags)
- 32-Bit Binary Counter (Counter with Flag)
- 16-Bit Binary Counter (Counter with Flag)
- 32-Bit Binary Counter (Counter) without Flag
- 16-Bit Binary Counter (Counter) without Flag
- 32-Bit Analog Input (with Flag)
- 16-Bit Analog Input (with Flag)
- 32-Bit Analog Input without Flag
- 16-Bit Analog Input without Flag
ACM does not read these objects by reading objects of a specified group with start and stop indexes. (ACM will read these objects by reading all objects of a specified class, but as previously noted, OPC items to store Frozen Counter data are not yet included):
- Frozen Counter - Any Variation
ACM does not read these objects by reading all objects of a specified group, or objects of a specified group with start and stop indexes. (ACM will read these objects by reading all objects of a specified class, but as previously noted, OPC items to store Frozen Counter data are not yet included):
- 32-Bit Frozen Counter (with Flag)
- 16-Bit Frozen Counter (with Flag)
- 32-Bit Frozen Counter without Flag
- 16-Bit Frozen Counter without Flag
ACM does not read these objects by reading objects of a specified group with a specified object count. (ACM will read these objects by reading all objects of a specified group):
- 32-Bit Counter Change Event without Time (Counter Event with Flag)
- 16-Bit Counter Change Event without Time (Counter Event with Flag)
- 32-Bit Analog Change Event (Analog Input Event) without Time
- 16-Bit Analog Change Event (Analog Input Event) without Time
ACM does not read these objects by reading objects of a specified group with start and stop indexes. (ACM will read these objects by reading all objects of a specified group):
- Binary Input - Any Variation
- Binary Output - Any Variation
- Binary Counter (Counter) - Any Variation
- Frozen Counter - Any Variation
- Analog Input - Any Variation
- Analog Output Status - Any Variation
- Internal Indications
ACM does not read these objects or process them if received in unsolicited messages:
- Frozen Counter Event - Any Variation
- 32-Bit Frozen Counter Event without Time (Frozen Counter Event with Flag)
- 16-Bit Frozen Counter Event without Time (Frozen Counter Event with Flag)
- Time and Date (Absolute Time)
ACM does not issue immediate freeze or freeze and clear commands to objects of specified group with start and stop indexes (or to all objects of the specified group, which is a requirement of Level 2):
- Binary Counter (Counter) - Any Variation
ACM does not assign these objects to classes. Level 3 devices must support this feature for all objects of a specified group and for objects of a specified group with start and stop indexes:
- Binary Input - Any Variation
- Binary Counter (Counter) - Any Variation
- Frozen Counter - Any Variation
- Analog Input - Any Variation
ACM does not enable and disable unsolicited messages for these objects. Level 3 devices must support this feature for all objects of a specified group:
- Class 1 Data
- Class 2 Data
- Class 3 Data
ACM does not implement the following DNP3 features which are obsolete and no longer required of Level 3 hosts and/or supported by Level 3 devices:
Note: These features could still be added if required by legacy systems.
ACM does not include OPC items to store the data from these objects. (However, if these objects appear in a message from the device, it will not prevent the rest of the objects from being processed):
- 32-Bit Frozen Delta Counter (with Flag)
- 16-Bit Frozen Delta Counter (with Flag)
ACM does not read these objects by reading all objects of a specified group, or objects of a specified group with start and stop indexes. (ACM will read these objects by reading all objects of a specified class, but as previously noted, OPC items to store Frozen Counter data are not yet included):
- 32-Bit Delta Counter (with Flag)
- 16-Bit Delta Counter (with Flag)
- 32-Bit Delta Counter without Flag
- 16-Bit Delta Counter without Flag
- 32-Bit Frozen Delta Counter (with Flag)
- 16-Bit Frozen Delta Counter (with Flag)
ACM does not read these objects by reading all objects of a specified group, or objects of a specified group with a specified object count. (ACM will read these objects by reading all objects of a specified class):
- 32-Bit Delta Counter Change Event without Time (Delta Counter Event with Flag)
- 16-Bit Delta Counter Change Event without Time (Delta Counter Event with Flag)
ACM does not read these objects or process them if received in unsolicited messages:
- 32-Bit Frozen Delta Counter Event without Time (Frozen Delta Counter Event with Flag)
- 16-Bit Frozen Delta Counter Event without Time (Frozen Delta Counter Event with Flag)
ACM Level 4 Implementation
The following new objects are supported: Device Attribute, Double-Bit Binary Input, Analog Input Reporting Deadband, Binary Output Event, and Analog Output Event. More variations with times are included for event and frozen objects, as well as floating point variations for analog objects.
Beyond Level 4, there are other object groups that are part of the DNP3 specification, but are not required to be supported at any level. The sections below describe the requirements of each level in more detail and specify which ones are and are not implemented by ACM.
ACM implements the following DNP3 features required of Level 4 hosts and/or supported by Level 4 devices:
ACM recognizes the following objects, but doesn't include OPC items to store their data. This is so that if these objects appear in a message from the device, the rest of the objects can still be processed:
- 32-Bit Frozen Counter with Time of Freeze (Flag and Time)
- 16-Bit Frozen Counter with Time of Freeze (Flag and Time)
ACM reads these objects by reading all objects in a specified class:
- Short (Single Precision) Floating Point Analog Input (with Flag)
- 32-Bit Analog Change Event (Analog Input Event) with Time
- 16-Bit Analog Change Event (Analog Input Event) with Time
- Short (Single Precision) Floating Point Analog Change Event (Analog Input Event without Time)
- Short (Single Precision) Floating Point Analog Change Event (Analog Input Event) with Time
ACM reads these objects by reading all objects of the specified group:
- Short (Single Precision) Floating Point Analog Input (with Flag)
- 32-Bit Analog Change Event (Analog Input Event) with Time
- 16-Bit Analog Change Event (Analog Input Event) with Time
- Short (Single Precision) Floating Point Analog Change Event (Analog Input Event)
- Short (Single Precision) Floating Point Analog Change Event (Analog Input Event) with Time
- Short (Single Precision) Floating Point Analog Output Status (with Flag)
ACM processes these objects if received in an unsolicited message:
- 32-Bit Analog Change Event (Analog Input Event) with Time
- 16-Bit Analog Change Event (Analog Input Event) with Time
- Short (Single Precision) Floating Point Analog Change Event (Analog Input Event without Time)
- Short (Single Precision) Floating Point Analog Change Event (Analog Input Event) with Time
ACM does not yet implement the following DNP3 features required of Level 4 hosts and/or supported by Level 4 devices:
ACM does not include OPC items to store the data from these objects. (However, if these objects appear in a message from the device, it will not prevent the rest of the objects from being processed):
- 32-Bit Frozen Counter with Time of Freeze (Flag and Time)
- 16-Bit Frozen Counter with Time of Freeze (Flag and Time)
ACM does not read these objects by reading all objects of a specified group, or objects of a specified group with start and stop indexes. (ACM will read these objects by reading all objects of a specified class, but as previously noted, OPC items to store Frozen Counter data are not yet included):
- 32-Bit Frozen Counter with Time of Freeze (Flag and Time)
- 16-Bit Frozen Counter with Time of Freeze (Flag and Time)
ACM does not read these objects by reading objects of a specified group with start and stop indexes. (ACM will read these objects by reading all objects of a specified group):
- Short (Single Precision) Floating Point Analog Input (with Flag)
ACM does not read these objects by reading objects of a specified group with a specified object count. (ACM will read these objects by reading all objects of a specified group):
- 32-Bit Analog Change Event (Analog Input Event) with Time
- 16-Bit Analog Change Event (Analog Input Event) with Time
- Short (Single Precision) Floating Point Analog Change Event (Analog Input Event)
- Short (Single Precision) Floating Point Analog Change Event (Analog Input Event) with Time
ACM does not read these objects by reading objects of a specified group with start and stop indexes. (ACM will read these objects by reading all objects of a specified group):
- Short (Single Precision) Floating Point Analog Output Status (with Flag)
ACM does not read or write these objects, or process them if received in unsolicited messages:
- 32-Bit Frozen Counter Event with Time (and Flag)
- 16-Bit Frozen Counter Event with Time (and Flag)
- Device Attribute, Variations 209 - 243, 245 - 250, 252
- Device Attribute, Variations 254 - 255
- Device Attribute, Variations 240, 245 - 247
- Double-Bit Binary Inputs
- Double-Bit Binary Input Events
- Binary Output Events
- Binary Output Command Events
- Analog Input Deadband
- Analog Output Events
- Analog Output Command Events
- Time and Date Last Recorded Absolute Time
ACM does not assign these objects to classes. Level 4 devices must support this feature for all objects of a specified group and for objects of a specified group with start and stop indexes:
- Double-Bit Binary Input, Any Variation
- Binary Output, Any Variation
- Control Relay Output Block (Binary Output Command), Any Variation
- Analog Output Status, Any Variation
- Analog Output, Any Variation
ACM does not implement the record current time command.
ACM No Level Implementation
ACM implements the following DNP3 features, which are part of the DNP3 specification but are not required to be supported at any level:
If ACM processes an object from a response (to a read, a write, a command, etc.), it will also process that object if it appears in an unsolicited message, even if the object is not required to be processed from an unsolicited message at any level. (Objects that are required to be processed from unsolicited messages are noted at each level.)
ACM reads these objects by reading all objects in a specified class:
- 32-Bit Counter Change Event with Time (Counter Event with Flag and Time)
- 16-Bit Counter Change Event with Time (Counter Event with Flag and Time)
- Long (Double Precision) Floating Point Analog Input (with Flag)
- Long (Double Precision) Floating Point Analog Change Event (Analog Input Event without Time)
- Long (Double Precision) Floating Point Analog Change Event (Analog Input Event) with Time
- Octet String Event
ACM reads these objects by reading all objects of the specified group:
- Long (Double Precision) Floating Point Analog Output Status (with Flag)
- Octet String
ACM writes these objects with the direct operate or select-operate command:
- Long (Double Precision) Floating Point Analog Output Block (Analog Output)
- Short (Single Precision) Floating Point Analog Output Block (Analog Output)
ACM writes these objects with the write command:
- Octet String
ACM implements the following DNP3 features which are obsolete and no longer part of the DNP3 specification:
ACM recognizes the following objects, but doesn't include OPC items to store their data. This is so that if these objects appear in a message from the device, the rest of the objects can still be processed:
- 32-Bit Frozen Delta Counter with Time of Freeze (Flag and Time)
- 16-Bit Frozen Delta Counter with Time of Freeze (Flag and Time)
- 32-Bit Frozen Delta Counter without Flag
- 16-Bit Frozen Delta Counter without Flag
ACM reads these objects by reading all objects in a specified class:
- 32-Bit Delta Counter Change Event with Time (Delta Counter Event with Flag and Time)
- 16-Bit Delta Counter Change Event with Time (Delta Counter Event with Flag and Time)
ACM does not yet implement these features, which are part of the DNP3 specification but are not required to be supported at any level:
ACM does not read or write these objects, or process them if received in unsolicited messages:
- Pattern Control Block (Binary Output Command)
- Pattern Mask (Binary Output Command)
- 32-Bit Frozen Counter Event with Time (and Flag)
- 16-Bit Frozen Counter Event with Time (and Flag)
- 32-Bit Frozen Analog Input (with Flag)
- 16-Bit Frozen Analog Input (with Flag)
- 32-Bit Frozen Analog Input with Time of Freeze
- 16-Bit Frozen Analog Input with Time of Freeze
- 32-Bit Frozen Analog Input without Flag
- 16-Bit Frozen Analog Input without Flag
- Short (Single Precision) Floating Point Frozen Analog Input (with Flag)
- Long (Double Precision) Floating Point Frozen Analog Input (with Flag)
- 32-Bit Frozen Analog Event (Frozen Analog Input Event) without Time
- 16-Bit Frozen Analog Event (Frozen Analog Input Event) without Time
- 32-Bit Frozen Analog Event (Frozen Analog Input Event) with Time
- 16-Bit Frozen Analog Event (Frozen Analog Input Event) with Time
- Short (Single Precision) Frozen Analog Event (Frozen Analog Input Event without Time)
- Long (Double Precision) Frozen Analog Event (Frozen Analog Input Event without Time)
- Short (Single Precision) Frozen Analog Event (Frozen Analog Input Event) with Time
- Long (Double Precision) Frozen Analog Event (Frozen Analog Input Event) with Time
- Time and Date (Absolute Time) with Interval
- Time and Date Indexed Absolute Time and Long Interval
- File Control
- Device Storage
- Device Profile
- Private Registration Object
- Private Registration Object Descriptor
- Data Set Prototype
- Data Set Descriptor
- Data Sets
- Data Set Events
- Application Identifier
- Status of Requested Operation
- Short Floating Point
- Long Floating Point
- Extended Floating Point
- Small Packed Binary-Coded Decimal
- Medium Packed Binary-Coded Decimal
- Large Packed Binary-Coded Decimal
- 8-Bit Unsigned Integer Object
- Virtual Terminal Output Block
- Virtual Terminal Event
- Authentication
- Security Statistic
- Security Statistic Events
ACM does not implement the following DNP3 features which are obsolete and no longer part of the DNP3 specification:
Note: These features could still be added if required by legacy systems.
ACM does not include OPC items to store the data from these objects. (However, if these objects appear in a message from the device, it will not prevent the rest of the objects from being processed):
- 32-Bit Frozen Delta Counter with Time of Freeze (Flag and Time)
- 16-Bit Frozen Delta Counter with Time of Freeze (Flag and Time)
- 32-Bit Frozen Delta Counter without Flag
- 16-Bit Frozen Delta Counter without Flag
ACM does not read or write these objects, or process them if received in unsolicited messages:
- 32-Bit Frozen Delta Counter Event with Time (and Flag)
- 16-Bit Frozen Delta Counter Event with Time (and Flag)
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.