DNP3 Interoperability for the Advanced RTU Module as Master
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 master.
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 master 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 using an advanced RTU module as an example master (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
X
Master
For response: Level 3
-
Slave
Maximum data link frame size (octets):
Maximum application fragment size (octets):
Transmitted: 292
Transmitted: 2048
Received: 292
Received: 2048
Maximum data link re-tries:
Maximum application layer re-tries:
-
None
X
None
-
Fixed at
-
Configurable
X
Configurable from 0 to 65535
Requires data link layer confirmation:
-
Never
-
Always
-
Sometimes
X
Configurable as: Never or Always
Requires application layer confirmation:
X
Never
-
Always
-
When reporting Event Data
-
When sending multi-fragment responses
-
Sometimes
-
Configurable
Timeouts while waiting for:
Data link confirm:
-
None
-
Fixed at
-
Variable
X
Configurable
Complete appl. fragment:
X
None
-
Fixed at
-
Variable
-
Configurable
Application confirm:
X
None
-
Fixed at
-
Variable
-
Configurable
Complete appl. response:
X
None
-
Fixed at
-
Variable
-
Configurable
Sends / Executes control operations:
WRITE Binary outputs
-
Never
-
Always
-
Sometimes
X
Configurable
SELECT / OPERATE
-
Never
-
Always
-
Sometimes
X
Configurable
DIRECT OPERATE
-
Never
-
Always
-
Sometimes
X
Configurable
DIRECT OPERATE - NO ACK
-
Never
-
Always
-
Sometimes
X
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
-
Always
-
Sometimes
X
Configurable
Latch off
-
Never
-
Always
-
Sometimes
X
Configurable
Qeue
X
Never
-
Always
-
Sometimes
-
Configurable
Clear queue
X
Never
-
Always
-
Sometimes
-
Configurable
Expects binary input change events:
-
Either time-tagged or non-time-tagged for a single event
X
Both time-tagged and non tagged for single event
-
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 assigned poll specifically
-
Yes
X
No
Multiple blocks in a fragment
-
Yes
X
No
Max number of files open
0
DNP3 Implementation Table
The following table identifies the variations, function codes, and qualifiers supported by the RTU module as master in both request messages and in response messages.
In the following table, text in italic and underline indicates Subset Level 3 functionality (beyond Subset Level 2).
In this table, the text in bold indicates functionality beyond Subset Level 3:
Object
REQUEST (Library may send)
Function Codes (Library will Parse)
Obj. No.
Varia-tion 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)
1
1
Binary Input
1 (read)
00, 01 (start-stop)
06 (no range, or all)
129 (response)
00, 01 (start-stop)
1
2
Binary Input with Status
1 (read)
00, 01 (start-stop)
06 (no range, or all)
129 (response)
00, 01 (start-stop)
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
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)
3
1 (default – see note 1)
Double Bit Input
1 (read)
00, 01 (start-stop)
06 (no range, or all)
129 (response)
00, 01 (start-stop)
3
2
Double Bit Input with Status
1 (read)
00, 01 (start-stop)
06 (no range, or all)
129 (response)
00, 01 (start-stop)
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)
10
1
Binary Output
1 (read)
00, 01 (start-stop)
06 (no range, or all)
129 (response)
00, 01 (start-stop)
1 (write)
00, 01 (start-stop)
10
2
Binary Output Status
1 (read)
00, 01 (start-stop)
06 (no range, or all
129 (response)
00, 01 (start-stop)
11
0
Binary Output Change – Any Variation
1 (read)
06 (no range, or all)
07, 08 (limited qty)
11
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
20
0
Binary Counter – Any Variation
1 (read)
00, 01 (start-stop)
06 (no range, or all)
7(freeze)
8(freeze noack)
9(freeze clear)
10 (frz. cl. noack))
00, 01 (start-stop)
06 (no range, or all)
20
1
32-Bit Binary Counter (with Flag)
1 (read)
00, 01 (start-stop)
06 (no range, or all
129 (response)
00, 01 (start-stop)
20
2
16-Bit Binary Counter (with Flag)
1 (read)
00, 01 (start-stop)
06 (no range, or all
129 (response)
00, 01 (start-stop)
20
5
32-Bit Binary Counter without Flag
1 (read)
00, 01 (start-stop)
06 (no range, or all
129 (response)
00, 01 (start-stop)
20
6
16-Bit Binary Counter without Flag
1 (read)
00, 01 (start-stop)
06 (no range, or all
129 (response)
00, 01 (start-stop)
21
0
Frozen Counter – Any Variation
1 (read)
00, 01 (start-stop)
06 (no range, or all)
21
1
32-Bit Frozen Counter (with Flag)
1 (read)
00, 01 (start-stop)
06 (no range, or all
129 (response)
00, 01 (start-stop)
21
2
16-Bit Frozen Counter (with Flag)
1 (read)
00, 01 (start-stop)
06 (no range, or all)
129 (response)
00, 01 (start-stop)
21
5
32-Bit Frozen Counter with Time Of Freeze
1 (read)
00, 01 (start-stop)
06 (no range, or all)
129 (response)
00, 01 (start-stop)
21
6
16-Bit Frozen Counter with Time Of Freeze
1 (read)
00, 01 (start-stop)
06 (no range, or all)
129 (response)
00, 01 (start-stop)
21
9
32-Bit Frozen Counter without Flag
1 (read)
00, 01 (start-stop)
06 (no range, or all
129 (response)
00, 01 (start-stop)
21
10
16-Bit Frozen Counter without Flag
1 (read)
00, 01 (start-stop)
06 (no range, or all
129 (response)
00, 01 (start-stop)
22
0
Counter Change Event – Any Variation
1 (read)
06 (no range, or all)
07, 08 (limited qty)
22
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
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)
30
1
32-Bit Analog Input
1 (read)
00, 01 (start-stop)
06 (no range, or all)
129 (response)
00, 01 (start-stop)
30
2
16-Bit Analog Input
1 (read)
00, 01 (start-stop)
06 (no range, or all)
129 (response)
00, 01 (start-stop)
30
3
32-Bit Analog Input without Flag
1 (read)
00, 01 (start-stop)
06 (no range, or all)
129 (response)
00, 01 (start-stop)
30
4
16-Bit Analog Input without Flag
1 (read)
00, 01 (start-stop)
06 (no range, or all)
129 (response)
00, 01 (start-stop)
30
5
short floating point
1 (read)
00, 01 (start-stop)
06 (no range, or all)
129 (response)
00, 01 (start-stop)
32
0
Analog Change Event – Any Variation
1 (read)
06 (no range, or all)
07, 08 (limited qty)
32
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 (Variation 0 is used to request default variation)
1 (read)
00, 01 (start-stop)
06 (no range, or all)
40
1
32-Bit Analog Output Status
1 (read)
00, 01 (start-stop)
06 (no range, or all)
129 (response)
00, 01 (start-stop)
40
2
16-Bit Analog Output Status
1 (read)
00, 01 (start-stop)
06 (no range, or all)
129 (response)
00, 01 (start-stop)
40
3
short floating point Analog Output Status
1 (read)
00, 01 (start-stop)
06 (no range, or all)
129 (response)
00, 01 (start-stop)
40
4
short floating point Analog Output Status
1 (read)
00, 01 (start-stop)
06 (no range, or all)
129 (response)
00, 01 (start-stop)
41
1
32-Bit Analog Output Block
3(select)
4(operate)
5(direct op)
6(dir. op, noack)
17, 28 (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)
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, 28 (index)
129 (response)
echo of request
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
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
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 (dsbl. unsol.)
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 (dsbl. unsol.)
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 (dsbl. unsol.)
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 2)
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.)
NOTE: (1) 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 be responded to with qualifiers 00 or 01. (For change-event objects, qualifiers 17 or 28 are always responded to.)
NOTE: (2) Writes of Internal Indications are only supported for indexes 4 and 7 (Restart and Need Time IIN).