This driver is used for communication with remote IEDs (Intelligent Electronic Devices) using the protocol DNP 3.0 Level 2. Communication can be established through a multi-point serial channel or a LAN using Ethernet and TCP-IP. In the latter case, each IED has an IP address.


Summary

Communication Driver Information
Driver nameDNP30
Current version2016.2
Implementation DLLT.ProtocolDriver.DNP30.dll
ProtocolDNP3.0 Master standard protocol
InterfaceTCP-IP or Serial
IEDs types supportedAny DNP 3-compatible IED
Communication Block SizeMaximum 250 bytes, FT 1.2 format
Protocol Options"LinkConfirm" mode and master station address
Multi-threadingUser defined, five threads per communication node by default
Max number of nodesUser defined
PC Hardware requirementsStandard PC Ethernet interface board, RS485 or RS232 port

Data Objects Supported

The table below shows the DNP objects and variants supported by this implementation.
Objects labeled L4 are implemented, but are defined at the L4 level.

Object Request (Master)Response (Slave)
Obj.Var.Description

Function Codes

(Decimal)

Qualifier Codes

(Hex)

Function Codes

(Decimal)

Qualifier Codes

(Hex)

10Binary Input (any variation)100,01,06




2200,01,06

11Single Bit Binary Input (packed)100,01,0612900, 01
12Binary Input with status100,01,0612900, 01
20Binary Input event (any variation)106,07,08

21Binary Input change without time106,07,08129,13017,18
22Binary Input change with absolute time106,07,08129,13017,18
23Binary Input change with relative time106,07,08129,13017,18
30Double bit Binary input – Any variation – L42200,01,06

31Double-bit Binary Input – Packed – L4100,01,0612900, 01
32Double-bit Binary Input – With flags – L4100,01,0612900, 01
40Double-bit Binary Input Event – Any Variation – L4106,07,08

41Double-bit Binary Input Event – without time – L4106,07,08129,13017,18
42Double-bit Binary Input Event with Absolute time – L4106,07,08129,13017,18
43Double-bit Binary Input Event – with relative time – L4106,07,08129,13017,18
101Binary Output – Any Variation100,01,06

102Binary Output – status with flags100,01,0612900,01
121Control relay output block3,4,5,617,28129Echo of request
200Binary Counter – all variations1,7,8,9,10


201Counter – 32-bit with flag100,01,0612900, 01
202Counter – 16-bit with flag100,01,0612900, 01
205Counter – 32-bit without flag100,01,0612900, 01
206Counter – 16-bit without flag100,01,0612900, 01
210Frozen counter – All variations1, 22


211Frozen Counter – 32-bit with flag100,01,0612900, 01
212Frozen Counter – 16-bit with flag100,01,0612900, 01
219Frozen Counter – 32-bit without flag100,01,0612900, 01
2110Frozen Counter – 16-bit without flag100,01,0612900, 01
220Counter Event – Any Variation106

221Counter Event – 32-bit with flag106,07,08129,13017,18
2222 Counter Event – 16-bit with flag106,07,08129,13017,18
230Frozen Counter Event – Any Variation106,07,08

231Frozen Counter Event – 32-bit with flag106,07,08129,13017,18
232Frozen Counter Event – 16-bit with flag106,07,08129,13017,18
300Analog Input – all variations1, 2200,01,06

30132 Bits Analog Input100,01,0612900, 01
30216 Bit Analog input with flag100,01,0612900, 01
30332 Bits Analog Input without flag100,01,0612900, 01
30416 Bit Analog input without flag100,01,0612900, 01
305Short Floating Point (32bits) – L4100,01,0612900, 01
320Analog Input event – All variations106,07,08129,13017,18
321Analog Input event – 32 Bits without time106,07,08129,13017,18
322Analog event without flag – 16 Bits – Without time106,07,08129,13017,18
32332 Bit Analog event with flag – L4106,07,08129,13017,18
32416 Bit Analog event with flag – L4106,07,08129,13017,18
325Analog input event single float – without time – L4106,07,08129,13017,18
327Analog input event single float – with time – L4106,07,08129,13017,18
400Analog Output Status – Any variation1


