Working with the DNP3 Protocol

Working with the DNP3 Protocol


Simpliscada DNP3 standards and practices

Communication setup: 

  • TCP/IP addressing: Standard ip address practices apply. 

  • Port: 20000 is the default DNP3 port. If the PLC uses the standard port, it doesn’t need to be specified when setting the address in simpliscada’s site communication page. If a different port is specified apply in the format: 192.168.1.100:20000

  • Master Station and Outstation must be defined in the format Master/Outstation, for example 30000/12. Device addresses can be between 0 and 65,519 and are defined in the PLC’s configuration. Each device on the same ip network will have a different Station ID.



Protocol: As a protocol, DNP3 tag addresses have 3 elements

  1. Group Type: indicates the type of data being used. Binary, Analog, Counter; and whether it is an input or output. *See chart below for most common group types.

  2. Variation: each group has several sub types defining it further, known as variations. i.e. 30.1 = 32bit analog input, while 30.2 = 16bit analog input. Variation 5 will allow for decimal points.

  3. Point Number, aka Index: this is the unique identifier pointing to each individual sensor, control, or alarm.


Simpliscada formats tag addresses as group.variation.index for example 30.5.301


Common Group Types and their Variations:




Object Type


Common Variations


Description / Use Case

Group 1

Binary Input

Var 1 (0 or 1), Var 2 (0 or 1, w/ Flags)

Single bit digital status (alarm state, valve status)

Group 10

Binary Output Status

Var 1 (0 or 1), Var 2 (0 or 1, w/ Flags)

Single bit digital output (pump control status, switch state)

Group 12

Control Relay Output Block (CROB)

Var 1 (binary control, can be modified w/pulse time)

Control commands (pulse, latch)

Group 20

Counter

Var 1 (32-bit), Var 2 (16-bit), Var 5 (32-bit w/ Flag)

Accumulated counts (e.g., energy pulses)

Group 30

Analog Input

Var 1 (32-bit), Var 2 (16-bit), Var 3 (32-bit w/ Flag), Var 5 (Float, numbers with decimal points)

Measured values (voltage, current, temp)

Group 40

Analog Output Status

Var 1 (32-bit), Var 2 (16-bit)

Feedback of analog outputs

Group 41

Analog Output Command

Var 1 (32-bit), Var 2 (16-bit)

Setpoint/control commands


Supported data: As a protocol DNP3 supports several ways of collecting data. Not all are currently supported by Simpliscada.

  1. Static Reads: these are values that are held in their registers as the last read value. This is the primary source of data that is read by Simpliscada.

  2. Event Data: also known as unsolicited data, when a data point changes it attempts to report this value to the Master Station without a request. Not currently supported by Simpliscada.

  3. Flags and Time: DNP3 has the ability to attach flags and timestamps to data reads. The flags contain error reporting and time includes info for when the data was read by the PLC. Not currently supported by Simpliscada.


Output Commands: DNP3 separates output command reads and writes. To simplify this Simpliscada combines read and write into one group type. 

  • Group 10: for binary, combines Group 10 with Group 12 so that both read and write requests can be expressed as: 10.x.xxx

  • Group 40: for analog, combines Group 40 with Group 41 so that both read and write requests can be expressed as: 40.x.xxx

There are 2 types of digital outputs.

  1. Pulse: These output for a set amount of time and then revert to their previous state. The time is stated in milliseconds. For example 10.x.xxx:P100

  2. Latch: Simply toggles the state between 1 and 0. Uses our standard format of 10.x.xxx



Attached is a detailed spreadsheet on each DNP3 variant.





    • Related Articles

    • Importing Bulk Tags via Spreadsheets

      The SimpliScada Import Tag Tool allows users to import multiple tags at once using a spreadsheet. This method is significantly faster than creating tags individually. To create a correctly formatted spreadsheet, first create a few tags manually. Then ...
    • Creating a Group

      Groups are used to simplify the management of user access across Reports, HMIs, and Notifications. Instead of assigning permission to individual users one at a time, administrators can assign access at the group level. For example, when a new ...
    • Adding Tags to a Project

      Tag Addresses are the foundations of your project. They are the reference points that allow sensor information to interact with objects in the HMI. The actual address format will vary depending on the communication protocol used by your PLC. In this ...
    • Creating a User and Setting Up Permissions

      User management is an important part of maintaining your Simpliscada system. Not only does this provide a way for users to login to the system, it also allows the creation of user permissions and it is integral to the notification system as well. - ...
    • Creating a Table

      This is a step-by-step tutorial for creating a table in the Simpliscada Canvas. Tables can provide an excellent way to display a lot of information in one convenient place. Our table creation tool is very flexible and allows you to completely ...