The DNP3 protocol has significant features that make it more robust, efficient, and self compatible than older protocols such as Modbus, at the cost of somewhat higher complexity.
Basics of DNP3 communication
DNP3 is, in standard networking terms, mostly a layer 2 protocol. It provides multiplexing, data fragmentation, error checking, link control, prioritization, and layer 2 addressing services for user data.
TheDNP3 frame strongly resembles, but is not identical to the FT3 frame. It makes heavy use of Cyclic redundancy check codes to detect errors. The improved bandwidth efficiency is accomplished through event oriented data reporting.
The Remote Terminal Unit is initially interrogated with what DNP3 terms a “Class 0 poll.” This causes the RTU to send all static point data to the Master station.
Then, as the data points generate events, these events can be placed in one of three buffers whose status is reported on every Remote Terminal Unit response. If there is data in that buffer, the buffer data flag is set.
The Master can then see that there should be event data to be retrieved when issuing a poll for Class 1, Class 2, or Class 3. In other words, after a Class 0 poll, only significant data changes are sent.
This can result in significantly more responsive data retrieval than polling everything, all the time, irrespective of whether it has changed significantly.
The Remote Terminal Unit can also be configured to spontaneously report Class 1, 2, or 3 data, when it becomes available.
The DNP3 protocol supports time synchronization with an RTU. The DNP Protocol has time stamped variants of all point data objects so that even with infrequent RTU polling, it is still possible to receive enough data to reconstruct a sequence of events of what happened in between the polls.
The DNP3 protocol has a substantial library of common point-oriented objects. The focus of this extensive library was to eliminate the need for bit-mapping data over other objects, as is often done in many Modbus installations.
For example, floating point number variants are available, so there is no need to map the number on to a pair of 16 bit registers.
A Remote Terminal Unit for the DNP3 protocol can be a very small, simple embedded device, or it can be a very large, complex rack filled with equipment.
The DNP User Group has established four levels of subsets of the protocol for RTU compliance. The DNP Users Group has published test procedures for Levels 1 and 2, the simplest implementations.