Page review information
Edition covered
IEEE 1815 (DNP3) — exact governing edition not yet recorded
Content status
Reviewed
Coverage
Covers DNP3 for utility SCADA/telemetry from a controls-engineering viewpoint — master/outstation roles, the object/class model, events, unsolicited responses, and diagnostics. Serial DNP3 wiring detail and DNP3 Secure Authentication are noted but not covered in depth.
Last reviewed
August 2026
Primary reference
The official published standard — required for final decisions

Confirm the applicable specification revision, device firmware, vendor implementation, network architecture, cybersecurity requirements, and project-specific constraints before applying anything on this page.

Overview

DNP3 (Distributed Network Protocol, standardized as IEEE 1815) is a SCADA and telemetry protocol widely used across utilities — electric substations and distribution, water and wastewater, and oil and gas pipelines. It grew up on slow, expensive, sometimes unreliable communication links (leased lines, radio, dial-up historically, now often cellular or IP-over-radio), and its design reflects that: it is built to move field data efficiently over links where bandwidth is scarce and round-trips are slow.

The relationship is master/outstation. A master station (the SCADA host or a data concentrator) talks to one or more outstations (RTUs, substation gateways, or PLCs with a DNP3 stack in the field). The idea that distinguishes DNP3 from a simple poll-response protocol is event-driven, report-by-exception reporting. Rather than the master re-reading every point on every scan, outstations buffer events — a point that changed — each carrying a time stamp and a quality flag, and report them when polled or, where configured, push them unsolicited. Over a slow link this is a large efficiency win: only what changed crosses the wire, and each change carries the time it happened at the field, not the time the master got around to reading it.

flowchart TD
    M[Master Station<br>SCADA host / data concentrator] --> WAN[WAN — radio, cellular,<br>leased line, IP]
    WAN --> RTU1[Outstation 1<br>RTU — remote pump station]
    WAN --> RTU2[Outstation 2<br>Substation gateway]
    WAN --> RTU3[Outstation 3<br>Pipeline block valve]
    RTU1 --- IO1[Field I/O — analogs,<br>status, counters]
    RTU2 --- IO2[Protection / meter data]
    RTU3 --- IO3[Valve status, pressure]

Where It Is Used

Scope notes: DNP3 is a telemetry/supervisory protocol, not a machine-control fieldbus. It is not designed for deterministic real-time I/O or motion. The version most controls engineers meet is DNP3 over TCP/IP, but a great deal of installed base is still serial DNP3 over radio or leased lines; the two behave the same at the application layer but are diagnosed very differently (see Diagnostics).

Network Design

Integration information worth recording before commissioning:

Configuration

  1. Assign data-link addresses. Set the outstation address and the master address per the site addressing plan; confirm each outstation address is unique.
  2. Set the transport. For serial, match baud, parity, and stop bits to the radio/modem path and set link-layer timeouts appropriate to the link’s round-trip time. For TCP/IP, set the IP addressing (RFC1918 such as 192.168.x.x is typical on private telemetry networks) and the TCP port (commonly 20000 — verify).
  3. Build the point map / device profile. The DNP3 device profile document is the integration contract: it declares exactly which object groups, points, variations, and features the outstation supports. Treat it the way you treat a register map for Modbus — the master configuration must be built from the outstation’s actual device profile, not from a generic template.
  4. Assign event classes. Put each event-capable point into Class 1, 2, or 3 per the reporting-priority design, and leave the static snapshot as Class 0. Getting a critical point into the wrong (rarely polled) class means the master learns about it late.
  5. Choose integrity poll vs event poll rates. Configure a periodic integrity poll (Class 0, plus events) to refresh the full picture and recover any missed events, and configure event polls for the event classes at their intended rates. The integrity poll is the safety net that re-synchronizes the master’s picture after a comms outage.
  6. Enable unsolicited responses where intended. If the design calls for push reporting, enable it on the outstation and configure the master to accept unsolicited messages; otherwise leave both off and rely on event polling. Do not enable it on one end only.
  7. Configure time synchronization. DNP3 events are time-stamped at the outstation, so the outstation clock must be disciplined — either by the master’s DNP3 time-sync function or by an external source such as GPS/PTP/NTP at the site. Decide and configure the method; unsynchronized outstation clocks make the event time stamps misleading.
  8. Confirm control models for outputs. Binary and analog output controls (e.g., select-before-operate) have specific behaviors; verify the control model expected by the outstation and the master match before issuing any control.

