# 14 IEC 60870-5-10X # 14.1 Introduction **IEC 60870 part 5** is one of the [IEC 60870](https://en.wikipedia.org/wiki/IEC_60870 "IEC 60870") set of standards which define systems used for telecontrol ([supervisory control and data acquisition](https://en.wikipedia.org/wiki/Supervisory_control_and_data_acquisition "Supervisory control and data acquisition")) in [electrical engineering](https://en.wikipedia.org/wiki/Electrical_engineering "Electrical engineering") and [power system automation](https://en.wikipedia.org/wiki/Power_system_automation "Power system automation") applications. Part 5 provides a communication profile for sending basic telecontrol messages between two systems, which uses permanent directly connected data circuits between the systems. The [IEC Technical Committee 57](https://en.wikipedia.org/wiki/IEC_TC_57 "IEC TC 57") (Working Group 03) has developed a [protocol](https://en.wikipedia.org/wiki/Communications_protocol "Communications protocol") standard for telecontrol, teleprotection, and associated telecommunications for [electric power](https://en.wikipedia.org/wiki/Electric_power "Electric power") systems. The result of this work is IEC 60870-5. Five documents specify the base IEC 60870-5: - IEC 60870-5-1 Transmission Frame Formats - IEC 60870-5-2 Data Link Transmission Services - IEC 60870-5-3 General Structure of Application Data - IEC 60870-5-4 Definition and Coding of Information Elements - IEC 60870-5-5 Basic Application Functions - IEC 60870-5-6 Guidelines for conformance testing for the IEC 60870-5 companion standards - IEC TS 60870-5-7 Security extensions to IEC 60870-5-101 and IEC 60870-5-104 protocols (applying IEC 62351) The IEC Technical Committee 57 has also generated companion standards: - IEC 60870-5-101 Transmission Protocols - companion standards especially for basic telecontrol tasks - IEC 60870-5-102 Transmission Protocols - Companion standard for the transmission of integrated totals in electric power systems (this standard is not widely used) - IEC 60870-5-103 Transmission Protocols - Companion standard for the informative interface of protection equipment - IEC 60870-5-104 Transmission Protocols - Network access for IEC 60870-5-101 using standard transport profiles - IEC TS 60870-5-601 Transmission protocols - Conformance test cases for the IEC 60870-5-101 companion standard - IEC TS 60870-5-604 Conformance test cases for the IEC 60870-5-104 companion standard IEC 60870-5-101/102/103/104 are companion standards generated for basic telecontrol tasks, transmission of integrated totals, data exchange from protection equipment & network access of IEC101 respectively. Source: [https://en.wikipedia.org/wiki/IEC\_60870-5](https://en.wikipedia.org/wiki/IEC_60870-5 "Wikipedia") # 14.2 IEC 60870-5-101 Master The IEC 60870-­5-­101 protocol is a companion standard for power system monitoring, control associated communications for telecontrol, teleprotection and associated telecommunications for electric power systems. Standard IEC 60870-­5­-101 was prepared by IEC technical committee 57 (Power system control and associated communications). Standard IEC 60870-­5-­101 defines an **Application Service Data Unit** (**ASDU** Figure below). In ASDU there is an ASDU identifier (with the type of ASDU in it) and information objects.![image-1638258623652.png](https://wiki.elseta.com/uploads/images/gallery/2021-11/scaled-1680-/image-1638258623652.png) IEC 60870­-5-­101 ASDU structure **Common Address of ASDU** Defines the stations' address and can be configured in Devices asdu\_address field for source and *Signals* common\_address field for the destination. **Information Object Address** Used as destination object address in the control direction and as source object address in monitor direction can be configured in Signals info\_address field. Standard IEC 60870­-5­-101 transmission frames are separated into 3 different types: **frame with variable length**, **frame with fixed length,** and **single control characters** [![image-1638259001158.png](https://wiki.elseta.com/uploads/images/gallery/2021-11/scaled-1680-/image-1638259001158.png)](https://wiki.elseta.com/uploads/images/gallery/2021-11/image-1638259001158.png) IEC 60870­-5-­101 ASDU structure **Control field** provides information about the message direction, type of service, and checksum. **Address field** specifies the link address which points to the message's destination. WCC Lite supports IEC 60870-­5-­101 Master protocol over a serial link (according to EIA RS­485). Its full functionality list can be found in an [IEC 60870­-5-­101 PID Interoperability List](https://wiki.elseta.com/link/180#bkmrk-pid%27s) which can be downloaded separately from this user manual. ### Configuring datapoints (master) To use IEC 60870-­5-­101 Master in WCC Lite, it has to be configured via an Excel configuration. This configuration contains two Excel sheets where parameters have to be filled in ­Devices and Signals. ##### IEC 60870-­5-­101 master parameters for *Devices* tab
**Parameter** **Type** **Description** **Required **Default value** (when not specified) **Range**
Min Max
name stringUser-friendly name for a device Yes
description stringDescription of a device No
device\_alias stringAlphanumeric string to identify a device Yes
enablebooleanEnabling/disabling of a device No101
protocolstringProtocol to be used Yes IEC 60870­-5-101 master
devicestring Communication port Yes PORT1 PORT2
baudrateintegerCommunication speed (bauds/s) No 9600 300, 600, 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200
databitsintegerData bit count for communication No 8 6 9
stopbitsintegerStop bit count for communication No 1 1 2
paritystring Communication parity option No none none, even, odd
flowcontrolstring Number of requests, before link is considered lost (device status signals are changed) and reconnect attempt will be issued No none none
link\_addressintegerDestination address when in transmit and source address when broadcastingYes 065535
link\_sizeintegerLink address size in bytesNo112
asdu\_addressintegerApplication Service Data Unit addressYes 065535
asdu\_sizeintegerCommon address size in bytesNo112
ioa\_sizeintegerInformation object address (IOA) size in bytesNo213
cot\_sizeintegerCause of transmission (COT) size in bytesNo112
time\_sync\_interval\_secintegerDefines how often (in seconds) slave will request time synchronization. **If greater than 0** ­slave will request synchronizations, will reset the timer if the master did it earlier. **If 0** slave won’t request timesyncs, but will allow them. **If ­1** ­ timesyncs are not supported ­ requests will be dropped.No60
gi\_interval\_secintegerTime frame between General Interrogation requests in seconds, if 0 requests are disabledNo300
scan\_rate\_msintegerPolling interval in milliseconds. Time frame between two telegrams from master Yes100
timeout\_msintegerResponse timeout in milliseconds Yes 1000
retry\_countintegerNumber of retries of failed requests before announcing that device is in Error state Yes1
##### IEC 60870­-5-­101 master parameters for Signals tab
**Parameter** **Type** **Description** **Required **Default value** (when not specified) **Range**
Min Max
signal\_name stringUser-friendly signal name Yes
device\_alias stringAlphanumeric string to identify a device Yes
signal\_alias stringUnique alphanumeric name of the signal to be used Yes
source\_device\_alias stringdevice\_alias of a source device For commands
source\_signal\_alias stringsignal\_alias of a source signal For commands
enablebooleanEnabling/disabling of an individual signal No101
log integerAllow signal to be logged. If **log is 0 signal** will not be logged. If **log is more than 0** signal will be logged No0
gibooleanIncluding/excluding (1 or 0) signal from General InterrogationNo001
common\_addressintegerAddress of a destination deviceYes1
info\_addressintegerInformation object addressYes
data\_typeintegerASDU type identifier Yes
1, 2, 3, 4, 5, 6, 9, 10, 11, 12, 13, 14, 30, 31, 32, 34, 35, 36, 45, 46, 47, 48, 49, 50
##### Device status signals IEC 60870-­5-­101 has an additional signal which can be configured to show communication status. It is used to indicate if the slave device has disconnected from master (WCC Lite). To configure such signal for IEC 60870-­5-­101 protocol, job\_todo and tag\_job\_todo fields with string values are required. For IEC 60870-­5-­101 master required parameters for status signal will be: **signal\_name** **device\_alias, signal\_alias, common\_address, info\_address, data\_type, job\_todo** and **tag\_job\_todo**. Job\_todo value must be *device\_status* and for tag\_job\_todo there are 4 variations: communication\_status, device\_running, device\_error, uknown\_error. Each signal has 4 possible values and are based on the same logic. If signal returns value of 0, it means 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. ### Debugging a IEC 60870-­5­-101 Master application If configuration for IEC 60870-­5-­101 devices is set up, handler for protocol will start automatically. If the configuration is missing parameters or contains errors, protocol will not start. It is done intentionally decrease unnecessary memory usage. If IEC 60870-­5-­101 does not work properly (e.g. no communication between devices, data is corrupted, etc.), a user can launch a debug session from command line interface and find out why link is not functioning properly. To launch a debugging session, a user should stop *iec101­-master* process and run *iec101-­master* command with respective flags as shown in the table below. Procedure for IEC 60870-­5-­101 master service debugging: - **Step 1**: Service must be stopped by entering the following command into the WCC Lite: **/etc/init.d/iec101-­master stop** - **Step 2**: After service is stopped it must be started with the preferred configuration file (JSON files found in /etc/ folder) and a debug level 7: **iec101-­master -­c /etc/iec101-master/iec101­master.json ­-d7** Additional output forming options described here: Command line arguments. - **Step 3**: Once the problem is diagnosed normal operations can be resumed with the following command: **/etc/init.d/iec101-­master start** ##### IEC 60870-­5­-101 command line debugging options ``` -h [ –help ] Display help information -V [ –version ] Show version -d Set debugging level -c [ –config ] Config path -r [ –raw ] Show raw telegram data -f [ –frame ] Show frame data -R [ –readyfile ] Ready notification file ``` # 14.3 IEC 60870-5-101 Slave ### Configuring datapoints (slave) To use IEC 60870­-5­-101 Slave in WCC Lite, it has to be configured via an Excel configuration. This configuration contains two Excel sheets where parameters have to be filled in *­Devices* and *Signals.* ##### *IEC 60870-­5-­101 slave parameters for Devices tab*
**Parameter** **Type** **Description** **Required **Default value** (when not specified) **Range**
Min Max
name stringUser-friendly name for a device Yes
description stringDescription of a device No
device\_alias stringAlphanumeric string to identify a device Yes
enablebooleanEnabling/disabling of a device No101
protocolstringProtocol to be used Yes IEC 60870­-5-101 slave
devicestring Communication port Yes PORT1 PORT2
baudrateintegerCommunication speed (bauds/s) No 9600 300, 600, 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200
databitsintegerData bit count for communication No 8 6 9
stopbitsintegerStop bit count for communication No 1 1 2
paritystring Communication parity option No none none, even, odd
flowcontrolstring Number of requests, before link is considered lost (device status signals are changed) and reconnect attempt will be issued No none none
link\_addressintegerDestination address when in transmit and source address when broadcastingYes 065535
link\_sizeintegerLink address size in bytesNo112
asdu\_sizeintegerCommon address size in bytesNo112
ioa\_sizeintegerInformation object address (IOA) size in bytesNo213
cot\_sizeintegerCause of transmission (COT) size in bytesNo112
time\_syncbooleanAllow time synchronization, 1 to enable and 0 to disableNo001
message\_sizeintegerMaximum length of a messageYes2530255
cache\_sizeintegerMaximum number of events to store in a bufferNo10001000
respond\_delayintegerTime in microseconds to wait before sending responsesYes10001000000
single\_byte\_ackbooleanUse single character acknowledge, 1 to enable and 0 to disableNo 001
keep\_alive\_timeoutintegerTime interval in seconds before serial connection is considered offlineNo 60
**keep\_alive\_timeout** timer is used for connection tracker to display protocol status. This parameter has no effect on protocol functionality and is only used to track it’s status in connection tracker. ##### IEC 60870­-5-­101 slave parameters for Signals tab
**Parameter** **Type** **Description** **Required **Default value** (when not specified) **Range**
Min Max
signal\_name stringUser-friendly signal name Yes
device\_alias stringAlphanumeric string to identify a device Yes
signal\_alias stringUnique alphanumeric name of the signal to be Yes used Yes
source\_device\_alias stringdevice\_alias of a source device For commands
source\_signal\_alias stringsignal\_alias of a source signal For commands
enablebooleanEnabling/disabling of an individual signal No101
log integerAllow signal to be logged. If **log is 0 signal** will not be logged. If **log is more than 0** signal will be logged No0
gibooleanIncluding/excluding (1 or 0) signal from General InterrogationNo001
common\_addressintegerAddress of a destination deviceYes
info\_addressintegerInformation object addressYes
data\_typeintegerASDU type identifierYes
1, 2, 3, 4, 5, 6, 9, 10, 11, 12, 13, 14, 30, 31, 32, 34, 35, 36, 45, 46, 47, 48, 49, 50, 58, 59, 60, 61, 62, 63
##### Device status signals
IEC 60870-­5-­101 has an additional signal which can be configured to show communication status. It is used to indicate if the master device has disconnected from slave (WCC Lite). To configure such signal for IEC 60870-­5-­101 protocol, job\_todo and tag\_job\_todo fields with string values are required. For IEC 60870-­5-­101 slave required parameters for status signal will be: **signal\_name** **device\_alias, signal\_alias, common\_address, info\_address, data\_type, job\_todo** and **tag\_job\_todo**. Job\_todo value must be *device\_status* and for tag\_job\_todo there are 4 variations: communication\_status, device\_running, device\_error, uknown\_error. Each signal has 4 possible values and are based on the same logic. If signal returns value of 0, it means 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. ### Debugging an IEC 60870-­5­-101 slave application If the configuration for IEC 60870-­5-­101 devices is set up, the handler for the protocol will start automatically. If the configuration is missing parameters or contains errors, the protocol will not start. It is done intentionally to decrease unnecessary memory usage. If IEC 60870-­5-­101 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 *iec101­-slave* process and run the *iec101-­slave* command with respective flags as shown in the table below. Procedure for IEC 60870-­5-­101 slave service debugging: - **Step 1**: Service must be stopped by entering the following command into the WCC Lite: **/etc/init.d/iec101-­slave stop** - **Step 2**: After service is stopped it must be started with the preferred configuration file (JSON files found in /etc/ folder) and a debug level 7: **iec101-­slave-­c /etc/iec101-slave/iec101slave.json ­-d7** Additional output forming options described here: Command line arguments. - **Step 3**: Once the problem is diagnosed normal operations can be resumed with the following command: **/etc/init.d/iec101-­slave start** ##### IEC 60870-­5­-101 command line debugging options ``` -h [ –help ] Display help information -V [ –version ] Show version -d Set debugging level -c [ –config ] Config path -r [ –raw ] Show raw telegram data -f [ –frame ] Show frame data -R [ –readyfile ] Ready notification file ``` # 14.4 IEC 60870-5-103 Master The IEC 60870-5-103 protocol is a companion standard for the informative interface of protection equipment. Standard IEC 60870-5-103 was prepared by IEC technical committee 57 (Power system control and associated communications). It is a companion standard for the basic standards in series IEC 60870-5: Standard IEC 60870-5-103 defines communication between protection equipment and devices of a control system (supervisor or RTU) in a substation. Standard IEC 60870-5-103 defines a multipoint communication protocol via which information can be exchanged between a control system (supervisor or RTU) and one or more protection devices. The control system is the master and the protection devices are the slaves. Each slave is identified by a unique address between 1 and 254. Address 255 is reserved for broadcast frames. ### IEC 60870-5-103 Master ### Configuring datapoints WCC Lite supports IEC 60870-5-103 Master protocol over a serial link (according to EIA RS-485). Its full functionality list can be found in an [IEC 60870-5-103 PID Interoperability List](https://wiki.elseta.com/link/180#bkmrk-pid%27s). To use IEC 60870-5-103 Master in WCC Lite, it has to be configured via an Excel configuration. This configuration contains two Excel sheets where parameters have to be filled in - Devices and Signals. ##### IEC 60870-­5-­103 parameters for Devices tab
**Parameter** **Type** **Description** **Required **Default value** (when not specified) **Range**
Min Max
name stringUser-friendly name for a device Yes
description stringDescription of a device No
device\_alias stringAlphanumeric string to identify a device Yes
enablebooleanEnabling/disabling of a device No101
protocolstringProtocol to be used Yes IEC 60870­-5-103 master
devicestring Communication port Yes PORT1 PORT2
baudrateintegerCommunication speed (bauds/s) No 9600 600, 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200
databitsintegerData bit count for communication No 8 8
stopbitsintegerStop bit count for communication No 1 1 2
paritystring Communication parity option No none none, even, odd
flowcontrolstring Number of requests, before link is considered lost (device status signals are changed) and reconnect attempt will be issued No none none
link\_addressintegerDestination address when in transmit and source address when broadcastingYes 065535
asdu\_addressintegerApplication Service Data Unit addressYes 065535
time\_sync\_interval\_secintegerTime frame between Time Synchronization requests in secondsNo60
gi\_interval\_secintegerTime frame between General Interrogation requests in seconds, if 0 requests are disabledYes300
scan\_rate\_msintegerPolling interval in milliseconds. Time frame between two telegrams from master No100
timeout\_msintegerResponse timeout in milliseconds No 1000
serial\_delayintegerCommunication device’s serial delay in milliseconds. Time frame in which master station is not TX’ing after last RX byteNo50
retry\_countintegerNumber of retries of failed requests before announcing that device is in Error state No3
retry\_delay\_msintegerTime before the next retry in millisecondsNo500
##### IEC 60870­-5-­103 master parameters for Signals tab
**Parameter** **Type** **Description** **Required **Default value** (when not specified) **Range**
Min Max
signal\_name stringUser-friendly signal name Yes
device\_alias stringAlphanumeric string to identify a device Yes
signal\_alias stringUnique alphanumeric name of the signal to be Yes used Yes
source\_device\_alias stringdevice\_alias of a source device For commands
source\_signal\_alias stringsignal\_alias of a source signal For commands
enablebooleanEnabling/disabling of an individual signal No101
log integerAllow signal to be logged. If **log is 0 signal** will not be logged. If **log is more than 0** signal will be logged No0
gibooleanIncluding/excluding (1 or 0) signal from General InterrogationNo001
common\_addressintegerAddress of a destination deviceYes
functionintegerFunction numberNo0
info\_addressintegerInformation object addressYes
info\_numberintegerInformation numberYes
data\_typeintegerASDU type identifierNo0
0, 1, 2, 3, 4, 9, 20
fleetingbooleanMark signal as fleeting type (1 or 0). Fleeting signals have go to DPI::OFF after defined timeNo 01
normalise\_time\_msintegerTime in milliseconds between station receiving DPI::ON and automatically switching to DPI::OFFIf fleeting is used 100
##### Device status signals
IEC 60870-­5-­103 has an additional signal which can be configured to show communication status. It is used to indicate if the slave device has disconnected from master (WCC Lite). To configure such signal for IEC 60870-­5-­103 protocol, job\_todo and tag\_job\_todo fields with string values are required. For IEC 60870-­5-­103 master required parameters for status signal will be: **signal\_name** **device\_alias, signal\_alias, common\_address, info\_address, info\_number, job\_todo** and **tag\_job\_todo**. Job\_todo value must be *device\_status* and for tag\_job\_todo there are 4 variations: communication\_status, device\_running, device\_error, uknown\_error. Each signal has 4 possible values and are based on the same logic. If signal returns value of 0, it means 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. ### Debugging an IEC 60870-5-103 Master application If the configuration for IEC 60870-5-103 devices is set up, the handler for the protocol will start automatically. If a configuration is missing parameters or contains errors, the protocol will not start. It is done intentionally to decrease unnecessary memory usage. If IEC 60870-5-103 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 or use WCC Utility to do that. To launch a debugging session, a user should stop the iec103-master process and run the iec103-master command with respective flags. - Step 1: Service must be stopped by entering the following command into the WCC Lite: **/etc/init.d/iec103-­master stop** - Step 2: After service is stopped it must be started with the preferred configuration file (JSON files found in /etc/ folder) and a debug level 7: **iec103-­master ­-c /etc/iec103-master/iec103-­master.json -­d7** - Step 3: Once the problem is diagnosed normal operations can be resumed with the following command: **/etc/init.d/iec103-­master start** ##### IEC 60870-­5­-103 command line debugging options ``` -h [ –help ] Display help information -V [ –version ] Show version -d Set debugging level -c [ –config ] Config path -r [ –raw ] Show raw telegram data -f [ –frame ] Show frame data -R [ –readyfile ] Ready notification file ``` # 14.5 IEC 60870-5-104 Master IEC 60870-5-104 protocol (in short IEC 104) is a part of IEC Telecontrol Equipment and Systems Standard IEC 60870-5 that provides a communication profile for sending basic telecontrol messages between two systems in electrical engineering and power system automation. Telecontrol means transmitting supervisory data and data acquisition requests for controlling power transmission grids. IEC 104 provides network access to IEC 60870-5-101 (in short IEC 101) using standard transport profiles. In simple terms, it delivers IEC 101 messages as application data (L7) over TCP, usually port 2404. IEC 104 enables the communication between the control station and a substation via a standard TCP/IP network. The communication is based on the client-server model.

