DNP3 (Distributed Network Protocol) is a set of communications protocols used between components in process automation systems. Its main use is in utilities such as electric and water companies. Usage in other industries is not common. It was developed for communications between various types of data acquisition and control equipment. It plays a crucial role in SCADA systems, where it is used by SCADA Master Stations (a.k.a. Control Centers), Remote Terminal Units (RTUs), and Intelligent Electronic Devices (IEDs). It is primarily used for communications between a master station and RTUs or IEDs. ICCP, the Inter-Control Center Communications Protocol (a part of IEC 60870-6), is used for inter-master station communications. Competing standards include the older Modbus protocol and the newer IEC 61850 protocol.
In a typical DNP3 network, information is passed from the Remote up to the Master. Usually the Master requests the information from the remote, but in the case of alarms, the remote will initiate an exchange rather than wait for a request from the Master. This assures that alarms are attended to in a timely manner.
- Magic – 2 starting octets of the header (0x0564).
- LENGTH – 1 octet count of USER DATA in the header and body. This count includes the
- CONTROL, DESTINATION and SOURCE – fields in the header however the CRC and
- TCP Port: 20000
- data aquisition from remote devices;
- C++ Implementation: https://github.com/automatak/dnp3