Commissioning Checks

Diagnostics

Layer the approach: confirm the link first (is the serial path or TCP session actually up), then the DNP3 conversation (is the outstation answering, and to the right address), then the data (are the right events arriving with sane values and time stamps). Master and outstation event logs are the primary instruments — most masters and many outstations log link state, polls, and communication errors, and reading those logs usually localizes the problem before any capture.

For DNP3 over TCP/IP, Wireshark dissects the protocol. Because telemetry links are often slow, a capture that spans several poll cycles is more useful than a short one.

dnp3
tcp.port == 20000
tcp.flags.reset == 1
tcp.analysis.retransmission

The dnp3 dissector decodes the data-link addresses, function codes, object groups, and event data — enough to confirm which outstation is answering, whether events or only static data are flowing, and whether unsolicited messages are present. Verify filter names against the Wireshark version in use, and confirm the actual TCP port on the site rather than assuming 20000.

Serial DNP3 cannot be seen by Wireshark on an Ethernet interface. If the outstation is on RS-232/RS-485 to a radio or modem, a laptop Ethernet capture shows nothing of the DNP3 exchange. To see serial DNP3 you need a serial line monitor or protocol analyzer tapped onto the serial link (an isolated adapter capturing both directions), the radio/modem’s own link diagnostics, and — for physical-layer faults — the RS-485 checks (polarity, termination, bias, grounding) and potentially an oscilloscope. A clean master-side TCP capture at a data concentrator proves nothing about the serial hop beyond it.

Things worth watching specifically for DNP3:

Common Faults

Symptom Likely causes First checks
Master shows some points but not others, or wrong values on some indices Point-map mismatch between master config and the outstation device profile (index/variation offset) Compare the master’s point map against the outstation’s actual DNP3 device profile, point by point
Rapid field changes are missed; master’s picture lags reality on a slow site Event buffer overflow on the outstation — changes queued faster than the link drains them Check the outstation’s event-buffer/overflow indication; raise poll rate or buffer size, or reduce reported points
Event time stamps implausible or consistently offset Outstation clock not synchronized, or time-sync method not configured Verify the time-sync source/method; check outstation clock against a known reference
Two field sites appear to be the same device / responses confused Duplicate outstation data-link address Audit the addressing plan; confirm each outstation address is unique
Master only sees changes at poll time, never instantly Unsolicited responses expected but not enabled on the outstation, or not accepted by the master Confirm unsolicited is enabled on the outstation and accepted at the master
Outstation unreachable; nothing in the master’s data Link down (radio/modem/serial or TCP path), wrong port/address, outstation offline Check link/TCP session state first; for serial, use a line monitor — Wireshark-on-Ethernet cannot see it
Master’s picture wrong after a comms outage, and stays wrong Integrity poll interval too long or not configured, so missed events never recover Verify an integrity poll runs and returns Class 0; shorten its interval if recovery is too slow
Intermittent gaps and retries on the conversation Marginal link, link-layer confirm timeouts, radio path fading Read link-layer retry/confirm counts in the logs; for serial, check the RF/serial path and RS-485 physical layer
Trust Boundary — Engineering Judgment Required

This site is an independent educational reference for industrial automation standards. It paraphrases and organizes guidance in original language; it is not a substitute for the official published standards, professional engineering judgment, or legal review, and content has not been independently verified against current published editions.

Items marked Review pending await technical review against the identified edition. Items marked Planned have no reviewed source material behind them. Do not rely on this site for compliance determinations, safety-critical design decisions, or legal interpretation.