To set up TLS connection for both IEC104 Master and Slave, refer to sections Excel configuration and Certificates. All keys and certificates should be provided in the PEM format.

If no configuration is set up, IEC104 Master and Slave services are not started.

#### Configuring IEC 104 Master datapoints To use IEC 60870-­5-­104 Master in WCC Lite, it has to be configured via an Excel configuration. This configuration contains two Excel sheets where parameters have to be filled in ­ Devices and Signals. ##### IEC 60870­-5-­104 Master parameters for *Devices* tab
**Parameter** **Type** **Description** **Required **Default value** (when not specified) **Range**
Min Max
name stringUser-friendly name for a device Yes
description stringDescription of a device No
device\_alias stringAlphanumeric string to identify a device Yes
enablebooleanEnabling/disabling of a device No101
protocolstringProtocol to be used Yes IEC 60870­-5-104 master
asdu\_addressintegerApplication Service Data Unit addressYes 065535
asdu\_sizeintegerCommon address size in bytesNo212
time\_sync\_interval\_secintegerTime frame between Time Synchronization requests in secondsYes60
gi\_interval\_secintegerTime frame between General Interrogation requests in seconds. If 0 requests are disabled Yes300
portintegerTCP portYes 065535
ioa\_sizeintegerInformation object address (IOA) size in bytesNo313
swtintegerSend window (k)Yes
rwtintegerReceive window (w)Yes
cot\_sizeintegerCause of transmission (COT) size in bytesNo213
ipstringHost IP address (ipv4)Yes
t1\* integerAcknowledge timeout t1 (sec)Yes151255
t2\*integerConnection ACKRSN clock t2 (sec)Yes101254
t3\*integerConnection TESTFR clock t3 (sec)Yes201
172800
originatorintegerProvides a means for a controlling station to explicitly identify itselfNo00255
\* - t1, t2 and t3 parameters must meet the inequality: t2<t1<t3. ##### IEC 60870­-5-­104 Master parameters for *Signals*
**Parameter** **Type** **Description** **Required **Default value** (when not specified) **Range**
Min Max
signal\_name stringUser-friendly signal name Yes
device\_alias stringAlphanumeric string to identify a device Yes
signal\_alias stringUnique alphanumeric name of the signal to be Yes used Yes
source\_device\_alias stringdevice\_alias of a source device For commands
source\_signal\_alias stringsignal\_alias of a source signal For commands
enablebooleanEnabling/disabling of an individual signal No101
log integerAllow signal to be logged. If **log is 0 signal** will not be logged. If **log is more than 0** signal will be logged No0
gibooleanIncluding/excluding (1 or 0) signal from General InterrogationNo001
common\_addressintegerAddress of a destination deviceYes
functionintegerFunction numberNo0
info\_addressintegerInformation object addressYes
data\_typeintegerASDU type identifierYes
1, 3, 5, 9, 11, 13, 21, 30, 31, 32, 34, 35, 36, 45, 46, 47, 48, 49, 50, 58, 59, 60, 61, 62, 63
select\_msintegerTime limit in milliseconds for command execution. Command select has to be performed before execution if this parameter is specified. Direct command execution can be performed only if this field is left empty or set to zero.No0
##### Device status signals
IEC 60870-­5-­104 has an additional signal which can be configured to show communication status. It is used to indicate if the slave device has disconnected from master (WCC Lite). To configure such signal for IEC 60870-­5-­104 protocol, job\_todo and tag\_job\_todo fields with string values are required. For IEC 60870-­5-­104 master required parameters for status signal will be: **signal\_name** **device\_alias, signal\_alias, common\_address, info\_address, data\_type, job\_todo** and **tag\_job\_todo**. Job\_todo value must be *device\_status* and for tag\_job\_todo there are 4 variations: communication\_status, device\_running, device\_error, uknown\_error. Each signal has 4 possible values and are based on the same logic. If signal returns value of 0, it means 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. ### Debugging an IEC 60870-5-104 Master application If the configuration for IEC 60870-5-104 devices is set up, the handler for the protocol will start automatically. If a configuration is missing parameters or contains errors, the protocol will not start. It is done intentionally to decrease unnecessary memory usage. If IEC 60870-5-104 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 or use WCC Utility to do that. To launch a debugging session, a user should stop the *iec104-master* process and run the *iec104-master* command with respective flags. - Step 1: Service must be stopped by entering the following command into the WCC Lite: **/etc/init.d/iec104-­master stop** - Step 2: After service is stopped it must be started with the preferred configuration file (JSON files found in /etc/ folder) and a debug level 7: **iec104-­master ­-c /etc/iec104-master/iec104-­master.json -­d7** - Step 3: Once the problem is diagnosed normal operations can be resumed with the following command: **/etc/init.d/iec104-­master start** ##### IEC 60870-­5­-104 command-line debugging options ``` -h [ –help ] Display help information -V [ –version ] Show version -d Set debugging level -c [ –config ] Config path -r [ –raw ] Show raw telegram data -f [ –frame ] Show frame data