401Analog Output Status – 32bits with flag100,01,0612900, 01
402Analog Output Status – 16bits with flag100,01,0612900, 01
403Analog output status – Single float with flag – L4100,01,0612900, 01
411Analog output block – 32Bit3,4,5,617,28129Echo of request
412Analog output block – 16 Bit3,4,5,617,28129Echo of request
413Analog output block – Single float – L43,4,5,617,28129Echo of request
50
Time and Data – Absolute time1,20x0712907
51
Time and Date CTO – Absolute time, synchronized

129,13007
51
Time and Date CTO – Absolute time, unsynchronized

129,13007
52
Time Delay – Coarse

12907
52
Time Delay – Fine

12907
60
Class 0 data10x06

60
Class 1 data1,20,2106,07,08

60
Class 2 data1,20,2106,07,08

60
Class 3 data1,20,2106,07,08

60
Internal indications1,200,0112901


In master mode protocol implementation, the master only performs the requests highlighted in blue. The server equipment responds using the answers highlighted in yellow <<<<. there are no highlights. >>>>. Note that it is up to the server equipment to decide how to respond and the master must support all the features of level 2 to be used as a possible answer.

The objects, object variations, function codes and qualifiers have their standard meanings in DNP. Tables with the function code and qualifiers are shown below:


Function CodeDescription Origin
1ReadMaster
2WriteMaster
3SelectMaster
4OperateMaster
5Direct Operate (without selection)Master
6Direct Operate (without ack)Master
7Freeze ImmediatelyMaster
8Freeze Immediately (without ack)Master
9Freeze and ClearMaster
10Freeze and ReadMaster
13Restart (Cold)Master
14Restart (Warm)Master
20Enable non-requested messagesMaster
21Disable non-requested messagesMaster
22Assigns class for an objectMaster
23Measurement with delayMaster
129ResponseSlave
130Non-Requested Response (doesn´t exist on level 2)Slave
Qualifier CodeUse on Request Use on Response
00,01Static Points range (class 0) or a single point with a numberStatic Object
06All pointsInvalid
07,08

A limited number of events

A single point without number (this is a timestamp)

A single point without number (this is a timestamp)
17, 28Controls (one or more unrelated points)Event Objects (one or more unrelated points)


DNP has the concept of data classes, with four classes defined:

Class 0 : Corresponds to the static points, analog or digital. Its content is the value of an analog or digital variable, input or output, at a given time.

Class 1, 2 and 3: Events corresponding to class 0 variable transitions, state transitions or internal relay situations that causes an event.

A common practice in DNP IEDs is to associate the state variation of digital variables or the dead band pass of analog variables with class 1, 2 or 3 events. Thus, modifying the state/value of these variables will cause events to be transmitted at the request of the respective classes of events (60/2, 60/3 and 60/4). Periodically, a class 0 reading (60/1) may be requested for checking integrity.

Note

Static variables not assigned to a class do not cause events.

Class and variable association should be performed on the IED, using an appropriate program. The SCADA runs data acquisition through the classes, however, without defining which variable belongs to which class.

General Operation

The normal master sequence operation is shown below:

  • Once started, as the first step, it sends a read request for events of class 1, 2 and 3
    (60/2, 60/3 and 60/4) for all IEDs;
  • Next, it sends a class 0 read request (read integrity - 60/1) for all IEDs;
  • Periodically, at the time intervals defined in the initialization file, it makes classes 0, 1, 2
    and 3 (60/1 to 60/4) readings;
  • When it has received a message with IIN (Internal Indication) stating that the IED
    requires synchronization, it sends timing message (50.1). This message is only sent at the request of a remote IED;
  • When it has received a message with IIN stating that a restart has occurred, a “clear device flag” write (80/1) is performed, and it goes back to the first step;
  • When the user commands a digital output or an analog output, the respective request to the IED (12/1 or 41/2) is sent;



Channel Settings

Protocol Options

