DNP3 Interoperability for the RTU Module as Slave
Original instructions
Introduction
The purpose of this information is to describe the specific implementation of the Distributed Network Protocol (DNP3) within the RTU module as slave.
This information, in conjunction with the DNP3 Basic 4 Document Set, and the DNP3 Subset Definitions Document, provide detailed information on how to communicate with the RTU module as slave via the DNP3 protocol.
This implementation of DNP3 is fully compliant with DNP3 Subset Definition Level 3.
DNP3 Device Profile
This table provides a "Device Profile Document" in the standard format defined in the DNP3 Subset Definitions Document. While it is referred to in the DNP3 Subset Definitions as a "Document" it is only a component of a total interoperability guide. This table provides a complete interoperability guide for the advanced RTU module as an example slave (but your RTU module may be different):
Parameter
Description
Vendor name: Schneider Electric
Device name: commercial reference
Highest DNP3 level supported:
Device function:
For requests: Level 3
-
Master
For response: Level 3
X
Slave
Maximum data link frame size (octets):
Maximum application fragment size (octets):
Transmitted: 292
Transmitted: Configurable up to 2048
Received: 292
Received: 2048
Maximum data link re-tries:
Maximum application layer re-tries:
-
None
X
None
-
Fixed
-
Configurable
X
Configurable from 0 to 65535
Requires data link layer confirmation:
-
Never
-
Always
-
Sometimes
X
Configurable as: Never, Only for multi-frame messages or Always
Requires application layer confirmation:
-
Never
-
Always
-
When reporting Event Data (Slave devices only)
-
When sending multi-fragment responses (Slave devices only)
-
Sometimes
X
Configurable as: “Only when reporting event data” or “When reporting event data” or “multi-fragment messages”
Timeouts while waiting for:
Data link confirm:
-
None
-
Fixed at
-
Variable
X
Configurable
Complete appl. fragment:
X
None
-
Fixed at
-
Variable
-
Configurable
Application confirm:
-
None
-
Fixed at
-
Variable
X
Configurable
Complete appl. response:
X
None
-
Fixed at
-
Variable
-
Configurable
Others:
Transmission delay, configurable
Select/Operate arm timeout, configurable
Need time interval, configurable
Unsolicited notification delay, configurable
Unsolicited response retry delay, configurable
Unsolicited offline intercal, configurable
Sends / Executes control operations:
WRITE Binary outputs
X
Never
-
Always
-
Sometimes
-
Configurable
SELECT / OPERATE
-
Never
X
Always
-
Sometimes
-
Configurable
DIRECT OPERATE
-
Never
X
Always
-
Sometimes
-
Configurable
DIRECT OPERATE - NO ACK
-
Never
X
Always
-
Sometimes
-
Configurable
Count > 1
X
Never
-
Always
-
Sometimes
-
Configurable
Pulse on
-
Never
-
Always
-
Sometimes
X
Configurable
Pulse off
X
Never
-
Always
-
Sometimes
-
Configurable
Latch on
-
Never
X
Always
-
Sometimes
-
Configurable
Latch off
-
Never
X
Always
-
Sometimes
-
Configurable
Qeue
X
Never
-
Always
-
Sometimes
-
Configurable
Clear queue
X
Never
-
Always
-
Sometimes
-
Configurable
Attach explanation if ‘Sometimes’ or ‘Configurable’ was checked for any operation.
Reports Binary Input Change Events when no specific variation requested:
Reports time-tagged Binary Input Change Events when no specific variation requested:
-
Never
-
Never
-
Only time-tagged
-
Binary Input Change with time
-
Only non-time-tagged
-
Binary Input Change with relative time
X
Configurable to send one or the other
X
Configurable
Sends unsolicited responses:
Sends static data in unsolicited responses:
-
Never
X
Never
X
Configurable
-
When device restarts
-
Only certain objects
-
When status flags change
-
Sometimes (attach explanation)
No other options are permitted
X
ENABLE/DISABLE UNSOLICITED function codes supported
Default counter object/variation:
Counter roll over at:
-
No counters reported
-
No counters reported
X
Configurable
-
Configurable (attach explanation)
-
Default object
-
16 Bits
Default variation:
X
32 Bits
-
Point-by-point list attached
-
Other value:
-
Point-by-point list attached
Sends Multi-Fragment responses:
-
Yes
-
No
X
Configurable
Sequential file transfer support:
Append file modes
-
Yes
X
No
Custom status code strings
-
Yes
X
No
Permissions field
-
Yes
X
No
File events assigned to class
-
Yes
X
No
File events send immediately
-
Yes
X
No
Multiple blocks in a fragment
-
Yes
X
No
Max number of files open
0
DNP3 Implementation Table
The following table identifies which object variations, function codes, and qualifiers the advanced RTU module supports in both request messages and in response messages. For static (non-change-event) objects, requests sent with qualifiers 00, 01, 06, 07, or 08, are responded to with qualifiers 00 or 01. Requests sent with qualifiers 17 or 28 are responded to with qualifiers 17 or 28. For change-event objects, qualifiers 17 or 28 are always responded to.
In the following table, text in italic and underline indicates Subset Level 3 functionality (beyond Subset Level 2).
In the following table, text in bold indicates functionality beyond Subset Level 3:
Object
REQUEST (Library may send)
Function Codes (Library will Parse)
Obj. No.
Variation No.
Description
Function Codes (dec)
Qualifier Codes (hex)
Function Codes (dec)
Qualifier Codes (hex)
1
0
Binary Input – Any Variation
1 (read)
00, 01 (start-stop)
06 (no range, or all)
07, 08 (limited qty) 17, 27, 28 (index)
1
1 (default – see note 1)
Binary Input
1 (read)
00, 01 (start-stop)
06 (no range, or all)
07, 08 (limited qty) 17, 27, 28 (index)
129 (response)
00, 01 (start-stop)
17, 28 (index – see note 2)
1
2
Binary Input with Status
1 (read)
00, 01 (start-stop)
06 (no range, or all)
07, 08 (limited qty) 17, 27, 28 (index)
129 (response)
00, 01 (start-stop)
17, 28 (index – see note 2)
2
0
Binary Input Change – Any Variation
1 (read)
06 (no range, or all)
07, 08 (limited qty))
2
1
Binary Input Change without Time
1 (read)
06 (no range, or all)
07, 08 (limited qty))
129 (response)
130 (unsol. resp)
17, 28 (index)
2
2
Binary Input Change with Time
1 (read)
06 (no range, or all)
07, 08 (limited qty))
129 (response)
130 (unsol. resp)
17, 28 (index)
2
3 (default - see note 1)
Binary Input Change with Relative Time
1 (read)
06 (no range, or all)
07, 08 (limited qty))
129 (response)
130 (unsol. resp)
17, 28 (index)
3
0
Double Bit Input – Any Variation
1 (read)
00, 01 (start-stop)
06 (no range, or all)
07, 08 (limited qty) 17, 27, 28 (index)
3
1 (default – see note 1)
Double Bit Input
1 (read)
00, 01 (start-stop)
06 (no range, or all)
07, 08 (limited qty) 17, 27, 28 (index)
129 (response)
00, 01 (start-stop)
17, 28 (index – see note 1)
3
2
Double Bit Input with Status
1 (read)
00, 01 (start-stop)
06 (no range, or all)
07, 08 (limited qty) 17, 27, 28 (index)
129 (response)
00, 01 (start-stop)
17, 28 (index – see note 1)
4
0
Double Bit Input Change – Any Variation
1 (read)
06 (no range, or all)
07, 08 (limited qty))
4
1
Double Bit Input Change without Time
1 (read)
06 (no range, or all)
07, 08 (limited qty))
129 (response)
130 (unsol. resp)
17, 28 (index)
4
2
Double Bit Input Change with Time
1 (read)
06 (no range, or all)
07, 08 (limited qty))
129 (response)
130 (unsol. resp)
17, 28 (index)
4
3 (default - see note 1)
Double Bit Input Change with Relative Time
1 (read)
06 (no range, or all)
07, 08 (limited qty))
129 (response)
130 (unsol. resp)
17, 28 (index)
10
0
Binary Output – Any Variation
1 (read)
00, 01 (start-stop)
06 (no range, or all)
07, 08 (limited qty) 17, 27, 28 (index)
10
1
Binary Output
1 (read)
00, 01 (start-stop)
06 (no range, or all)
07, 08 (limited qty) 17, 27, 28 (index)
129 (response)
00, 01 (start-stop)
17, 28 (index – see note 1)
1 (read)
00, 01 (start-stop)
10
2 (default – see note 1)
Binary Output Status
1 (read)
00, 01 (start-stop)
06 (no range, or all)
07, 08 (limited qty) 17, 27, 28 (index)
129 (response)
00, 01 (start-stop)
17, 28 (index – see note 2)
11
0
Binary Output Change – Any Variation
1 (read)
06 (no range, or all) 07, 08 (limited qty)
11
1 (default – see note 1)
Binary Output Change without Time
1 (read)
06 (no range, or all) 07, 08 (limited qty)
129 (response) 130 (unsol. resp)
17, 28 (index)
11
2
Binary Output Change with Time
1 (read)
06 (no range, or all) 07, 08 (limited qty)
129 (response) 130 (unsol. resp)
17, 28 (index)
12
1
Control Relay Output Block
3 (select) 4 (operate) 5 (direct op.) 6 (dir. op, noack)
17, 28 (index)
129 (response)
echo of request
12
2
Pattern Control Block
3 (select)
4 (operate)
5 (direct op.)
6 (dir. op, noack)
7 (limited quantity)
129 (response)
echo of request
12
3
Pattern Mask
3 (select)
4 (operate)
5 (direct op.)
6 (dir. op, noack)
00, 01 (start-stop)
129 (response)
echo of request
20
0
Binary Counter – Any Variation
1 (read)
00, 01 (start-stop)
06 (no range, or all)
07, 08 (limited qty)
17, 27, 28 (index)
7 (freeze)
8 (freeze noack)
9 (freeze clear)
10 (frz. cl. noack)
00, 01 (start-stop)
06 (no range, or all)
07, 08 (limited qty)
20
1
32-Bit Binary Counter (with Flag)
1 (read)
00, 01 (start-stop)
06 (no range, or all)
07, 08 (limited qty)
17, 27, 28 (index)
129 (response)
00, 01 (start-stop)
17, 28 (index – see note 2)
20
2
16-Bit Binary Counter (with Flag)
1 (read)
00, 01 (start-stop)
06 (no range, or all)
07, 08 (limited qty)
17, 27, 28 (index)
129 (response)
00, 01 (start-stop)
17, 28 (index – see note 2)
20
5 (default - see note 1)
32-Bit Binary Counter without Flag
1 (read)
00, 01 (start-stop)
06 (no range, or all)
07, 08 (limited qty)
17, 27, 28 (index)
129 (response)
00, 01 (start-stop)
17, 28 (index – see note 2)
20
6
16-Bit Binary Counter without Flag
1 (read)
00, 01 (start-stop)
06 (no range, or all)
07, 08 (limited qty)
17, 27, 28 (index)
129 (response)
00, 01 (start-stop)
17, 28 (index – see note 2)
21
0
Frozen Counter – Any Variation
1 (read)
00, 01 (start-stop)
06 (no range, or all)
07, 08 (limited qty)
17, 27, 28 (index)
21
1
32-Bit Frozen Counter (with Flag)
1 (read)
00, 01 (start-stop)
06 (no range, or all)
07, 08 (limited qty)
17, 27, 28 (index)
129 (response)
00, 01 (start-stop)
17, 28 (index – see note 2)
21
2
16-Bit Frozen Counter (with Flag)
1 (read)
00, 01 (start-stop)
06 (no range, or all)
07, 08 (limited qty)
17, 27, 28 (index)
129 (response)
00, 01 (start-stop)
17, 28 (index – see note 2)
21
5
32-Bit Frozen Counter with Time Of Freeze
1 (read)
00, 01 (start-stop)
06 (no range, or all)
07, 08 (limited qty)
17, 27, 28 (index)
129 (response)
00, 01 (start-stop)
17, 28 (index – see note 1)
21
6
16-Bit Frozen Counter with Time Of Freeze
1 (read)
00, 01 (start-stop)
06 (no range, or all)
07, 08 (limited qty)
17, 27, 28 (index)
129 (response)
00, 01 (start-stop)
17, 28 (index – see note 1)
21
9 (default – see note 1)
32-Bit Frozen Counter without Flag
1 (read)
00, 01 (start-stop)
06 (no range, or all)
07, 08 (limited qty)
17, 27, 28 (index)
129 (response)
00, 01 (start-stop)
17, 28 (index – see note 2)
21
10
16-Bit Frozen Counter without Flag
1 (read)
00, 01 (start-stop)
06 (no range, or all)
07, 08 (limited qty)
17, 27, 28 (index)
129 (response)
00, 01 (start-stop)
17, 28 (index – see note 2)
22
0
Counter Change Event – Any Variation
1 (read)
06 (no range, or all) 07, 08 (limited qty)
22
1 (default – see note 1)
32-Bit Counter Change Event without Time
1 (read)
06 (no range, or all) 07, 08 (limited qty)
129 (response) 130 (unsol. resp)
17, 28 (index)
22
2
16-Bit Counter Change Event without Time
1 (read)
06 (no range, or all) 07, 08 (limited qty)
129 (response) 130 (unsol. resp)
17, 28 (index)
22
5
32-Bit Counter Change Event with Time
1 (read)
06 (no range, or all) 07, 08 (limited qty)
129 (response) 130 (unsol. resp)
17, 28 (index)
22
6
16-Bit Counter Change Event with Time
1 (read)
06 (no range, or all) 07, 08 (limited qty)
129 (response) 130 (unsol. resp)
17, 28 (index)
23
0
Frozen Counter Event (Variation 0 is used to request default variation)
1 (read)
06 (no range, or all) 07, 08 (limited qty)
23
1 (default – see note 1)
32-Bit Frozen Counter Event
1 (read)
06 (no range, or all) 07, 08 (limited qty)
129 (response) 130 (unsol. resp)
17, 28 (index)
23
2
16-Bit Frozen Counter Event
1 (read)
06 (no range, or all) 07, 08 (limited qty)
129 (response) 130 (unsol. resp)
17, 28 (index)
23
5
32-Bit Frozen Counter Event with Time
1 (read)
06 (no range, or all) 07, 08 (limited qty)
129 (response) 130 (unsol. resp)
17, 28 (index)
23
6
16-Bit Frozen Counter Event with Time
1 (read)
06 (no range, or all) 07, 08 (limited qty)
129 (response) 130 (unsol. resp)
17, 28 (index)
30
0
Analog Input - Any Variation
1 (read)
00, 01 (start-stop)
06 (no range, or all)
07, 08 (limited qty) 17, 27, 28 (index)
30
1
32-Bit Analog Input
1 (read)
00, 01 (start-stop)
06 (no range, or all)
07, 08 (limited qty)
17, 27, 28 (index)
129 (response)
00, 01 (start-stop)
17, 28 (index – see note 2)
30
2
16-Bit Analog Input
1 (read)
00, 01 (start-stop)
06 (no range, or all)
07, 08 (limited qty)
17, 27, 28 (index)
129 (response)
00, 01 (start-stop)
17, 28 (index – see note 2)
30
3(default – see note 1)
32-Bit Analog Input without Flag
1 (read)
00, 01 (start-stop)
06 (no range, or all)
07, 08 (limited qty)
17, 27, 28 (index)
129 (response)
00, 01 (start-stop)
17, 28 (index – see note 2)
30
4
16-Bit Analog Input without Flag
1 (read)
00, 01 (start-stop)
06 (no range, or all)
07, 08 (limited qty)
17, 27, 28 (index)
129 (response)
00, 01 (start-stop)
17, 28 (index – see note 2)
30
5
short floating point
1 (read)
00, 01 (start-stop)
06 (no range, or all)
07, 08 (limited qty)
17, 27, 28 (index)
129 (response)
00, 01 (start-stop)
17, 28 (index – see note 2)
32
0
Analog Change Event – Any Variation
1 (read)
06 (no range, or all) 07, 08 (limited qty)
32
1(default – see note 1)
32-Bit Analog Change Event without Time
1 (read)
06 (no range, or all) 07, 08 (limited qty)
129 (response) 130 (unsol. resp)
17, 28 (index)
32
2
16-Bit Analog Change Event without Time
1 (read)
06 (no range, or all) 07, 08 (limited qty)
129 (response) 130 (unsol. resp)
17, 28 (index)
32
3
32-Bit Analog Change Event with Time
1 (read)
06 (no range, or all) 07, 08 (limited qty)
129 (response) 130 (unsol. resp)
17, 28 (index)
32
4
16-Bit Analog Change Event with Time
1 (read)
06 (no range, or all) 07, 08 (limited qty)
129 (response) 130 (unsol. resp)
17, 28 (index)
32
5
short floating point Analog Change Event without Time
1 (read)
06 (no range, or all) 07, 08 (limited qty)
129 (response) 130 (unsol. resp)
17, 28 (index)
32
7
short floating point Analog Change Event with Time
1 (read)
06 (no range, or all) 07, 08 (limited qty)
129 (response) 130 (unsol. resp)
17, 28 (index)
34
0
Analog Input Deadband (Variation 0 is used to request default variation)
1 (read)
00, 01 (start-stop)
06 (no range, or all)
07, 08 (limited qty)
17, 28 (index)
34
1
16 bit Analog Input Deadband
1 (read)
2 (write)
00, 01 (start-stop)
06 (no range, or all)
07, 08 (limited qty)
17, 28 (index)
17, 28 (index)
129 (response)
00, 01 (start-stop)
17, 28 (index-see note 2)
34
2
32 bit Analog Input Deadband
1 (read)
2 (write)
00, 01 (start-stop)
06 (no range, or all)
07, 08 (limited qty)
17, 28 (index)
17, 28 (index)
129 (response)
00, 01 (start-stop)
17, 28 (index-see note 2)
34
3
short floating point Analog Input Deadband
1 (read)
2 (write)
00, 01 (start-stop)
06 (no range, or all)
07, 08 (limited qty)
17, 28 (index)
17, 28 (index)
129 (response)
00, 01 (start-stop)
17, 28 (index-see note 2)
40
0
Analog Output Status
1 (read)
00, 01 (start-stop)
06 (no range, or all)
07, 08 (limited qty)
17, 27, 28 (index)
40
1
32-Bit Analog Output Status
1 (read)
00, 01 (start-stop)
06 (no range, or all)
07, 08 (limited qty)
17, 27, 28 (index)
129 (response)
00, 01 (start-stop)
17, 28 (index – see note 2)
40
2(default – see note 1
16-Bit Analog Output Status
1 (read)
00, 01 (start-stop)
06 (no range, or all)
07, 08 (limited qty)
17, 27, 28 (index)
129 (response)
00, 01 (start-stop)
17, 28 (index – see note 2)
40
3
short floating point Analog Output Status
1 (read)
00, 01 (start-stop)
06 (no range, or all)
07, 08 (limited qty)
17, 27, 28 (index)
129 (response)
00, 01 (start-stop)
17, 28 (index – see note 2)
41
0
Analog Output Block
00, 01 (start-stop)
06 (no range, or all)
07, 08 (limited qty)
17, 27, 28 (index)
41
1
32-Bit Analog Output Block
3 (select)
4 (operate)
5 (direct op)
6 (dir. op, noack)
17, 28 (index)
27 (index)
129 (response)
echo of request
41
2
16-Bit Analog Output Block
3 (select)
4 (operate)
5 (direct op)
6 (dir. op, noack)
17, 28 (index)
27 (index)
129 (response)
echo of request
41
3
short floating point Analog Output Block
3 (select)
4 (operate)
5 (direct op)
6 (dir. op, noack)
17, 27, 28 (index)
129 (response)
echo of request
42
0
Analog Output Event – Any Variation
1 (read)
06 (no range, or all) 07, 08 (limited qty)
42
1
32-Bit Analog Output Event without Time
1 (read)
06 (no range, or all) 07, 08 (limited qty)
129 (response) 130 (unsol. resp)
17, 28 (index)
42
2(default – see note 1
16-Bit Analog Output Event without Time
1 (read)
06 (no range, or all) 07, 08 (limited qty)
129 (response) 130 (unsol. resp)
17, 28 (index)
42
3
32-Bit Analog Output Event with Time
1 (read)
06 (no range, or all) 07, 08 (limited qty)
129 (response) 130 (unsol. resp)
17, 28 (index)
42
4
16-Bit Analog Output Event with Time
1 (read)
06 (no range, or all) 07, 08 (limited qty)
129 (response) 130 (unsol. resp)
17, 28 (index)
42
5
short floating point Analog Output Event without Time
1 (read)
06 (no range, or all) 07, 08 (limited qty)
129 (response) 130 (unsol. resp)
17, 28 (index)
42
7
short floating point Analog Output Event with Time
1 (read)
06 (no range, or all) 07, 08 (limited qty)
129 (response) 130 (unsol. resp)
17, 28 (index)
50
0
Time and Date
50
1 (default – see note 1)
Time and Date
1 (read)
07 (limited qty = 1)
129 (response)
07 (limited qty = 1)
2 (write)
07 (limited qty = 1)
50
3
Time and Date Last Recorded Time
2 (write)
07 (limited qty)
51
1
Time and Date CTO
129 (response) 130 (unsol. resp)
07 (limited qty) (qty = 1)
51
2
Unsynchronized Time and Date CTO
129 (response) 130 (unsol. resp)
07 (limited qty)(qty = 1)
52
1
Time Delay Coarse
129 (response)
07 (limited qty)(qty = 1)
52
2
Time Delay Fine
129 (response)
07 (limited qty)(qty = 1)
60
0
Not Defined
60
1
Class 0 Data
1 (read)
06 (no range, or all)
60
2
Class 1 Data
1 (read)
06 (no range, or all) 07, 08 (limited qty)
20 (enbl. unsol.)
21 (dab. unsol.)
22 (assign class)
06 (no range, or all)
60
3
Class 2 Data
1 (read)
06 (no range, or all) 07, 08 (limited qty)
20 (enbl. unsol.)
21 (dab. unsol.)
22 (assign class)
06 (no range, or all)
60
4
Class 3 Data
1 (read)
06 (no range, or all) 07, 08 (limited qty)
20 (enbl. unsol.)
21 (dab. unsol.)
22 (assign class)
06 (no range, or all)
80
1
Internal Indications
1 (read)
00, 01 (start-stop)
129 (response)
00, 01 (start-stop)
2 (write) (see note 3)
00 (start-stop)
index=4 or 7
No Object (function code only)
13 (cold restart)
No Object (function code only)
14 (warm restart)
No Object (function code only)
23 (delay meas.)
No Object (function code only)
24(record current time)
NOTE: (1) A Default variation refers to the variation responded to when variation 0 is requested and/or in class 0, 1, 2, or 3 scans. Default variations are configurable; however, default settings for the configuration parameters are indicated in the table above.
NOTE: (2) For static (non-change-event) objects, qualifiers 17 or 28 are only responded to when a request is sent with qualifiers 17 or 28, respectively. Otherwise, static object requests sent with qualifiers 00, 01, 06, 07, or 08, are responded to with qualifiers 00 or 01. (For change-event objects, qualifiers 17 or 28 are always responded to.)
NOTE: (3) Writes of Internal Indications are only supported for indexes 4 and 7 (Need Time IIN1-4 or Restart IIN1-7).