Get a Live Demo

You need to see DPS gear in action. Get a live demo with our engineers.

Get the DNP3 White Paper

Download our free DNP3 tutorial.

An introduction to DNP3 from your own perspective.

DPS is here to help.


Have a specific question? Ask our team of expert engineers and get a specific answer!

Learn the Easy Way

Sign up for the next DPS Factory Training!

DPS Factory Training

Whether you're new to our equipment or you've used it for years, DPS factory training is the best way to get more from your monitoring.

Reserve Your Seat Today

DNP3 Tutorial Part 2: How DNP3 Elements Communicate

DNP3 uses 27 basic function codes to exchange information between Masters (think Control Center) and Remotes (think pump yard). Some of those function codes enable a Master to request and receive status information from a Remote. Other function codes enable a Master to determine or adjust the configuration of a Remote.

Several function codes are defined for a DNP3 Master to control the Remote itself or equipment co-located with the Remote. One function code is provided to enable the Remote to respond autonomously with an Unsolicited Message to particular events that occur in its installation space.

For example, function codes can enable a:

  • Master to request and receive status info from a Remote
  • Master to change a Remote's settings
  • Master to control the Remote
  • Remote to send an unsolicited response about particular events that occur in its area

As you can see, most of the messages are issued by the DNP3 manager to the DNP3 remote. However, because the Unsolicited Message is capable of being initiated by a Remote, it is typically used to report alarms. This notifies the DNP3 Master as soon as an alarm condition occurs, instead of waiting for the next request.

DNP3 Unsolicited Response Limitations

Be sure you understand the key limitation of all unsolicited ("asynchronous") alerts: there's no "keep alive" function. For polled ("synchronous") protocols, the manager polls the agent. This guarantees that a disabled agent will be promptly identified at the next polling cycle.

Contrast this with what happens in an unsolicited-message protocol: a disabled agent remains silent. This silence is identical to an active agent reporting that "I have no problems right now." That's why, whenever possible, you should look for a DNP3 master that has some ability to routinely query agents for their status. This mitigates one of the major threats from using DNP3.