DNP3 - the application layer

 

Introduction

This web page focuses on the application layer of DNP3 - the physical layer and the data link layer has been dealt with in previous pages.

I`ve found it quite difficult to get much information from the internet about how the application layer of DNP3 works - there are various documents available, but they tend to be just summaries of one aspect of the application layer, so it is slow going, and not very productive.

The best source of information would be the documentation produced by the DNP user group, however I can`t get access to that documentation as I`m not a member of the user group.

So this is what I`ve got so far.

The DNP3 application layer is the main part of DNP3 - the lower layers are just involved in packaging up the various bits of data and control information - the application layer is where the intelligence of DNP3 lies, and there is far more to it than what can go on one web page. Some of the functions that the application layer of DNP3 is responsible include -

This web page looks at how the constituent parts of the application layer fit together to create the frame that is handed down to the pseudo-transport layer, for eventual transmission across some form of connection or network. It doesn`t look at the logic that is going on within the application layer.

 

Application messages

DNP3 talks about the application layer producing messages - there are two basic types -

The message produced by the application layer, and which is handed down to the pseudo-transport layer, is in the form of a frame which is known as the "application protocol data unit", or APDU.

The APDU is the largest frame anywhere in the DNP3 stack - it can be up to 2048 bytes in size. If the application layer has more than that amount of data to send off, then it is the responsibility of the application layer itself to divide it up into fragments, each of which has a maximum size of 2048 bytes.

The APDU is made up of two parts -

 

APCI

As there are two basic kinds of messages, so there are two kinds of APCI headers, built up from 2 or 3 subsections -

AC = application control - controls the flow of messages between master station and the outstation - contains flags relating to fragmentation, plus other flow control information, all of which would require a dedicated web page to describe - those 8 bits seem to be capable of doing an awful lot.

FC = function code - again, these 8 bits can do quite a lot, so another web page is required.

IIN = internal indications - used in response messages only - I think these 16 bits are mostly flags to provide information about the status of the outstation.

 

ASDU

The data produced by the application layer to hand down for onward transmission is contained in two blocks -

The ASDU contains multiple pairs of these two blocks - in a sequence of -

 

Object header

This is between 3 bytes and 11 bytes in length, depending on the data, and contains three parts -

As far as I can see, the qualifier byte and the range bytes work together to provide the "address" of the following data, though they might do other things as well.

 

Data objects

DNP3 recognises several different types of data - I believe there are about 90 of these. The DNP user group maintains a data object library. which defines all the various types of data.

These different types of data are grouped together as appropriate, and are organised in "object groups". The groups are identified by a number, mostly between 0 and 100.

Here are the various group numbers and the type of data they relate to.

Within each group, there can be "variations" - each variation means that the data can be presented in a different way, but it is the same basic type of data.

A "data point" is a single piece of data, with the information presented in the way specified for the appropriate object group number and variation.

In each of these groups, the first variation number is reserved, and means "all the variations in the group".

 

 

 

 

 

website design by ron-t

 

website hosting by freevirtualservers.com

 

© 2024   Ron Turner

 

+                                   +  

 

Link to the W3C website.   Link to the W3C website.