LinkConfirmMode

Protocol mode in which, in the link layer, all requests should be confirmed by the remote IED. The default content is “Enabled.”

Accept Unsolicited DNP

Enabling this option causes an Enable Unsolicited Messages message (Function Code = 20) to be sent out from the master to the slave at the start of a channel execution, right after the Class 0 request and every time the master receives a “RESTART” indication in the Internal Indications field.

MasterStationID

A univocal number between 1 and 65534 corresponding to the master station address. This way, the master informs its own address to the slave when sending it a message. Some slaves reply to the master disregarding this number, while others demand that the address declared on the slave matches the one from the master. The default for this field is “65534.”

Quality changes timestamp

Enabling this option will lead to alteration in the tag present timestamp when a new reading of a flagged object is received, even if there is no alteration to the tag status (value), but there is quality alteration.

Logging Level

You can choose from this list the logging mode created by the communication
module.


Logging Level
DebugAll messages are registered in the LOG.
InfoOnly Info, Warning and Error messages are registered in the LOG.
WarningOnly Warning and Error messages are registered in the LOG.
ErrorOnly Error messages are registered in the LOG.


IED time bias from GMT

On SCADA, internally, all timestamps are stored with GMT (UTC) dates. IEDs usually send these dates also in GMT, and no correction is made. The default for this option is Zero. If in the current implementation the IEDs send the timestamps in their local time, the difference between this time and GMT time must be specified here. For example, in Brasilia the local time is 3 hours less than GMT. In this case, -3 should be specified in this table.

Password for commands

To increase the security of sending commands, normally initiated only by a change in the state of a tag, it is possible here to specify a password of up to nine digits. The communication module will, at the moment the command is received, verify this password against the current value of the EstimatedValue attribute tag involved in the command. Therefore, in the operation of sending a command through a window, script, etc. this number must be loaded in this attribute. The communication module, after executing the command, changes the value of EstimatedValue to ZERO. This verification does not occur if this option is left as zero.

Synchronization LAN

Indicates the synchronization method to be used by the driver, according to the device to which it communicates. Choose ENABLE to use the LAN Synchronization method.

Timeout (ms)

Waiting time in milliseconds for receiving a response after sending any request. It is a functional check, which does not take into account the type of request or response, and it only verifies if there are responses being received in the channel.

Dnp30 Level

By default, the Level 3 profile is used. If you want the operation as level 2, you can enter here the number 2. The client will not use objects and functions available in level 3, such as enabling and disabling Dynamic Unsolicited and requests of several classes in the same message.


DNP3 level properties


Settings

Serial and Multiserial Channel:

  • Com: Communication Port used on the computer;
  • BaudRate
  • DataBits: 8
  • StopBits: 1 or 2
  • Parity: None, Even, Odd;
  • DTR: on, off
  • RTS: on, off
  • CTS: on, off
  • Port configuration must match remote IEDs configurations.



TCP-IP channels:

  • ShareNodeSameIP: Accepts IEDs with the same IP.
  • Preferably, leave default settings on.


Timeout

Defines limit times for transmission and reception of message characters and the number
of retries.

Initial State

Defines how the channel will initiate: enabled or disabled. If the channel is disabled, no message will be sent or received through it. In other words, the channel will be deactivated.



Nodes Settings

Each node represents a remote station (IED). The user can configure multiple workstations into a single channel for serial communication. In the case of TCP-IP communication, only one node is supported for each channel. In this case, the user must set as many channels as there are nodes.

Channel Data (Primary and Backup)

Attribute set associated with the node (channel), which refers to its address and other attributes presented below:


For TCP-IP Communication:

  • IP Address – Type in the IP Address of the IED server.
  • Port – Input the port number on which the IED will receive communication.


Note

In the case of serial communication, these two first fields do not exist.


