IOMOD 8DI4RO User Manual
1. Introduction
IOMOD 8DI4RO is a small-size stand-alone Modbus RTU, IEC 60870-5-103 or IEC-60870-5-101 digital input and relay output controller (protocol depends on firmware). IOMOD can be used for industrial applications, where digital signalling and robust communication are needed. IOMOD is an ideal solution for applications such as data acquisition, control, and process monitoring at remote places.
1.1 Features
-
8 digital inputs;
-
Configurable active input signal polarity or input inversion;
-
4 relay outputs;
-
Galvanically isolated inputs and outputs;
-
Pulsed or latched mode for individual outputs;
-
Possible output feedback measurement with inputs;
-
Configuration over USB, RS485 or Ser2Net;
-
Values with data and time information;
-
Drag and Drop firmware upgrade over USB, RS485 or Ser2Net;
-
Modbus RTU, IEC-60870-5-103, IEC-60870-5-101 communication over RS485;
- Software selectable RT 120 Ohm termination resistor on RS485 interface;
-
LED indication for input/output and data transmission;
-
Easy integration with WCC Lite gateway and CloudIndustries.eu platform;
1.2 Block diagram
Fig. 1.2.1. IOMOD 8DI4RO internal structure and block diagram
2. Hardware data
2.1 Mechanical drawings
Fig. 2.1.1. IOMod 8DI4RO side view with dimensions and terminals description. 1 - four relay outputs; 2 - eight digital inputs; 3 - ground input; 4 - RS485 interface; 5 - power supply input
Fig. 2.1.2. IOMod 8DI4RO front view
2.2 Terminal connections
IOMod 8DI4RO has 22 terminals, which are depicted below:
Fig. 2.2.1. IOMod 8DI4RO terminal diagram
The description of each terminal can be found in the table below:
Table 2.2.1. Terminal Specifications
Terminal number |
Terminal name |
Description |
---|---|---|
1 |
RO1.1 |
Relay 1 contacts (NO) |
2 |
RO1.2 | |
3 |
RO2.1 |
Relay 2 contacts (NO) |
4 |
RO2.2 | |
5 |
RO3.1 |
Realy 3 contacts (NO) |
6 |
RO3.2 | |
7 |
RO4.1 |
Realy 4 contacts (NO) |
8 |
RO4.2 | |
9 |
IN1 |
Digital inputs |
10 |
IN2 | |
11 |
IN3 | |
12 |
IN4 | |
13 |
IN5 | |
14 |
IN6 | |
15 |
IN7 | |
16 |
IN8 | |
17 |
GND | Digital input ground |
18 |
GND | Digital input ground |
19 |
A | RS485 non-inverting (positive) input |
20 |
B̄ | RS485 inverting (negative) input |
21 |
V- | Negative power source input |
22 |
V+ | Positive power source input |
2.3 Status indication
IOMod 8DI4RO has fourteen LEDs (Fig 2.3.1), which indicate the statuses of the 8 digital inputs, 4 relay outputs, communication, and power.
Fig. 2.3.1. IOMod 8DI4RO LEDs physical location
Table 2.3.1. Description of LEDs.
Name |
LED color |
Description |
---|---|---|
RO1-RO4 |
🟠 (orange) |
Indicates digital relay output activation |
IN1-IN8 |
🟠 (orange) |
Indicates digital input activation |
RX/TX |
🟢 (green) |
A blinking green light indicates active communication via the RS485 interface. |
STAT |
🟢 (green) |
The power source is connected to the power supply input. |
🔵 (blue) |
IOMod 8DI4RO is connected to an external device via a USB mini cable. |
3. Technical information
Table 4.1. Technical specifications.
System | ||
Dimension | 101 x 119 x 22.5 mm | |
Case | IP20, blend PC/ABS self-extinguishing, black | |
Working environment | Indoors |
|
Operating temperature | From -30°C to +70°C | |
Recommended operating conditions | 5-95% RH (non-condensing) | |
Configuration |
USB, RS485 |
|
Firmware upgrade | USB, RS485 | |
Electrical specifications |
||
Inputs |
Nominal input voltage range |
12-48VDC |
Isolation |
8 X 3kV(rms) |
|
Maximum input voltage |
60VDC |
|
Outputs |
Isolation |
4 X 3kV(rms) |
Rated resistive load |
5 A (at 250 VAC or 30 VDC) |
|
Rated inductive (L/R=7ms) load |
2 A (at 250 VAC or 30 VDC) |
|
Maximum switching voltage |
277 VAC 125 VDC |
|
Maximum switching current |
5 A |
|
Power |
||
Power Supply | 12-24 VDC / 9-33 VDC (full range) | |
Current consumption | 70 mA |
4. Mounting and installation
4.1 Connection Diagrams
In this chapter, the various options for connecting the device are discussed.
4.2 Digital inputs
The typical application of IOMod 8DI4RO inputs is shown in Fig. 4.2.1. When the default input configuration is applied, the user will see inputs connected to +12-24V as “high” or state “1” and the input status LED will glow.
Fig. 4.2.1. IOMod 8DI4RO digital inputs
Users also can configure to enable software input inversion. With this configuration, the user will see inputs connected to 0V (see Fig. 3.) as “high” or state “1”, input status LED will NOT glow.
4.3 Digital relay outputs
IOMod 8DI4RO has 4 relay outputs. Internal clamp diodes are connected to each output, making IOMOD 8DI4RO ideal for driving inductive loads like relays. Maximum 5A per output is allowed. For higher loads outputs can be connected in parallel. Make sure your power supply can provide enough power. The typical application of outputs is shown in Fig. 4.3.1
Fig. 4.3.1. IOMod 8DI4RO digital relay outputs
4.4 RS485 Interface
IOMod 8DI4RO has an integrated 120 Ω termination resistor, which can be enabled or disabled via the configuration terminal. It is recommended to use termination at each end of the RS485 cable. See the typical connection diagram in Fig. 4.4.1.
Fig. 4.4.1. Typical IOMod connection diagram
IOMod 8DI4RO has a 1/8 Unit load receiver which allows it to have up to 256 units on the line (compared to standard 32 units). To reduce reflections, keep the stubs (cable distance from the main RS485 bus line) as short as possible when connecting the device.
4.5 Power supply
Fig. 4.5.1. Power supply inputs physical location
4.6 USB connection
The IOMod 8DI4RO device features a USB-mini connection port, which primarily facilitates a physical connection between the IOMod and a PC. By selecting the USB interface and the appropriate communication port in the IOMod Utility (Fig. 4.6.1), users can establish a connection to control the device’s parameters and monitor its measurements. Additionally, this connection can serve as a power source for the module.
Fig. 4.6.1. IOMod Utility interface and communication port parameters
Fig. 4.6.2. IOMod 8DI4RO USB connection port physical location
5. Parametrization
In this section, the IOMOD 8DI4RO settings configuration is described. IOMOD 8DI4RO configuration is performed via IOMod Utility (the manual can be accessed here). All IOMOD-related settings can be found in the "Iomod settings" tab (Fig. 5.1).
Fig. 5.1. IOMod settings tab
5.1 Iomod Settings
To configure IOMOD 4RTD general settings open the "Iomod settings" tab in IOMOD Utility (Fig. 5.1.1).
Fig. 5.1.1 IOMOD Utility with IOMOD 8DI4RO Iomod settings window opened
IOMOD Utility is a tool created to configure IOMODs with firmware version 2. This tool allows users to connect, configure, and diagnose IOMODs such as 8DI8DO, 8DI4RO, 16DI, 8AI, 4RTD, 4CS4VS, METER, and FPI. The Utility's interface allows users to connect to IOMOD via USB port, RS485, and ser2net. More information about this tool and its installation can be found on the documentation page IOMOD Utility.
To configure IOMOD 8DI4RO using IOMOD Utility, first connect to a device or create a template as explained in the IOMOD Utility documentation. Parameters for IOMOD 8DI4RO can be configured on the Iomod settings tab. IOMOD with default settings is configured as an IEC101 slave device. Default IOMOD parameters can be seen in the picture above.
Sometimes, two inputs or outputs need to be combined into double point input (DPI) or double command output (DCO). Inputs and outputs can be grouped in pairs of two, where only adjacent pins can be paired, and the first pin in the pair must have an odd number. Once grouped, the second pin in the pair is no longer used, and any requests for it will result in an error. For example, RO1.1-2 and RO2.1-2 can be grouped, but after grouping, RO2.1-2 is disabled. RO2.1-2 and RO3.1-2 cannot be grouped, but RO3.1-2 and RO4.1-2 can be grouped, disabling RO4.1-2.
If desired, input/output groups can be swapped. Grouped Input/Output Swapping allows you to exchange the positions of the grouped pins. After swapping, the even-numbered pin can become the first pin in the pair, and the odd-numbered pin follows. For instance, if RO1.1-2 and RO2.1-2 are grouped, you can swap their positions so that RO2.1-2 becomes the first in the pair. Parameters Group inputs/Group outputs and Swap grouped inputs/Swap grouped outputs are only available for protocols IEC101 and IEC103.
Fig. 5.1.2. Input/Output grouping example
Invert inputs and Invert outputs parameters revert the state of the input/output. If the user wants the output status to display as 'ON' when the output signal is in a low state, the outputs can be logically inverted. Unlike 8DI8DO IOMOD 8DI4RO does not have pull-up resistors. If the user desires to turn the input status on, when that input signal is low, the user then inverts inputs logically. All input indication LEDs stay the same (are not inverted).
Input filters define the time after which the input state is considered changed. The input filter is a simple glitch filter with time input. This filter time corresponds to the stable time that input must achieve before sending a status change. For example, if the input state is OFF and the input filter value is 50 ms, the state changes to ON and stays ON for more than 50 ms, then it will be represented as ON, but if the input state was ON for less than 50 ms it will not change and will stay as OFF. This parameter helps to filter values causing less unneeded data.
Users can configure outputs to be pulse controlled – it means that output will be turned on for the configured amount of time. When this time runs out, output is turned off. This is useful when pulse toggle relays are used. The output pulse is independent of the output grouping option and can be used on both grouped and ungrouped outputs. When output is grouped, the device will allow only one command completion at a time – when output is already turned ON, other “turn ON” requests will be responded to with NACK. If the user desires latching outputs to be used, the output pulse time is set to 0.
The IEC101 protocol has settings for long and short pulse commands. Unlike the Modbus RTU protocol, the IEC-60870-5-101 protocol offers options for short and long pulses. A short pulse is typically sent with qualifier 1 (QU/QL = 1), while a long pulse is usually sent with qualifier 2 (QU/QL = 2). The IEC103 and Modbus protocols only have pulse parameters without the ability to configure short or long pulses. The default pulse time for Modbus and IEC103 is the same as the short pulse in IEC101 (1000 ms).
Select Before Operate (SBO) ensures that an output action (such as turning a relay on or off) is carried out only after the output has been explicitly selected. This helps prevent accidental or unauthorized operations, ensuring that the operator's intent is confirmed before acting. For example, the user wants to turn on RO1. First, they issue a select command to RO1. After the selection is acknowledged, the user sends an operation command to turn on RO1. If the command is successful, the IOMod changes the state of the relay, and the output is turned on. If there’s an issue, a negative acknowledgement (NACK) will be sent, and no change will occur. There is also an output SBO time option that ensures that a relay operation is not immediately executed but is instead delayed to allow for confirmation or review before the operation is carried out.
The Iomod settings' available values and ranges can be seen in the table below (Table 5.1.1).
Table 5.1.1 IOMOD 8DI4RO parameter ranges and default values
Parameter | Range | Default value |
Input [ ] filter, ms | 1–65535 | 50 |
Output [ ] short pulse, ms* | 1–65535 | 1000 |
Output [ ] long pulse, ms* | 1–65535 | 5000 |
Output [ ] SBO time, ms* | 1–65535 | 20000 |
* The parameters are defined only for the IEC 60870-5-101 communication protocol.
5.2 Diagnostics
The Utility diagnostics windows allow users to connect to IOMOD directly and observe the values in real-time. The 8DI4RO diagnostics window shows input and output states and also allows activation of the outputs. If an input or output is on, the Diagnostics window indicates it with a blue square next to it (unless the input/output is grouped, swapped or inverted, then they would behave in a configured way).
To turn on real-time monitoring of both Diagnostics sections, the "Connect" button to the left of the "Offline" word designation needs to be pressed. After pressing the "Connect" button the word designation of Diagnostics mode changes to "Online", the black circle starts blinking and the button name changes to "Disconnect" (Fig. 5.2.1). When a fault is detected the checkboxes are going to be checked.
Fig. 5.2.1. IOMOD Utility Diagnostics tab in online mode
6. Communication protocols
IOMOD 8DI4RO uses Modbus (RTU), IEC-60870-103 or IEC-60870-101 protocols over Ser2Net or RS485 connection, which can be used for cable lengths up to 1500 meters and connect up to 30 devices on one line. Default Modbus, IEC-60870-103 and IEC-60870-101 settings are: 19200 bauds/s baudrate, 8E1, Slave (Link) address - 1.
6.1 Modbus RTU Operational information
To read the status of relay outputs (On or Off), Modbus function 01 is used. The IOMOD 8DI4RO has 4 relay outputs, with addresses ranging from 0 to 3.
Modbus function 02 reads the status of digital inputs (On or Off). The IOMOD 8DI4RO has 8 digital inputs, with addresses ranging from 0 to 7. These inputs are active-high by default.
Function 03 allows the user to read counter/timer values related to digital inputs. There are 40 Modbus registers. The values in these registers are described in the table below. Two types of values are stored: Pulse Counter and On Timer. The On Timer calculates the duration for which a respective input remains in its active state.
Function 04 allows the user to read counter/timer values related to digital inputs. There are 80 Modbus registers. The values in these registers are described in the table below. Two types of values are stored: Pulse Counter and On Timer, with the On Timer calculating the time (in seconds) for which a respective input remained in its active state. This function is deprecated and is maintained for backward compatibility with earlier versions of IOMOD 16DI.
To set the state of a single relay output (On or Off), Modbus function 05 is used. The output addresses range from 0 to 3 (the first output is address 0, last output is address 3).
Function 06 sets the value of a single register. The register addresses are identical to those used in the "Read Input Registers" function.
Modbus function 15 sets the state of multiple relay outputs (On or Off) simultaneously. The output addresses range from 0 to 3 (the first output is address 0, last output is address 3).
Table 6.1.1 Modbus register mapping table
Register |
Description |
Value Range |
Read coil status (01) |
||
00000-00007 |
Reading digital outputs RO1-RO4 |
0-255 |
Read discrete inputs (02) |
||
00000-00007 |
Reading digital inputs DI1-DI8 |
0-255 |
Read holding register (03), Read input register (04), Preset Single Register (06) |
||
00000 |
Pulse count for DI1, Least Significant Word |
0-65535 |
00001-00002 |
On-time in seconds for DI1, Least Significant Word first* |
0-65535 |
... |
... |
... |
00021 |
Pulse count for DI8, Least Significant Word |
0-65535 |
00022-00023 |
On-time in seconds for DI8, Least Significant Word first* |
0-65535 |
00024-00039 |
Pulse count for DI1-DI8, Least Significant Word first* |
0-65535 |
Write single coil (05) |
||
00000-00003 |
Writing a single relay output |
0x0000 / 0xFF00 |
Write multiple coils (15) |
||
00000-00003 |
Writing multiple relay outputs RO1-RO4 |
0-255 |
*It is advised to set the most significant word of counter/timer first
6.2 IEC 60870-5-101 Operational Information
IEC 60870-5-101 (IEC101) is a communication protocol designed for telecontrol applications in power systems, enabling communication between a master station and slave devices (e.g., Remote Terminal Units or RTUs). It supports two operational modes: unbalanced mode, where only the master can initiate communication, and balanced mode, where both the master and slaves can initiate data exchanges.
The IOMod 8DI4RO uses the IEC101 protocol to transmit digital input (DI) status and control relay outputs (RO) in a standardized format. Each signal is assigned an Information Object Address (IOA) and a Type Identifier (TI). The protocol efficiently conveys binary status changes (e.g., on/off state of equipment or alarms) and control commands with associated timestamps, enabling reliable communication in automation systems.
IOmod communicates using the standard IEC-60870-5-101 protocol. The master (controlling station) initiates all actions, while the IOmod device (controlled station) only responds to these requests.
-
Initiation:
The master sends the first message to request the link status (function code = 9). If the link is available, IOmod replies with the link status (function code = 11); otherwise, it does not respond. -
Resetting the Link:
After receiving the link status, the master sends a "Reset Remote Link" command (function code = 0) to restart communication. IOmod will respond with either:- ACK (Acknowledgment): Function code = 0 (indicating success).
- NACK (Negative Acknowledgment): Function code = 1 (indicating failure).
If IOmod responds with ACK, initialization is complete, and the master can proceed with other IEC-60870-5-101 protocol messages.
Once initialization is complete, the master can request data from the IOMod device using a general interrogation command. This command retrieves the current status of all inputs and outputs.
In addition, the IOMod automatically sends updates whenever a value changes, as specified by the IEC101 protocol. For example, the 8DI4RO IOMod reports status changes for its digital inputs using data type 1 (M_SP_NA_1), which represents single-point information (on/off states).
This ensures that the master always has up-to-date information without needing to continuously poll the IOMod, making communication efficient and reducing network traffic.
The IOMod 8DI4RO uses the IEC-60870-5-101 protocol for managing inputs and outputs.
The outputs are controlled by the master (controlling station) using a 45-type command (C_SC_NA_1, single-point command). Each output is assigned an Information Object Address (IOA):
- 101: RO1
- 102: RO2
- 103: RO3
- 104: RO4
By specifying the corresponding IOA, the master can turn outputs ON or OFF. If an invalid command is sent (e.g., incorrect IOA or data type), the device responds with a negative acknowledgement (NACK).
The inputs are mapped to the following IOAs:
- 9: DI1
- 10: DI2
- 11: DI3
- 12: DI4
- 13: DI5
- 14: DI6
- 15: DI7
- 16: DI8
This setup allows the master to monitor input statuses and control outputs efficiently, ensuring seamless communication between devices.
To synchronize time, the master sends a Clock Sync command:
- Command Type: C_CS_NA_1 (103)
- Cause of Transmission (COT): 6
The command must target the correct link address and CASDU (defaulted to the link address).
If the frame is valid, the IOMod responds with:
- Command Type: C_CS_NA_1 (103)
- COT: 0x07 (positive confirmation)
- The response includes the device’s timestamp.
If the sync is disabled or the CASDU is incorrect, the response will be:
- COT: 0x47 (negative confirmation)
- p/n bit: 1
To start the General Interrogation (GI), the master sends the C_IC_NA_1 (100) command withe th Cause of Transmission (COT) set to 6. The command must be sent to the correct link address and CASDU (default is the link address).
-
If the command is valid:
The IOMod responds with the same C_IC_NA_1 (100) command, COT = 0x07 (positive confirmation), and p/n bit = 0. The device then begins to send all its data. -
If the command is invalid:
The IOMod responds with the same command, but p/n bit = 1 (negative confirmation) and COT = 0x47. -
End of GI:
If the GI is successful, the IOMod will send another C_IC_NA_1 (100) command with COT = 0x10 (ActTerm), indicating that the interrogation is complete.
5.3 IEC 60870-5-103 Operational Information
IEC 60870-5-103 is a communication protocol specifically designed for telecontrol and automation systems in the electrical power industry, particularly for substation automation. IEC 60870-5-103 is more specialized for applications related to protection, control, and monitoring in electrical substations. It supports two operational modes: unbalanced mode, where only the master can initiate communication, and balanced mode, where both the master and slaves can initiate data exchanges.
IOMod communicates using the standard IEC-60870-5-103 protocol. The master (controlling station) initiates all actions, while the IOMod device (controlled station) only responds to these requests.
-
Reset Command:
- The master sends a "Reset CU" or "Link Reset FCB" command (function code = 7).
- IOMod responds with an acknowledgement (ACK, function code = 0).
-
Requesting Link Status:
- The master sends a "Request Status of Link" command (function code = 9).
- IOMod replies with the link status (function code = 11).
-
Resetting the Remote Link:
- The master sends a "Reset Remote Link" command (function code = 0).
- IOMod responds with an acknowledgement (ACK, function code = 0).
Once the initialization process is complete, the master can send other IEC-60870-5-103 protocol messages. Any messages sent before completing the initialization process will be ignored by IOmod.
When initialization is complete, the master may poll the IOMOD device with both Class 1 and Class 2 requests. Class 2 is used when master polls for cyclic data. The controlled device answers with a message containing an Access Demand flag when spontaneous data exists and the master then sends a request for Class 1. IOMod would then respond with a time-tagged message.
On the first Class 1 request IOmod device always asks for the Access Demand to send an identification string. However, if there are spontaneous messages to be sent, they will be sent before the identification string.
To enable or disable relay outputs master (controlling station) sends commands conforming to the IEC-60870-5-103 protocols. The function type of the output commands has to be 128 (80h). Info number represents the number of output pins (1-4 accordingly). Info elements show DPI information of output state:
- 0 – intermediate
- 1 – off
- 2 – on
- 3 – not used (defines error)
The successful command is accepted with a positive acknowledgement.
When an input status changes, the IOMod filters out glitches using a user-configurable filter time. Once the filter is passed, the device sends a "Spontaneous" message with the Information Number field indicating the input pin address and a default Function Type of 160 (A0h). These messages include a 4-byte timestamp without date information, so the controlling station must handle signals properly, especially at the start of a new day.
To synchronize time between devices, the master sends a variable frame with the following parameters:
- Function Type: 0 (GLB)
- Type Identification: 6
- Information Number: 0
- Cause of Transmission: 8
- Info Elements: 7-byte time structure
According to the IEC-60870-5-103 protocol specification, time synchronization can be performed for multiple devices using broadcast messages. This feature is available in firmware version 1.7.3 or later. To broadcast a time synchronization message, the link address must be set to 255.
General Interrogation (GI) starts when the master sends a variable frame with:
- Function Code: 3
- Type Identification: 7
- Information Number: 0
- Cause of Transmission: 9
The slave device acknowledges (ACK) the request. The master then retrieves IOMod data through Class 2 polling requests. IOMod responds with time-tagged messages containing DPI states of outputs (sent first) and inputs. PINs are represented by the Info Number fields in the packets. Finally, the slave sends an End of GI message:
- Cause of Transmission: 10
- Type Identification: 8