­-e [ –redis ] Show redis message -R [ –readyfile ] Ready notification file ``` # 14.6 IEC 60870-5-104 Slave

Since firmware version 1.8.3, multiple signals with different data types can have same ioa address.

IEC 60870-5-104 Slave is designed not to lose data acquired from Master protocols. The data that arrives from Master protocols is stored in the cache. This data is checked every second to manage further data sending. The data that leaves IEC 60870-5-104 Slave has output caches. They’re built to provide switching between multiple sessions (redundant SCADA). If a new connection arrives, the old one is dropped, but data, that is stored in a cache, not sent and not confirmed by SCADA is transferred to the new connection. #### Configuring IEC 104 Slave datapoints To use IEC 60870-­5­-104 Slave in WCC Lite, it has to be configured via an Excel configuration. This configuration contains two Excel sheets where parameters have to be filled in ­Devices and Signals. ##### IEC 60870-­5-­104 Slave parameters for *Devices* tab
**Parameter** **Type** **Description** **Required **Default value** (when not specified) **Range**
Min Max
name stringUser-friendly name for a device Yes
description stringDescription of a device No
device\_alias stringAlphanumeric string to identify a device Yes
enablebooleanEnabling/disabling of a device No101
protocolstringProtocol to be used Yes IEC 60870­-5-104 slave
asdu\_sizeintegerCommon address size in bytesNo212
time\_syncbooleanEnable/disable (1 or 0) time synchronizationYes
portintegerTCP portNo2404065535
ioa\_sizeintegerInformation object address (IOA) size in bytesNo313
swtintegerSend window (SWT)No12
rwtintegerReceive window (RWT)No8
cot\_sizeintegerCause of transmission (COT) size in bytesNo213
hoststringSpace-separated remote host IP addresses (ipv4)Yes
bind\_addressstringBind to local IP address (ipv4)No0.0.0.0
t1 integerAcknowledge timeout t1 (sec)Yes151255
t2integerConnection ACKRSN clock t2 (sec), t2 should be less than t1 Yes101254
t3integerConnection TESTFR clock t3 (sec)Yes201172800
message\_sizebooleanThe maximum length of a messageYes2530255
cache\_sizeintegerAmount of data to be cachedYes10001000
tlsbooleanEnable/disable the use of TLSNo001
tls\_local\_certificatestringLocal certificate for TLS connectionYes (for TLS)
tls\_peer\_certificatestringCertificate authority file for TLS connectionNo
tls\_private\_keystringA file consisting of the private key for TLS connectionNo
command\_timeout\_msintegerTime to execute a command before responding negatively.No300000
command\_age\_msintegerThe amount of time shift allowed for the command to still be executed.No00
##### IEC 60870­-5­-104 Slave parameters for *Signals* tab
**Parameter** **Type** **Description** **Required **Default value** (when not specified) **Range**
Min Max
signal\_name stringUser-friendly signal name Yes
device\_alias stringAlphanumeric string to identify a device Yes
signal\_alias stringUnique alphanumeric name of the signal to be Yes used Yes
source\_device\_alias stringdevice\_alias of a source device For commands
source\_signal\_alias stringsignal\_alias of a source signal For commands
enablebooleanEnabling/disabling of an individual signal No101
log integerAllow signal to be logged. If **log is 0 signal** will not be logged. If **log is more than 0** signal will be logged No001
gibooleanIncluding/excluding (1 or 0) signal from General InterrogationNo001
common\_addressintegerAddress of a destination deviceYes
info\_addressintegerInformation object addressYes
data\_typeintegerASDU type id.Yes
1, 3, 5, 9, 11, 13, 21, 30, 31, 32, 34, 35, 36, 45, 46, 47, 48, 49, 50, 58, 59, 60, 61, 62, 63
select\_msintegerTime limit in milliseconds for command execution. Command select has to be performed before execution if this parameter is specified. Direct command execution can be performed only if this field is left empty or set to zero.No0
##### Device status signals
IEC 60870-­5-­104 has an additional signal which can be configured to show communication status. It is used to indicate if the master device has disconnected from slave (WCC Lite). To configure such signal for IEC 60870-­5-­104 protocol, job\_todo and tag\_job\_todo fields with string values are required. For IEC 60870-­5-­104 slave required parameters for status signal will be: **signal\_name** **device\_alias, signal\_alias, common\_address, info\_address, data\_type, job\_todo** and **tag\_job\_todo**. Job\_todo value must be *device\_status* and for tag\_job\_todo there are 4 variations: communication\_status, device\_running, device\_error, uknown\_error. Each signal has 4 possible values and are based on the same logic. If signal returns value of 0, it means 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. ### Debugging an IEC 60870-5-104 Slave application If the configuration for IEC 60870-5-104 devices is set up, the handler for the protocol will start automatically. If a configuration is missing parameters or contains errors, the protocol will not start. It is done intentionally to decrease unnecessary memory usage. If IEC 60870-5-104 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 or use WCC Utility to do that. To launch a debugging session, a user should stop the *iec104-slave* process and run the *iec104-slave* command with respective flags. - Step 1: Service must be stopped by entering the following command into the WCC Lite: **/etc/init.d/iec104-­slave stop** - Step 2: After service is stopped it must be started with the preferred configuration file (JSON files found in /etc/ folder) and a debug level 7: **iec104-­slave­-c /etc/iec104-slave/0\_0\_0\_0\_502.json -­d7;** (0\_0\_0\_0 - bind\_address, 502 - port) - Step 3: Once the problem is diagnosed normal operations can be resumed with the following command: **/etc/init.d/iec107-­slave start** ##### IEC 60870-­5­-104 command-line debugging options ``` -h [ –help ] Display help information -V [ –version ] Show version -d Set debugging level -c [ –config ] Config path -r [ –raw ] Show raw telegram data -f [ –frame ] Show frame data

­-e [ –redis ] Show redis message -R [ –readyfile ] Ready notification file ```