For any case:

  • SlaveID – Address of the server IED (slave mode) at the application layer.
  • IgnoreBitOnLine – If “enabled,” it indicates that the driver should ignore the “BitOnLine” indication that is inserted by the IED when a failure or normality occurs at a point, according to the IED criteria.
  • WaitForIdleToCmd – if “enabled,” it indicates that a command will only be sent when the sampling communication is stopped, i.e. not occurring.
  • AI sample time (ms) – Time in milliseconds between two consecutive analog point value requests (type 30 Objects request, all variations).
  • BI sample time (ms) – Time in milliseconds between two consecutive digital point value requests (type 1 Objects request, all variations).
  • Class 0 sample time (ms) – Time in milliseconds between two consecutive all points requests.
  • Class 1 sample time (ms) – Time in milliseconds between two consecutive class 1 points requests.
  • Class 2 sample time (ms) – Time in milliseconds between two consecutive class 2 points requests.
  • Class 3 sample time (ms) – Time in milliseconds between two consecutive class 3 points requests.
  • Counters sample time (ms) – Time in milliseconds between two consecutive counter value requests (type 21 Objects request, all variations).
  • Time-Date sample time (ms) – Time in milliseconds between two consecutive synchronization submissions, i.e. sending the current date and time to IED (object 50). Time is sent only in GMT.
  • BI Event sample time (ms) – Time in milliseconds between two consecutive requests asking that the current EVENTS of the digital points be sent (request for Type 2 objects, all variations).
  • BO sample time (ms) – Time in milliseconds between two consecutive requests asking that the current states of the Binary Output points be sent (request of type 10 Objects, all variations).
  • AO sample time (ms) – Time in milliseconds between two consecutive requests asking that the current values of the Analog Output points be sent (request of type 40 Objects, all variations).
  • AI Event sample time (ms) – Time in milliseconds between two consecutive requests asking that the current values of the Analog Event points be sent (request of type 32 Objects, all variations).
  • Frozen Counter sample time (ms) – Time in milliseconds between two consecutive requests asking that the current values of frozen counters be sent (request for type 23 Objects, all variations).
  • Counter Event sample time (ms) – Time in milliseconds between two consecutive requests asking that the current counter events be sent (request of type 22 Objects, all variations).
  • DBI sample time (ms) – Time in milliseconds between two consecutive requests asking that the current states of the double digital points be sent (request of Type 03 Objects, all variations).
  • DBI Event sample time (ms) – Time in milliseconds between two consecutive requests asking that the current EVENTS of the double digital points be sent (request of type 04 Objects, all variations).
  • Request Link Status sample time (ms) – Time in milliseconds between two consecutive requests asking for the current status of the link (link status).
  • Tag for Comm status – In this field the name of an existing tag in the project can be indicated to show success/failure in communication from a functional point of view. When requests are made, the module waits for a maximum of timeout milliseconds (defined in the Protocol Options, above) to receive a response. In case of failure, the value of this tag will be set to ZERO. In case of success, the value will be set to ONE.
  • Enable Unsolicited sample time (ms) – Time in milliseconds between two consecutive submissions requesting to enable an Unsolicited Submission (function 22) for classes 1, 2 and 3.
  • Backup Station – The same settings adjusted for the master station can be adjusted for an alternative backup IED station with identical point configuration, if it exists in the installation.



Points Settings

Points can be input or output points.

Entry points, i.e. points that are acquired through the protocol, have basically two main parameters: point type and address.

Output points, used for remote controls, have a “Control Code” parameter in addition to the type and address to specify the output operation. In the address map of an IED, the addresses restart for each type of point.

The states or values of the points are reported by the IED by Information Objects defined in the protocol. These objects have variations such as with or without timestamp. Whenever the IED reports with a “timestamp” it will be used in the corresponding attribute of a point on SCADA. When it does not come with a “timestamp” the driver will put the current time of the computer where the driver is running as “timestamp.”

SCADA communication module on master mode implements:

  • Digital points read;
  • Analog points read;
  • Counters read;
  • Analog and Digital points commands;
  • Select Before Operate commands.

Point Types

The implemented SCADA point types, listed below, are defined based on the data objects set out in the standard. For each type of point, whichever the object variation received on the IED might be, with or without a “flag” or a timestamp, the values acquired will be placed in points with the types listed below. In the Points table, the “Address” field is used to choose the type of point and to specify its address.



