DNP3 object types supported
Please refer to the document, VTS-DNP3-DeviceProfile.pdf, which may be found in the Examples folder of your VTScada installation.
Object Description |
Object Type |
Object Variation |
Read |
Write |
---|---|---|---|---|
Single bit binary input all variations |
1 |
0 |
✓ |
|
Single bit binary input |
1 |
1 |
✓ |
|
Single bit binary input with status |
1 |
2 |
✓ |
|
Single bit binary input event all variations |
2 |
0 |
✓ |
|
Single bit binary input event without time |
2 |
1 |
✓ |
|
Single bit binary input event with time |
2 |
2 |
✓ |
|
Single bit binary input event with relative time |
2 |
3 |
✓ |
|
Single bit binary output all variations |
10 |
0 |
✓ |
|
Single bit binary output status |
10 |
2 |
✓ |
|
Control relay output block |
12 |
1 |
|
✓ |
Binary counter all variations |
20 |
0 |
✓ |
|
32 bit binary counter |
20 |
1 |
✓ |
|
16 bit binary counter |
20 |
2 |
✓ |
|
32 bit delta counter |
20 |
3 |
✓ |
|
16 bit delta counter |
20 |
4 |
✓ |
|
32 bit binary counter without status |
20 |
5 |
✓ |
|
16 bit binary counter without status |
20 |
6 |
✓ |
|
32 bit delta counter without status |
20 |
7 |
✓ |
|
16 bit delta counter without status |
20 |
8 |
✓ |
|
Frozen binary counter all variations |
21 |
0 |
✓ |
|
Frozen 32 bit binary counter with status |
21 |
1 |
✓ |
|
Frozen 16 bit binary counter with status |
21 |
2 |
✓ |
|
Frozen 32 bit delta counter with status |
21 |
3 |
✓ |
|
Frozen 16 bit delta counter with status |
21 |
4 |
✓ |
|
Frozen 32 bit binary counter with time |
21 |
5 |
✓ |
|
Frozen 16 bit binary counter with time |
21 |
6 |
✓ |
|
Frozen 32 bit delta counter with time |
21 |
7 |
✓ |
|
Frozen 16 bit delta counter with time |
21 |
8 |
✓ |
|
Frozen 32 bit binary counter no status |
21 |
9 |
✓ |
|
Frozen 16 bit binary counter no status |
21 |
10 |
✓ |
|
Frozen 32 bit delta counter no status |
21 |
11 |
✓ |
|
Frozen 16 bit delta counter no status |
21 |
12 |
✓ |
|
Binary counter event all variations |
22 |
0 |
✓ |
|
32 bit binary counter event without time |
22 |
1 |
✓ |
|
16 bit binary counter event without time |
22 |
2 |
✓ |
|
32 bit delta counter event without time |
22 |
3 |
✓ |
|
16 bit delta counter event without time |
22 |
4 |
✓ |
|
32 bit binary counter event with time |
22 |
5 |
✓ |
|
16 bit binary counter event with time |
22 |
6 |
✓ |
|
32 bit delta counter event with time |
22 |
7 |
✓ |
|
16 bit delta counter event with time |
22 |
8 |
✓ |
|
Frozen binary counter event all variations |
23 |
0 |
✓ |
|
Frozen 32 bit binary counter event without time |
23 |
1 |
✓ |
|
Frozen 16 bit binary counter event without time |
23 |
2 |
✓ |
|
Frozen 32 bit delta counter event without time |
23 |
3 |
✓ |
|
Frozen 16 bit delta counter event without time |
23 |
4 |
✓ |
|
Frozen 32 bit binary counter event with time |
23 |
5 |
✓ |
|
Frozen 16 bit binary counter event with time |
23 |
6 |
✓ |
|
Frozen 32 bit delta counter event with time |
23 |
7 |
✓ |
|
Frozen 16 bit delta counter event with time |
23 |
8 |
✓ |
|
Analog input all variations |
30 |
0 |
✓ |
|
32 bit Analog input |
30 |
1 |
✓ |
|
16 bit Analog input |
30 |
2 |
✓ |
|
32 bit Analog input without status |
30 |
3 |
✓ |
|
16 bit Analog input without status |
30 |
4 |
✓ |
|
Float Analog input without status |
30 |
5 |
✓ |
|
Double Analog input without status |
30 |
6 |
✓ |
|
Analog input event all variations |
32 |
0 |
✓ |
|
32 bit Analog input event without time |
32 |
1 |
✓ |
|
16 bit Analog input event without time |
32 |
2 |
✓ |
|
32 bit Analog input event with time |
32 |
3 |
✓ |
|
16 bit Analog input event with time |
32 |
4 |
✓ |
|
Float Analog input event without time |
32 |
5 |
✓ |
|
Double Analog input event without time |
32 |
6 |
✓ |
|
Float Analog input event with time |
32 |
7 |
✓ |
|
Double Analog input event with time |
32 |
8 |
✓ |
|
Analog output all variations |
40 |
0 |
✓ |
|
32 bit Analog output status |
40 |
1 |
✓ |
|
16 bit Analog output status |
40 |
2 |
✓ |
|
32 bit Analog output control block |
41 |
1 |
|
✓ |
16 bit Analog output control block |
41 |
2 |
|
✓ |
Time and Date |
50 |
1 |
✓ |
✓ |
Common Time Object |
51 |
1 |
✓ |
|
Common Time Object - unsynchronized |
51 |
2 |
✓ |
|
Time delay coarse |
52 |
1 |
✓ |
|
Time delay fine |
52 |
2 |
✓ |
|
Class 0 Event data |
60 |
1 |
✓ |
|
Class 1 Event data |
60 |
2 |
✓ |
|
Class 2 Event data |
60 |
3 |
✓ |
|
Class 3 Event data |
60 |
4 |
✓ |
|
File Identifier (older systems) |
70 |
1 |
✓ |
✓ |
File Identifier (preferred object for newer systems) |
70 |
5 |
✓ |
|
Internal Indications object |
80 |
1 |
|
✓ |
Octet String |
110 |
* |
✓ |
✓ |
Octet Change Object* |
111 |
* |
✓ |
*Event\change objects would not normally be configured as I/O addresses. They are listed to indicate that processing support is provided them. Upon receiving an event\change object, the value of the corresponding static object will be updated. For example, if 110/255/6 is configured and an event is received for 111/13/6, then the tag reading the first address will be updated with the value from the event\change as they share the same index.
Static\event object pairs that obey this rule include:
- g1 Binary Input and g2 Binary Input change
- g10 Binary Output and g11 Binary Output change
- g20 Counter and g22 Counter change
- g21 Frozen Counter and g23 Frozen Counter change
- g30 Analog Input and g32 Analog Input change
- g40 Analog Output and g42 Analog Output change
- g110 Octet Strings and g111 Octet String change
The data values returned for the objects that may be read:
Object Description |
Return Value |
Single bit binary input |
0 or 1. |
Single bit binary input with status |
If status is OK, 0 or 1, else invalid. |
Single bit binary input event without time |
If status is OK, 0 or 1, else invalid. Refer to the note following this table. |
Single bit binary input event with time |
If status is OK, 0 or 1, else invalid. Refer to the note following this table. |
Single bit binary output status |
If status is OK, 0 or 1, else invalid. |
32 bit binary counter |
If status is OK, 32 bit unsigned integer, else invalid. |
16 bit binary counter |
If status is OK, 16 bit unsigned integer, else invalid. |
32 bit delta counter |
If status is OK, 32 bit unsigned integer, else invalid. |
16 bit delta counter |
If status is OK, 16 bit unsigned integer, else invalid. |
32 bit binary counter without status |
32 bit unsigned integer. |
16 bit binary counter without status |
16 bit unsigned integer. |
32 bit delta counter without status |
32 bit unsigned integer. |
16 bit delta counter without status |
16 bit unsigned integer. |
32 bit binary counter event without time |
If status is OK, 32 bit unsigned integer, else invalid. Refer to the note following this table. |
16 bit binary counter event without time |
If status is OK, 16 bit unsigned integer, else invalid. Refer to the note following this table. |
32 bit delta counter event without time |
If status is OK, 32 bit unsigned integer, else invalid. Refer to the note following this table. |
16 bit delta counter event without time |
If status is OK, 16 bit unsigned integer, else invalid. Refer to the note following this table. |
32 bit binary counter event with time |
If status is OK, 32 bit unsigned integer, else invalid. Refer to the note following this table. |
16 bit binary counter event with time |
If status is OK, 16 bit unsigned integer, else invalid. Refer to the note following this table. |
32 bit delta counter event with time |
If status is OK, 32 bit unsigned integer, else invalid. Refer to the note following this table. |
16 bit delta counter event with time |
If status is OK, 16 bit unsigned integer, else invalid. Refer to the note following this table.. |
32 bit Analog input |
If status is OK, 32 bit signed integer, else invalid. |
16 bit Analog input |
If status is OK, 16 bit signed integer, else invalid. |
32 bit Analog input without status |
32 bit signed integer. |
16 bit Analog input without status |
16 bit signed integer. |
32 bit Analog input event with time |
If status is OK, 32 bit signed integer, else invalid. Refer to the note following this table. |
16 bit Analog input event with time |
If status is OK, 16 bit signed integer, else invalid. Refer to the note following this table. |
32 bit Analog input event without time |
If status is OK, 32 bit signed integer, else invalid. Refer to the note following this table. |
16 bit Analog input event without time |
If status is OK, 16 bit signed integer, else invalid. Refer to the note following this table. |
32 bit Analog output status |
If status is OK, 32 bit signed integer, else invalid. |
16 bit Analog output status |
If status is OK, 16 bit signed integer, else invalid. |
Time and Date |
The current date and time in the outstation as a floating-point number representing the number of milliseconds since Jan 1 1970. |
File Identifier |
A buffer containing the records requested, or an individual value of the specified type from the specified offset in a specified record. |
Octet String |
A buffer containing the string. |
For events, the return value is an array of five elements:
Index |
Element |
0 |
The address of the point in the form Object/Variation/Address. |
1 |
Value, after correction for any status flags. If the status is on-line, not restart and not communication lost, the value will be as reported in the event. Otherwise, the value will be invalid. |
2 |
The timestamp of the event. |
3 |
The actual value before correction for status flags |
4 |
The status flags. |
For those events that return a time, the time will be as recorded in the device. For those events that do not return a time, the time will be the local time when the driver received the message.
Time values are returned as a double, representing the time as the number of milliseconds since midnight, on 1/1/1970.
The data values that may be supplied for output objects:
Object Description |
Data Value |
Control relay output block |
32 bit signed integer. If > 0, then action will be a latch on, close or raise. The time for the raise will be the value supplied in units of milliseconds. If =< 0, then action will be a latch off, open or lower. The time for the lower will be the absolute value supplied in units of milliseconds. The Latch flag, if TRUE, will cause the output to be a latch type. |
32 bit Analog output control block |
32 bit signed integer. |
16 bit Analog output control block |
16 bit signed integer. |
Time and Date |
The data value is ignored. The current date and time of the VTScada system will be sent to the outstation. |
File Identifier |
A buffer containing the records to be written. |
Internal Indications |
16 bit unsigned integer. Note that only certain values are allowed and will be detailed in the remote device's profile. |
Note to VTScada programmers who are using the DNP3 driver in their code:
The following flags are available in the VTScada layer of the driver and will be updated by every response from the remote station:
Flag |
Meaning |
IINTimeSync |
TRUE when Time sync is required by the Outstation. |
IINLocalDO |
TRUE when some DO's in the Outstation are in local control. |
IINTrouble |
TRUE when an abnormal condition exists in the Outstation. |
IINRestart |
TRUE when an Outstation restart has occurred. |
IINEventOverflow |
TRUE when Outstation event buffers have overflowed. |
IINConfigCorrupt |
TRUE when Outstation configuration is corrupt. |
(Characteristics available in the Table of Type Characteristics.)