DNP3 Tutorial Part 4: Understanding DNP3 Message Structure.

Let's examine the basic structure of the messages exchanged between masters and remotes. Basic serial telemetry protocols, like TBOS, are byte-oriented. A single byte is exchanged to talk. Expanded serial telemetry protocols, like TABS, are packet oriented. These have packets of bytes exchanged to talk. The packets contain several bytes. These are header, data, and checksum. DNP3 is also packet-oriented. It uses the following structure shown in the illustrated figure below (element sizes in bits):

DNP3 packet structure diagram
DNP3 packet structure illustrated.

The Master sends a Read request for an object or objects. The Remote's response will contain the requested information if it's available. The Master sends an Operate command. This produces the output actions associated with the selected object reference. The Remote sends an Unsolicited Message when a specific event occurs.The Master sends a Read request for an object or objects. The Remote's response contains the requested information, if available. The Master sends an Operate command. This produces the output actions associated with the selected object reference. The Remote sends an Unsolicited Message when a specific event occurs.

The preceding figure shows the message packet format. The DNP3 application service data unit (ASDU) is worthy of special note. It has clever content adjustment that is controlled by the qualifier and indexSize fields. This design makes application data available. You can get it in a very flexible number of configurations using the DNP3 structure. Data can also be omitted all together if desired.