AI – Analog Input

Scalar analog measurement used for transmission of analog quantities. Used to receive
data sent through objects 30 and 32 and all their variations. They are 16 or 32-bit integers.

BI – Binary Input

Simple binary entry point, value 0 or 1. Used to receive data sent through objects 1 and 2
and all their variations.

DBI – Double Binary Input

Dual binary input point, value between 0 and 3. Used to receive data sent through objects 3 and 4 and all their variations.

RAO – Read Analog Output

Point for reading the contents of analog output of 16 bits or 32 bits. Used for the reception of objects of types 40 and 41.

CRO – Control Relay Output

Digital output point used to control the switches and circuit breakers. The DNP object 12, including a Control Code (8 bits), is used to indicate the type of command and execution details. When chosen, a field will be presented requesting this code information. After clicking on the right arrow, a window with the selected attributes for the present value will appear. If the user changes the selected attributes and presses the return arrow, a new value associated with the selected attributes will be generated.

The possible values are presented in the table below with the respective associated actions:

Control CodeAction 
1Output Pulse ON
2Output Pulse OFF
3Output Latch ON
4Output Latch OFF
65Output Pulse ON + Close
66Output Pulse OFF + Close
67Output Latch ON + Close
68Output Latch OFF + Close
129Output Pulse ON + Trip
130Output Pulse OFF + Trip
131Output Latch ON + Trip
132Output Latch OFF + Trip
+16Queue + Trip
+32Clear + Trip


funcCode – In the commands, it is also possible to define the operation to be executed in the command according to the following table:

funcCodeAction 
3Select
4Operate
5Direct Operation (no selection)
6Direct Operation (without ack)
34Select and Operate

Note

Code 5 will be used if no code is chosen.

CT – Counter

Binary counter of 16 or 32 bits, received from the IEDs through type 20 objects and all their variations. This number has the last state of counter, at the instant it is read.

FRZ – Frozen Counter

Binary counter of 16 or 32 bits, received from the IED through object 21 and its variations, which contains information on the last time a counter was “frozen.” The frozen value shows the value of the counter (the same index) when the last freeze operation was performed on the counter of the slave IED.

AO – Analog Output Status or Block (16bits)

Analog output for a 16-bit DA converter, using type 40 objects (actual value to be applied to the drive) or type 41 objects (amount required to be achieved in the analogue output), both on variation 2 (16 bits).

AOL – Analog Output long (32 bits)

Analog output for a 32-bit DA converter, using type 40 objects (actual value to be applied to the drive) or type 41 objects (amount required to be achieved in the analogue output), both on variation 1 (32 bits).

AIF – Analog Input Floating (32 bits)

Measurement used for analog transmission of analog quantities. Used to receive data sent over type 100 objects and all their variations. Floating point numbers are 32 or 64-bit IEEE-754 format.

CRS – Control Relay Signaling

A type defined for SCADA for setting the match between the output tag and the input tag that performs the signaling, as a result of the command. When the CRS type is chosen, in the definition of the Address column, a different menu appears with the fields to define the necessary parameters.


The following figure shows the setting in the POINTS table. The signaling comes in tag A2.DJ.DJ, which is of type DBI. The two lines highlighted in yellow show the definition of the signaling of commands with the same address (0009) and control code (128 - Open and 64 - Close).

These two lines are used to load the protocol module to create a static list with all matches on the node. Their information does not create new points in real time.


Nothing else is required for setup. With this list, the module will automatically call the transaction creation and verification methods. The command signaling is only used for digital CRO commands and BI and DBI digital signals.


IIN – Internal Indications

On this implementation, it is possible to get access to the internal indication statuses or to the response status of commands by defining tags with the IIN type, for these to receive this information from the communication module. These IED internal indication statuses are reported through flags placed on the objects transmitted in the communication.

In order to receive the IIN, an analog int tag must be defined as IIN type and 65000 address. This tag will receive the register with the bits whose meaning are presented in the table below.

