12.3 DNP 3.0 Slave
Default group and variation sets are used to send static and event values. If master devices support different groups and variations, they can be adjusted in Excel configuration. WCC Lite-supported variations are provided in Static and Event variations and Command variations.
DNP3 Slave parameters for Devices tab
Parameter |
Type |
Description |
Required |
Default Value (when not specified) |
Range |
||
---|---|---|---|---|---|---|---|
TCP/ TLS |
RTU | Min | Max | ||||
name | string | User-friendly device name | Yes | Yes |
|
|
|
description | string | Description of a device | No | No |
|
|
|
device_alias | string | Alphanumeric string to identify a device | Yes | Yes | |||
enable | boolean | Enabling/disabling of a device | No | No | 1 | 0 | 1 |
protocol | string | Protocol to be used. | Yes | Yes |
dnp3 tcp slave dnp3 serial slave |
||
mode | string | Choosing between TCP, TLS and SERIAL modes. If the protocol is provided DNP3 TCP mode defaults to tcp and if DNP3 serial is provided mode defaults to SERIAL | No | No | TCP or SERIAL | TCP, SERIAL, TLS | |
host | string | The IP address of the TCP slave device | Yes | - | |||
bind_address | string | The IP address of the network adapter used to connect to the slave device | No | - | 0.0.0.0 | ||
port | integer | TCP communication port | No | - | 20000 | ||
device | string | Communication port (”PORT1” or ”PORT2”) | - | Yes | |||
baudrate | integer | Communication speed, bauds/s | - | No | 9600 | 300, 600, 1200, 2400, 4800, 9600, 19200, 38400, 57600,115200 | |
databits | integer | Data bit count for communication | - | No | 8 | 6 | 9 |
stopbits | integer | Stop bit count for communication | - | No | 1 | 1 | 2 |
parity | string | Communication parity option | - | No | none | none, even, odd | |
flowcontrol | string | Communication device flow control option. | - | No | none | none | |
tls | boolean | Enable/disable the use of TLS |
Yes (for TLS) |
- | 0 | 0 | 1 |
tls_local_certificate | string | Local certificate for TLS connection | Yes (for TLS) | - | |||
tls_peer_certificate | string | Certificate authority file for TLS connection | No (for TLS) |
- | |||
tls_private_key | string | A file consisting of the private key for TLS connection | No (for TLS) |
- | |||
max_tx_frag_size | integer | Maximum size of a received fragment. | No | No | 2048 | 0 | 2048 |
destination_address | integer | Address of a master station | No | No | 1 | 0 | 65535 |
source_address | integer | Address of a slave (local) station. | No | No | 1 | 0 | 65535 |
unsol_classes | string | Defines which classes will have unsolicited actions on startup. (Example: "1,3,2") | No | No | no class | 1 | 3 |
time_sync_interval_sec |
integer, string |
Periodic time sync interval in seconds. If 0 < - time syncs are forced and periodic. If = 0 - time syncs react to IIN bits from the slave. If < 0 - time syncs are disabled. |
No | No | 0 | 0 | |
select_ms | integer | Select command timeout. Valid for all signals. | No | No | 10000 | ||
timeout_ms | integer | Response timeout in milliseconds |
No |
No | 2000 | ||
keep_alive_timeout | integer | The time interval for sending a keep-alive packet in milliseconds. |
No | No | 60 |
DNP3 Slave parameters for Signals tab
Parameter |
Type |
Description |
Required |
Default Value (when not specified) |
Range |
||
---|---|---|---|---|---|---|---|
TCP | RTU | Min | Max | ||||
signal_name | string | User-friendly signal name | Yes | Yes |
|
|
|
device_alias | string | Device alias from a Devices tab | Yes | Yes | |||
signal_alias |
string
|
Unique alphanumeric name of the signal to be used | Yes | Yes | |||
enable | boolean | Enabling/disabling of a device | No | No | 1 | 0 | 1 |
index | integer | Index of a signal. | Yes | Yes | 0 | 65535 | |
log | boolean | Enable logging in the event log | No | No | 0 | 0 | |
deadband | integer, string | Deadband for Analog, Analog Output Status, Counter, and Frozen Counter signals. | No | No | 0 | ||
signal_type | string | DNP3 signal type. (case insensitive) |
Yes | Yes |
”binary”, ”doublebitbinary”, ”binaryoutputstatus”, ”binaryoutputcommand”, ”counter”, ”frozencounter”, ”analogoutputcommand”, ”timeandinterval”, |
||
command_variation | integer |
DNP3 command variation. Supported variations depend on signal type and are provided in the table below |
No | No | 1 | 0 | 4 |
static_variation | integer | Override default signal’s static variation. Valid for Status mode signals. | No | No | 0, 1, 2, 3, 4, 5, 6, 9, 10 | ||
event_variation | integer |
Override default signal’s event variation. Valid for Status mode signals. |
No |
No | 0 | 8 | |
control_code |
string
|
DNP3 control model code of CROB signal. TripClose and Pulse control model requires PulseOn/off times to be set. |
Yes | Yes | LATCH, PULSE, TRIPCLOSE | ||
pulse_on_time_ms | integer | Pulse ON time in milliseconds, when using Pulse or TripClose control models must be set. | Yes | Yes | |||
pulse_off_time_ms | integer | Pulse OFF time in milliseconds, when using Pulse or TripClose control models must be set. | Yes | Yes | |||
class_num | integer | Class assignment of this signal. | No | No | 0 | 0 | 3 |
operate_type | integer |
Default command behaviour. If selected: ”-1” - DirectOperateNoAck (FC=6), ”0” - DirectOperate (FC=5), "1" - SelectBeforeOperate (FC=3). |
No | No | 1 | -1 | 1 |
job_todo | string | The device status signal can be configured by providing one of the given values. |
No | No |
communication_status, |
Device status signals
To configure any device status signal for DNP3 protocol additional job_todo column is required. For DNP3 slave required parameters for status signal will be: signal_name, device_alias, signal_alias, index, signal_type, event_variation (1,2 or 3) and job_todo. There are 4 possible signals: communication_status, device_running, device_error, uknown_error. Each signal has 4 possible values and is based on the same logic. If the signal returns the value of 0, it means an unknown error has appeared, 1 – device or protocol connection is on and working properly, 2 – device is off or protocol is disconnected, 3 – error or service is down.
Command variations
Signal Type | Available Command Variation | Default Command Variation |
Binary Output Command (Group12) | 0, 1 | 1 |
Analog Output Command (Group41) | 0, 1, 2, 3, 4 | 1 |
Static and Event variations
Signal Type | Available Variations | Default Variations |
Binary | Static variation (Group1) 1, 2 Event variation (Group2) 1, 2, 3 |
Static variation 2 Event variation 1 |
Double Binary | Static variation (Group3) 2 Event variation (Group4) 1, 2, 3 |
Static variation 2 Event variation 1 |
Binary Output Status | Static variation (Group10) 2 Event variation (Group11) 1, 2 |
Static variation 2 Event variation 1 |
Counter | Static variation (Group20) 1, 2, 5, 6 Event variation (Group22) 1, 2, 5, 6 |
Static variation 1 Event variation 1 |
Frozen Counter | Static variations (Group21) 1, 2, 5, 6, 9,10 Event variation (Group23) 1, 2, 5, 6 |
Static variation 1 Event variation 1 |
Analog | Static variation (Group30) 1, 2, 3, 4, 5, 6 Event variation (Group32) 1, 2, 3, 4, 5, 6, 7, 8 |
Static variation 1 Event variation 1 |
Analog Output Status | Static variation (Group40) 1, 2, 3, 4 Event variation (Group42) 1, 2, 3, 4, 5, 6, 7, 8 |
Static variation 1 Event variation 1 |
Time and Interval | Static variation (Group50) 1 | Static variation 1 |
Octet String | Static variation (Group110) 0 Event variation (Group111) 0 |
Static variation 0 Event variation 0 |
Debugging the DNP3 Slave service
If the configuration for DNP3 devices is set up, a handler for the protocol will start automatically. If the configuration is missing or contains errors, the protocol will not start. It is done intentionally to decrease unnecessary memory usage.
DNP3 protocol runs a service called dnp3-slave. If DNP3 does not work properly (e.g. no communication between devices, data is corrupted, etc.), a user can launch a debug session from the command line interface and find out why the link is not functioning properly. To launch a debugging session, a user should stop the dnp3-slave process and run the dnp3-slave command with respective flags as in the table given below.
Procedure for DNP3 Master protocol service debugging:
- Step 1: Service must be stopped by entering the following command into the wcclite:
/etc/init.d/dnp3-slave stop - Step 2: After the service is stopped it must be started with the preferred configuration file (JSON files found in the /etc/ folder) and a debug level 7: dnp3-slave -c /etc/dnp3-slave/dnp3slave.json -d7 Additional output forming options described in the table below.
- Step 3: Once the problem is diagnosed normal operations can be resumed with the following command: /etc/init.d/dnp3-slave start
dnp3-slave command line debugging options
Option | Description |
-h [ –help ] | Display help information |
-V [ –version ] | Show version |
-p [ –port ] | Show output for one port only |
-d <debug level> | Set debugging level |
-c [ –config ] | Config path |
-a [ –app ] | Show application layer data |
–l [ –link ] | Show link layer data |
–t [ –transport ] | Show transport layer data |
-r [ –redis ] | Show Redis messages |
-R [ –readyfile ] | Ready notification file |