Introduction to the IEEE 1815 – DNP3 standard
The remote control of substations or power plants allows the utility to control locations separated long distances from a centralized control room optimizing the use of resources for that task. This is one of the objectives of DNP3 standard.
The definition of standardized remote control protocols makes it possible to integrate systems automated by different vendors with the utility control centre. This allows controlling the system without the need of protocol converters or adaptations.
When the communication options were limited due to the bandwidth available, the remote control protocols used serial communication through radio links or the telephone networks in most cases though private networks.
IEC defined the remote control protocol IEC 60870-5-101. However, as this standard did not fulfil all the requirements of the USA utilities, the company Harris, Distribute Automation Products develop the first version of the DNP3 standard. In 1993, DNP3 users group started to maintain and improve this protocol as an open automation solution.
Initially DNP3 used serial communications as IEC 60870-5-101, nowadays DNP3 allow using TCP/IP or UDP/IP communications over IP networks to improve the system communication response time.
DNP3 is a protocol based on numerical identification of the data objects. It is designed for monitoring and controlled remote stations called Outstation in the DNP3 specification. Its use can also be found in the automation of several processes as energy substation even for the communication of the protection devices with the local SCADA or GATEWAY.
In 2010 the DNP3 technical specification was normalized under the IEEE 1588 standard.
Specification defines 3 building blocks in any DNP3 implementation:
DNP3 building block
The information provided by a DNP3 device can be divided into 4 categories:
These basis types are extended with the use of
DNP3 basic data types
Each data object in the DNP3 data base of an Outstation is called Point and it is identified by an Index.
The value that has the point is called its static value. When this value changes or a command is received an Event is generated.
The events can be stored in one of the three available categories defined in DNP3 (class 1, class 2 or class 3).
DNP3 static and event classes
Three properties are used in order to identify a DNP3 point any protocol message sent:
The application layer defines the functions exchanged between the controlling station (Master) and the controlled station (Outstation).
The basic DNP3 functions are:
1: READ: read request for the static value or events stored.
2: WRITE: write request of attributes of the outstation.
The most common control functions are the following:
3: SELECT: control service to get access to a controllable point.
4: OPERATE: command sent after the selection of a controllable point.
5: DIRECT_OPERATE: direct command without previous selection.
The basic counter management functions are:
7: IMMED_FREEZE: request to freeze the specified counters.
9: FREEZE_CLEAR: request to freeze and reset to zero for the specified counters.
DNP3 also provides function to reboot the Outstation:
13: COLD_RESTART: total rest of the Outstation.
14: WARM_RESTART: reset of the application layer of the Outstation.
The functions to classify the event classes and to activate and deactivate the spontaneous event transmission are the following:
20: ENABLE_UNSOLICITED: this function enables the spontaneous event reporting.
21: DISABLE_UNSOLICITED: this function disables the spontaneous event reporting. If the spontaneous transmission is disabled the master can read periodically the events stored.
22: ASSIGN_CLASS: this function can assign an event class to the specified points. Generally the outstation can provide an event organization. This function can modify this organization to classify the events with the master required categorization.
DNP3 defines several other functions as the ones to manage Files.
The DNP3 application layer defines two data structures called Fragment: the Fragment Request and the Fragment Response. The difference between then is the inclusion of a extra field of 16 bits in the response that its called Internal Indications and it brings information about the state of the Outstation or indications of the result of the function requested.
A fragment can be built of different Object Sections. These Sections can include DNP3 Objects.
Figure-4-DNP3 fragment format
The Fragment header format is the following:
DNP3 fragment header
As the application fragments can be bigger that the maximum size of the data link layer frame (249 bytes), the transport function chops the fragments in the sender and rebuild their content in the receiver.
At the transport function level, each block is called Segment.
Fragment segmentation
Each segment carries a subset of the bytes the fragment and a transport function header. This header only uses one byte with the following format:
Transport function header
If one Fragment can be send inside one Segment, this segment sets the FIR and FIN bits.
The link layer is in charge of the addressing and error detection (CRC – Cyclic Redundancy Check)
The use of serial communication used confirmation messages to validate the reception of each frame sent. With the use of TCP/IP connections, most of the link layer functionality is not used any more as TCP/IP guarantees the correct data transport.
The link layer frame format is the following:
Link layer frame
DNP3 defines different group to provide the current values, the events stored in the Outstation or to modify its parameters or controllable points.
The groups are organized by information type.
Information object groups
For each Object Group in DNP3, the specification describes the available Variations and their format.
Interoperability
DNP3 defines different functions and configuration parameters. For each object group there are several variations and also the DNP3 fragments can be sent using different formats.
The subset of available options is defined in the device interoperability profile document.
This document can be provided in paper with information included in the standard tables.
Text format interoperability document
Optionally a vendor can provide this information in a XML format called Dnp3DeviceProfile that has been included in the latest versions of the DNP3 specification.
Dnp3DeviceProfile XML document
The XML format can be converted in a text version using a provided XSLT (XML transform) file.
As the protocol functions and variations are quite longer than the options available in other protocols as IEC 60870-5-101/104. DNP3 users group has defined 4 implementation levels, being the level 1 the less demanding and the level 4 the more complex.
Each higher level requires the implementation of more application functions and variations in the DNP3 object groups.
For each DNP3 implementation level, the DNP3 users group specifies the test procedures to validate the products. Nowadays the level 1 and 2 are available and the users group is working to provide test procedures for the levels 3 and 4.
The technical specification IEEE 1815.1 identifies how to translate the data provided by an IEC 16850 system to a control centre through a DNP3 gateway.
Since 2010 the DNP3 specification includes secure authentication. The initial security specification called DNP3 SAv2 uses the same principles as IEC 62351-5.
In 2012, the security extensions have been updated to the version DNP3 SAv5. DNP3 Users Group provides the test procedures to validate the DNP3 secure implementations and promotes the use of the secure features.
ENSOTEST is a company that develops test automation tools for DNP3 protocol. DNP Users Group.
Fill the form to receive a free copy of this article in pdf
Categories: Energy system automation, Smart grids, Ethernet, Substation, Remote control
Copyright © 2023 | ENSOTEST S.L. - Legal notice & privacy policy