In order to receive the statuses from the most recently sent commands, an analog int tag must be defined as IIN type and 65001 address.


IIN: 16 bits sent in every slave answer with control data - Address: 65000

BitOriginDescriptionContent
0IINBroadcastReturns 1 if slave receives a broadcast message (address = FFFF)
1IINClass 1Returns 1 if slave has class 1 events
2IINClass 2Returns 1 if slave has class 2 events
3IINClass 3Returns 1 if slave has class 3 events
4IINClock SynchronizationReturns 1 if slave asks for clock
synchronization
5IINOutputs set to localReturns 1 if slave has any output set to local
6IINProblemReturns 1 if slave has a problem
7IINRestartReturns 1 if slave has restarted
8IINFunction not ImplementedReturns 1 if a function asked by the master was not implemented in the slave
9IINUnknown ObjectReturns 1 if slave does not have a certain object at all or in a specific class
10IINInvalid DataReturns 1 if slave has an invalid parameter in the qualifier or the address range is invalid
11IINOverflowReturns 1 if slave buffer has an overflow
12IINBusyReturns 1 if the request was received but is already running
13IINCorrupted DataReturns 1 if the parametric data was corrupted
14IINReservedAlways 0
15IINReservedAlways 0


Status field: 8 bits sent as an answer to a command. Address: 65001

Byte ValueOrigin DescriptionContent
0StatusCommand Acceptedafter a correct command
1StatusCommand Not Accepteda timeout has occurred between select and operate
2StatusSelect Faultoperate has occurred without a prior select
3StatusFormat Errorcommand has a format error
4StatusControl not supportedoperation is not supported
5StatusFull Queuethe request queue on the slave is full or the point is already active
6StatusHardware Errora hardware error occurred while the command was being processed
7 to 127
Not used


These IIN can be defined in dictionaries and shown on event lists and/or alarms. This way, for example purposes, a dictionary associated with a variable which contains the resulting status of a command is shown below. Next are the definition of this variable and a template of its declaration on the Device table points.




Note

For an event to always occur in this tag, the communication module always sets the value as 99 in the tag before starting to send a command. Afterwards, it puts in the tag the result obtained from the response to the command.

Point Address

The Address field to be filled when registering a point is what the standard calls “Index.” It consists of a 16-bit number that is the indicative index [0 to n-1] of each of the points of the same type mapped within the IED.

For example purposes, a points table filled with several types of points is presented below. The digital output type points (CRO), as mentioned above, have their control code, besides the address.



To implement discrete digital input points, it is enough to use the “Bit” attribute of a tag for each of the points that define the discrete digital input value. Therefore, for example, a switch with two contacts that define its state:


TagAddress Complement
SEL_LINHA_01.SC89_18Switch Open
SEL_LINHA_01.SC89_19Switch Closed


This is defined as an AnalogInt Tag and the Bit attribute of this 16-bit variable (AnalogInt) is used on the node table to address two points, as in the figure below:



The values assumed by the SEL_LINHA_01.SC89_1 variable will be:

TagBit 0 Bit 1ValueMeaning
SEL_LINHA_01.SC89_1000UNDEFINED
SEL_LINHA_01.SC89_1101OPEN
SEL_LINHA_01.SC89_1012CLOSED
SEL_LINHA_01.SC89_1113ERROR

Access Type

Since this is a communication module in client mode, it requires a few characteristics of its own for parameterization of the Access Type field in the Points table.

For reading-type points, the Access Type must be defined as:

  • ReadOnStartup= On;
  • ReadPooling= Always;
  • ReadPoolongRate: 500 milliseconds
  • WriteEvent= Changed;
  • AccepUnsolictited = On;

For command-type points (CRO, AO and AOL), the Access Type must be defined as:

  • ReadPooling = Never;
  • WriteEnable = On
  • WriteEvent= Changed;



Driver Revision History

DNP30 Revision History
Version Notes
2016.2Initial release on new documentation standards.

In this section...

  • No labels