The DNP3 (Distributed Network Protocol) is open and standardized telecontrol communication protocol to ensure interoperability between field devices, such as RTU’s, IED’s, and their master stations. It is standardized in IEEE1815-2012.
The data and command exchange over serial and Ethernet based IP communication are both specified, and it is similar to the IEC60870 telecontrol protocol - but still different in details and slightly more feature rich. Both protocols specify feature rich data objects and reporting mechanisms which minimize typical engineering work and data communication amount.
DNP3 was constructed as a robust and efficient SCADA protocol, which can
-
Request and respond for/with multiple data types in a single message.
-
Segment messages into multiple frames to ensure best error detection and data recovery,
-
Options to include only changed data (events) into response messages,
-
Outstations to be configurable to update without request (unsolicited response)
-
Support time synchronization and standard time formats
-
Support file transfer
-
Support “Secure Authentication” V2 and V5
-
Support event buffering with provided memory limit
-
Additionally AC500 also supports a configurable long term data archiving in csv form.
Devices implement typically only a subset of defined communication channels, objects, and messages.
A typical DNP3 network is composed by:
-
One or more master station (For example: SCADA systems)
-
One or typically several outstations / control stations (for example: PLCs, RTU, IEDs)
Connection criteria between master and outstation can be one of these:
-
Master initiating: Outstation listen/wait for incoming connection and master actively connect outstation.
-
Outstation initiating: Master listen/wait for incoming connection and outstation actively connect master.
In general, following main terminologies are used in DNP3 protocol.
Protocol layers: DNP3 has three layers called as data link layer, transport layer, application layer.
-
Data link layer: This layer provides an interface between the transport function and the physical media or network connection management layer, the main contributions of this layer are station addressing and error detection.
-
Transport layer: The transport layer has the responsibility of breaking long application layer messages into smaller packets sized for the link layer to transmit, and, when receiving, to reassemble frames into longer application layer messages. In DNP3 the transport layer is incorporated into the application layer.
-
Application layer: Application layer messages are broken into fragments. Maximum fragment size is determined by the size of the receiving device’s buffer. The normal range is 2048 to 4096 bytes. A message that is larger than a one fragment requires multiple fragments. Fragmenting messages is the responsibility of the application layer.
Static and event data
In DNP3, the term static is used with data and refers to the present value. Thus, static binary input data refers to the present on or off state of a bi-state device. Static analog input data contains the value of an analog at the instant it is transmitted. One possibility DNP3 allows is requesting some or all the static data in an outstation device.
In DNP3, events are associated with something significant happening. Examples are state changes, values exceeding some threshold, snapshots of varying data, transient data and newly available information. An event occurs when a binary input changes from an on to an off state or when an analog value changes by more than its configured deadband limit. DNP3 provides the ability to report events with and without time stamps so that if desired, the master will have the information to generate a time sequence report.
Variations
DNP3 has provisions for representing data in different formats. Variations can be used to represent data with flags or without flags, 32bit/16bit integer values, timestamps or without timestamps.
Groups
DNP3 solves this predicament by assigning group numbers. For example, static analog values are assigned as group 30 and can be formatted in one of the 6 variations supported.
When a DNP3 outstation transmits a message containing response data, the message identifies the group number and variation of every value within the message. Group and variation numbers are also assigned for counters, binary inputs, controls and analog outputs. In fact, all valid data types and formats in DNP3 are identified by group and variation numbers. Defining the allowable groups and variations helps DNP3 assure interoperability between devices.
Class
DNP3 driver defines the concept of classes to organize data and their transmission criteria:
-
Class 0: static data
-
Class 1,2,3: events
Each data in an outstation is assigned to a specific class. An outstation can be requested by a master to send only data/events belonging to a specific class. The assignment of a data point to a class is configurable in Automation Builder, If class data polling is performed, the data types are sent with their default variation when the master does not specify a variation in its request.
Detailed list of variations and groups which are supported, are added in the following chapter.
For more information about DNP3 Protocol, refer to ⮫ DNP3 org or IEEE 1815-2012 documentation.