Skip to main content

IOMOD 8DI8DO User Manual

1. Introduction

 

The IOMod 8DI8DO is a compact, standalone digital input and output controller compatible with Modbus RTU, IEC 60870-5-101, and IEC 60870-5-103 protocols. It is designed for industrial applications that require digital signaling and robust communication. The IOMod is an ideal solution for process monitoring and control in remote locations and integrates seamlessly with any SCADA system.

1.1 Features

 
  • 8 digital inputs
  • 8 digital open collector outputs
  • Galvanically isolated inputs and outputs for enhanced safety and reliability
  • Configurable using the IOMod utility app for user-friendly setup
  • RS485 communication for robust data exchange
  • LED indicators for input/ output status, data transmission (Rx), and data reception (Tx)
  • Compact case with a removable transparent front panel
  • DIN rail mounting for seamless integration into industrial systems

1.2 Block diagram

image-1738761709607.pngFig. 1.2.1 IOMod 8DI8DO internal structure and block diagram

2. Hardware data

 

2.1 Mechanical drawings

8DI8DO_mechanical_drawings.pngFig. 2.1.1 IOMod 8DI8DO side view with dimensions and terminals description. 1 - digital outputs; 2 - digital inputs; 3 - input/output power supply; 4 - RS-485 interface; 5 - Power supply

8DI8DO_mechanical_drawings_front.png

Fig. 2.1.2 IOMod 8DI8DO front view with measurements

2.2 Terminal connections

IOMod 8DI8DO has 22 terminals, which are depicted below:

8DI8DO_therminals.pngFig. 2.2.1 IOMod 8DI8DO 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

DO1

 

 

 

 

 

Digital outputs

2

DO2

3

DO3

4

DO4

5

DO5

6

DO6

7

DO7

8

DO8

9

DI1

 

 

 

 

 

 

 

 

Digital inputs

10

DI2

11

DI3

12

DI4

13

DI5

14

DI6

15

DI7

16

DI8

17

VIO+ Input/output positive power source

18

VIO- Input/output negative power source

19

A RS485 input

20

B RS485 input

21

V- Power source input

22

V+ Power source input

2.3 Status indication

IOMod 8DI8DO has LEDs (Fig. 2.3.1), which are used to indicate outputs, inputs, communication and power statuses

image-1738320516228.png

Fig. 2.3.1 IOMod 8DI8DO LEDs physical location

The description of each IOMod 8DI8DO LED can be found in the table below:

Table 2.3.1 Description of LEDs

O1- O8

🟠 (orange)

Indicates output status

I1- I8

🟠 (orange)

Indicates input status

RX/TX

🟢 (green)

Blinking green light indicates active communication via RS485 interface.



STAT

🔴 (red)

Power source is connected only to the power supply input of the device

🟢 (green)

Power source is connected to both- power supply input of the device and to the input/output power supply

🔵 (blue)

IOMod 8DI8DO is connected to an external device via USB mini cable.

3. Technical information

Table 3.1. Technical specifications

System

Dimension 101 x 119 x 17.5 mm
Case ABS, black
Working environment Indoor
Operating temperature -40°C ... +85°C
Recommended operating conditions  5–60°C and 20–80%RH;
Configuration

USB, RS485

Firmware upgrade USB, RS485
Electrical specifications


Outputs


open collector outputs

9-33VDC (@current < 400mA shared across all 8 outputs)

Isolation

8 X 3kV(rms) 

Inputs

Nominal input voltage range

6-33VDC (@current 1.3mA - 16mA) 

Isolation

8 X 3kV(rms)

Power


Power Supply 9–33 VDC (full range)
Current consumption 40 mA @ 12 VDC, 20 mA @ 24 VDC

4. Mounting and installation

4.1 Connection Diagrams

In this chapter the various options of connecting the device to systems are discussed.

4.1.1 Digital inputs

The typical application of IOMOD 8DI8DO inputs is shown in Fig. 4.1.1. When the default configuration for the inputs is applied, the user will observe inputs connected to +12/24V as “high” or in state “1,” and the input status LED will illuminate.

8DI8DO_inputs.png

Fig. 4.1.1 Input configuration example

4.1.2 Digital outputs
IOMOD 8DI8DO features 8 open-collector digital outputs with internal clamp diodes, making it ideal for driving inductive loads such as relays. The total maximum current allowed across all outputs is 400 mA. 

The outputs are the sink type (NPN), meaning they provide a path to ground. The load is connected between the output and the positive voltage. When an output is active, current flows from power supply through the load to ground, the output state becomes "high" (1), and the corresponding status LED illuminates. A typical output application is shown in Fig. 4.1.2

image-1738676001513.pngFig. 4.1.2 Output configuration example

4.2  RS485 Interface

IOMod 8DI8DO has integrated 120Ω termination resistor which can be enabled or disabled over IOMod utility app. It is recommended to use termination at each end of the RS485 cable. See typical connection diagram on Fig. 4.2.1

8DI8DO_rs485_connection_diagram.png

Fig 4.2.1 Typical IOMod connection diagram

4.3 Power supply

IOMod 8DI8DO needs to be powered by a 9–33 V power source. IOMod power supply inputs are located next to RS485 interface inputs (Fig 4.4.1)image-1738572507005.png


Fig. 4.4.1. Power supply input physical location

4.4 USB connection

The IOMod 8DI8DO device features a USB-mini connection port, primarily used to establish a physical connection between the IOMod and a PC. By selecting the USB interface and the correct communication port in the IOMod Utility (see Fig. 4.4.1), the user can connect to the IOMod to control its parameters and monitor its measured data. Additionally, this connection can be used to power the module.

image-1728042632848.png

Fig. 4.4.1 IOMod Utility interface and communication port parameters

image-1738572132158.png

Fig. 4.4.2. IOMod 8DI8DO USB connection port physical location

 

5. Communication protocols

The IOMod 8DI8DO supports three communication protocols: Modbus RTU, IEC 60870-5-101, and IEC 60870-5-103. These protocols allow a user, via a master device, to read data from the IOMod and send commands to activate digital outputs. The desired communication protocol can be selected using the IOMod Utility application (Fig. 5.1) 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 detailed IOMod Utility manual here.

image-1737709648782.pngFig. 5.1 IOMod utility app protocol selection window

IOMod 8DI8DO default communication protocol settings

Protocol

baudrate

parity

stop bits

wait byte count

slave address

link address size

ASDU size

COT size

IOA size

Input function

Output command function

Output status function

Modbus

19200 Even 1 8 1

IEC 101

19200 Even 1 8 1 1 1 1 2

IEC 103

19200 Even 1 8 1
253 254 254






 

*Default IOMod 8DI8DO communication protocol is Modbus

5.1 Modbus RTU protocol operational information

Modbus RTU protocol is a simple and widely used messaging structure for serial communication. In the case of Modbus protocol IOMod 8DI8DO will send data only after receiving correct queries from a master device. Supported Modbus function codes: FC1, FC2, FC3, FC5, FC6 and FC16.

01 (0x01) Read Coil status
As the name implies, it is designed for reading digital data. In the context of IOMod 8DI8DO FC1 requests allow to read digital input and output statuses. Please note that the input statuses cannot be overwritten separately but can only be read (R access).

02 (0x02) Read Discrete Inputs
As the name implies, it is designed for reading digital data. In the context of IOMod 8DI8DO FC2 requests allow to read digital input and output statuses. Please note that the input statuses cannot be overwritten separately but can only be read (R access).

03 (0x03) Read Holding Registers
Allows the user to read counter/timer values dedicated to digital inputs. There are two types of values - Pulse Counter and On Timer. The pulse counter tracks the number of pulses for the respective input. While the On timer calculates the duration for which the respective input remained in its active state.

05 (0x05) Write single coil
This command is used to set the state of a single output (On or Off). The output addresses range from 0 to 7 (the first output is address 0, last output is address 7)

06 (0x06) Preset Single Register
Sets single register. This command is used to change the values of Pulse counter and ON timer.

16 (0x16) Preset Multiple Registers
Sets multiple registers. This command is used to change the values of Pulse counter and ON timer. 

5.1.1 Modbus register mapping table

Address

(Dec)

Description

Read coil status (01)

0 - 7

Reading digital output DO1-DO8


8 - 15

Reading digital input DI1- DI8


Read discrete inputs (02)

0 - 7

Reading digital output DO1-DO8


8 - 15

Reading digital input DI1- DI8


Read holding register (03), Read input register (04)
Write single or multiple registers (06 or 16)

0

input 1 pulse count

accepts command with 6 or 16 function to change value

1 - 2

input 1 on time

accepts command with 6 or 16 function to change value

3

input 2 pulse count

accepts command with 6 or 16 function to change value

4 - 5

input 2 on time

accepts command with 6 or 16 function to change value

...

...

...

21

input 8 pulse count

accepts command with 6 or 16 function to change value

22 - 23

input 8 on time

accepts command with 6 or 16 function to change value

Write single coil (05)

0 - 7

Writing digital outputs DO1-DO8


Write multiple coils (15)

0 - 7

Writing multiple digital outputs DO1-DO8


Fig. 5.1.1 Modbus register table

5.1.2 Device settings for Modbus protocol

Communication settings

IOMod 8DI8DO configuration is performed via IOMod Utility (the manual can be accessed here).

image-1738054807569.pngFig 5.1.2.1 Modbus protocol communication settings tab on IOMod utility app

For Modbus protocol users can set: Link address, baudrate, parity, stop bits, terminating resistor and bit wait time (Fig 5.1.2.1). See the table below for parameter ranges and default values (Fig 5.1.2.2) 

Parameter

Range

Default values

Link address 1-256 1
Baudrate 600, 1200, 2400, 4800, 9600, 19200, 28800, 38400, 57600, 76800, 115200 19200
Parity None, Odd, Even, Mark, Space Even
Stop bits 1, 2 1
Terminating resistor Enable or disable disabled
Bit wait time for packet 8-256 8

Fig 5.1.2.2 Communication parameters ranges and default values

General IOMod settings

More device parameters can be changed with IOMod utility under IOMod settings tab (Fig 5.1.2.3). For Modbus protocol user can set input, output inversion and input, output filter.

 

image-1737990844035.pngFig 5.1.2.3 IOMod settings tab on utility application

Input Inversion

If the user wants the input status to display as "ON" when the input signal is in a low state, the inputs can be logically inverted via IOMod utility application under the IOMod settings tab (Fig. 5.1.2.4)

When input inversion is enabled, the input state will show 1 (ON) when no signal is connected and will change to 0 (OFF) when the input is activated.

Note: The input indication LEDs are not affected by this inversion and will continue to reflect the actual signal state.

Example:
Input 2 has input inversion enabled in the IOMod Utility application. Both inputs, IN1 and IN2, are physically activated, and the LEDs on the IOMod are lit for both inputs. However, on the SCADA system:

  • IN1 will be displayed as "1" (ON).
  • IN2 will be displayed as "0" (OFF) due to the input inversion setting.

Input inversion can enabled via IOMod utility application under the IOMod settings tab 

image-1738659896551.png

Fig. 5.1.2.4 Input inversion on IOMod utlity app

Output Inversion

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 via IOMod utility application under the IOMod settings tab (Fig. 5.1.2.4)

When output inversion is enabled, the output state will show 1 (ON) when output is not activated and will change to 0 (OFF) when the output is activated.

Note: The output indication LEDs are not affected by this inversion and will continue to reflect the actual signal state.

Example:
output 2 has output inversion enabled in the IOMod Utility application. Both outputs, DO1 and DO2, are activated, and the LEDs on the IOMod are lit for both outputs. However, on the SCADA system:

  • DO1 will be displayed as "1" (ON).
  • DO2 will be displayed as "0" (OFF) due to the output inversion setting.

Output inversion can be enabled via IOMod utility application under the IOMod settings tab 

image-1738660946288.png

Fig. 5.1.2.4 Output inversion on IOMod utility app

Input filter

The filter time specifies the duration for which the input must remain stable before a status change is transmitted. The time interval is set in milliseconds. Default interval is 50ms.

Input filter time can be set in the IOMod utility application under the IOMod settings tab (Fig. 5.1.2.5)

image-1738663472423.png

Fig. 5.1.2.5 Input filter on IOMod utility application

Output pulse time

The output pulse time defines how long an output remains active after receiving a command. It is set in milliseconds. The default value is 0 ms, meaning the pulse function is disabled.

Output pulse time can be set in the IOMod utility application under the IOMod settings tab (Fig. 5.1.2.6)

image-1738663559810.png

Fig. 5.1.2.6 Output pulse time on IOMod utility app

5.2 IEC 60870-5-101 protocol operational information

Introduction
IEC 60870-5-101 (IEC101) is a communication protocol designed for telecontrol applications in power systems, facilitating communication between a master station and slave devices (e.g., Remote Terminal Units or RTUs). Unlike the Modbus protocol, IEC101 allows to transfer additional information like timestamp and quality attributes.

The IOMod 8DI8DO uses the IEC101 protocol to transmit signals in a standardized format. Each signal is mapped to an Information Object Address (IOA) and assigned Type Identifier (TI). This format conveys binary status changes (e.g., whether a circuit breaker is open or closed) with associated timestamps.

5.2.1 Initialization

The IOMod utilizes a standard IEC 60870-5-101 communication scheme. Initialization, control messages, and queries are initiated by the master (controlling station), while the IOMod device (controlled station) responds to these requests.

5.2.2 Data Polling

Once initialization is complete, the master can request data from the IOMod device using a general interrogation command. Additionally, per protocol specifications, the IOMod sends data automatically upon detecting value changes.

For the IOMod 8DI8DO, data is transmitted using Type 30 (M_SP_TB_1), which represents single-point values with a time tag. Double-point input data is transmitted using Type 31(M_DP_TB_1)

5.2.3 Input Messages

When an input status changes, the IOMod filters potential glitches using a user-configurable filter time. Once the filter criteria are met, the device sends a “Spontaneous” message with:

  • Type: 30 (M_SP_TB_1) for single point and 31 (M_DP_TB_1) for double-point input
  • The inputs are mapped to the following IOAs:

    • 9: DI1
    • 10: DI2
    • 11: DI3
    • 12: DI4
    • 13: DI5
    • 14: DI6
    • 15: DI7
    • 16: DI8
5.2.4 Output control

The outputs are controlled by the master (controlling station) using a 45-type command (C_SC_NA_1, single-point command) or 46-type command (C_DC_NA_1, double-point command) for grouped outputs. Each output is assigned to a Information Object Address (IOA):

  • 101: DO1
  • 102: DO2
  • 103: DO3
  • 104: DO4
  • 105: DO5
  • 106: DO6
  • 107: DO7
  • 108: DO8
5.2.5 Time Synchronization

To synchronize time, the master must send 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: 7
  • The response will also include the device’s timestamp.
5.2.6 General Interrogation (GI)

The master initiates GI by sending a General Interrogation command. The command must be sent to the correct link address and CASDU (default is the link address)

  • Command Type: C_IC_NA_1 (100),
  • COT: 6.

When the command is valid, the IOMod responds with:

  • Command Type: C_IC_NA_1 (103),
  • COT: 7,
  • p/n Bit: Positive (0).

If invalid, the response includes a negative (1) p/n bit.

After validation, the device transmits all its data. Upon completion, the IOMod sends another command C_IC_NA_1 (Type 100) with COT = 10 (ActTerm) to indicate the GI process is complete.

5.2.7 Device settings for IEC 60870-5-101 protocol

IOMod 8DI8DO configuration is performed via IOMod Utility application (the manual can be accessed here).

image-1737991687263.png

Fig 5.2.7.1 Communication settings on the IOMod utility application

For IEC 60870-5-101 protocol users can set: Link address, baudrate, parity, stop bits, terminating resistor and bit wait time, time synchronization timeout, link address size, ASDU size, COT size, and IOA size using the IOMod utility application (Fig 5.2.7.1) See the table below for parameter ranges and default values for IEC 60870-5-101 protocol (Fig 5.2.7.2) 

Parameter

Range

Default values

Link address

1-65535*

1

Baudrate 600, 1200, 2400, 4800, 9600, 19200, 28800, 38400, 57600, 76800, 115200 19200
Parity None, Odd, Even, Mark, Space Even
Stop bits 1, 2 1
Terminating resistor Enable or disable disabled
Bit wait time for packet 8-256 8
Time synchronization timeout (s) 1-65535 300
Link address size 1, 2 1
ASDU size 1, 2 1
COT size 1, 2 1
IOA size 1, 2, 3 2

Fig 5.2.7.2 parameter ranges and default values of IOMod

General IOMod settings

More device parameters can be changed with IOMod utility application under IOMod settings tab. For the IEC 60870-5-101 protocol user can enable: input and output grouping, swap grouped inputs and outputs, invert inputs and outputs, filter inputs and set output pulse time.

Input Grouping

Certain applications require combining two inputs into a single (DPI) input. This is done by grouping two neighboring pins, where the first pin in the pair must be odd-numbered. When grouped, the second pin in the pair is not used anymore – all requests to this pin will generate an error.

Example:

  • Valid: IN1 and IN2 (IN2 becomes unused).
  • Invalid: IN2 and IN3.

image-1738670365941.png

Input grouping can be achieved via IOMod utility application under the IOMod settings tab (Fig. 5.2.7.3) 

image-1738669660521.png

Fig. 5.2.7.3 Input grouping settings on IOMod utility app

Swap grouped inputs

Grouped inputs are referred to as Double Point Information (DPI) inputs. DPI signals consist of two bits of information, allowing for four possible states, thus providing more detail compared to SPI/. For example: The INDETERMINATE state might indicate that part of the equipment is turned off or that a mechanical component responsible for switching is stuck between states. The ERROR state could signify that both contacts are connected, possibly indicating a short circuit in the equipment.

Value Representation
00 INDETERMINATE
01 OFF
10 ON
11 ERROR

Practical usage example of Swap Grouped Inputs setting: In a typical configuration, an active IN1 indicates the OFF position, and an active IN2 indicates the ON position. However, if a technician accidentally mismatches the cables during installation, resulting in IN1 indicating ON and IN2 indicating OFF, the Swap Grouped Inputs setting allows the positions of the inputs to be swapped without requiring any physical reconnection of the cables.

Swap grouped inputs can be enabled via IOMod utility application under the IOMod settings tab (Fig. 5.2.7.4)

image-1738669691616.png

Fig 5.2.7.4 Swap grouped inputs setting on IOMod utility application

Input inversion

Enables logical inversion of signal states. If the user wants the input status to display as "ON" when the input signal is in a low state, the inputs can be logically inverted

When input inversion is enabled, the input state will show 1 (ON) when no signal is connected and will change to 0 (OFF) when the input is activated.

Note: The input indication LEDs are not affected by this inversion and will continue to reflect the actual signal state.

Example:
Input 2 has input inversion enabled in the IOMod Utility application. Both inputs, IN1 and IN2, are physically activated, and the LEDs on the IOMod are lit for both inputs. However, on the SCADA system:

  • IN1 will be displayed as "1" (ON).
  • IN2 will be displayed as "0" (OFF) due to the input inversion setting.

Input inversion can enabled via IOMod utility application under the IOMod settings tab (Fig. 5.2.6.5)

image-1738669764103.png

Fig. 5.2.7.5 Input inversion setting on IOMod utility application

Input Filtering

The filter time specifies the duration for which the input must remain stable before a status change is transmitted. The time interval is set in milliseconds. The default interval is 50ms.

Input filter time can be set in the IOMod utility application under the IOMod settings tab (Fig. 5.2.7.6) 

image-1738669807539.png

Fig. 5.2.7.6 Input filter time setting on IOMod utility application

Output grouping

Certain applications require combining two outputs into a single (DPI) output. This is done by grouping two neighboring pins, where the first pin in the pair must be odd-numbered. When grouped, the second pin in the pair is not used anymore – all requests to this pin will generate an error.

Example:

  • Valid: DO1 and DO2 (DO2 becomes unused).
  • Invalid: DO2 and DO3.

46-type command (C_DC_NA_1, double-point command) must be used to active DPI outputs. When outputs are grouped, only short and long pulse commands are executed. The short pulse is sent with qualifier 1 (QU/QL = 1), while a long pulse is sent with qualifier 2 (QU/QL = 2). Each output pair is assigned to a Information Object Address (IOA):

 
  • 101: DO1 and DO2 pair
  • 103: DO3 and DO4 pair
  • 105: DO5 and DO6 pair
  • 107: DO7 and DO8 pair

Output grouping can be enabled via IOMod utility application under the IOMod settings tab (Fig. 5.2.7.7)

image-1738679483307.pngFig. 5.2.7.7 Group outputs settings

Swap grouped outputs

If desired, output groups can be swapped. Grouped 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 DO1 and DO2 are grouped, you can swap their positions so that DO2 becomes the first in the pair. 

Swap grouped outputs can be enabled via IOMod utility application under the IOMod settings tab (Fig. 5.2.7.8 )

image-1738680499017.pngFig. 5.2.7.8 Swap grouped outputs settings

Invert outputs

Enables logical inversion of signal states. If the user wants the output status to display as "ON" when the output is not activated, the output can be logically inverted.

When output inversion is enabled, the output state will show 1 (ON) when when the output is not activated and will change to 0 (OFF) when the output is activated.

Note: The output indication LEDs are not affected by this inversion and will continue to reflect the actual signal state.

Example:
DO2 has output inversion enabled in the IOMod Utility application. Both outputs, DO1 and DO2, are activated, and the LEDs on the IOMod are lit for both outputs. However, on the SCADA system:

  • DO1 will be displayed as "1" (ON).
  • DO2 will be displayed as "0" (OFF) due to the output inversion setting.

Output inversion can enabled via IOMod utility application under the IOMod settings tab (Fig. 5.2.7.9)

image-1738680582732.png

Fig. 5.2.7.9 output inversion settings 

Output short and long pulse

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.

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). Short and long pulse interval is set in milliseconds.

Output short and long pulse interval can be set via IOMod utility application under the IOMod settings tab (Fig. 5.2.7.10)

image-1738680698970.pngFig. 5.2.7.10 Short and long output pulse settings

Select Before Operate (SBO)

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 DO1. First, they issue a select command to DO1. After the selection is acknowledged, the user sends an execute command to activate DO1 output. If the command is successful, 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 which ensures that the operation is not immediately executed but is instead delayed to allow for confirmation or review before the operation is carried out.

Select Before Operate can be enabled via IOMod utility application under the IOMod settings tab (Fig. 5.2.7.11)

image-1738682526011.png

Fig. 5.2.7.11 Select before operate settings

5.3 IEC 60870-5-103 protocol operational information

Introduction
IEC 60870-5-103 (IEC103) is a communication protocol specifically designed for protection equipment in power systems, enabling communication between a master station and slave devices such as protection relays and Remote Terminal Units (RTUs). This protocol ensures efficient and reliable data exchange, focusing on events, fault records, and protection settings.

The IOMod 8DI8DO utilizes the IEC103 protocol to transmit data in a standardized format. Signals are mapped to predefined Information Object Addresses (IOA) and Type Identifiers (TI). The protocol is optimized for transferring detailed information, such as event-driven data and device status updates, ensuring precise monitoring and control of power system protection devices.

5.3.1 Initialization

The IOMod utilizes a standard IEC 60870-5-103 communication scheme. Initialization, control messages, and queries are initiated by the master (controlling station), while the IOMod device (controlled station) responds to these requests.

  1. Reset Frame Count Bit (Reset FCB):

    • The master sends a "Reset FCB" command (function code = 7) to ensure a fresh communication state.
    • The IOMod responds with an ACK (Acknowledgment, function code = 0) if the request is successfully processed.
  2. Link Status Check:

    • The master sends a "Request Status of Link" message (function code = 9) to verify the availability of the link.

    • The IOMod responds with:

      • "Status of Link" (function code = 11) if the link is available, including the ACD flag if additional data is ready to be sent.
      • No response if the link is unavailable.
  3. Link Reset:

    • After confirming the link status, the master sends a "Reset of Remote Link" command (function code = 0) to reset the communication link.

    • The IOMod may respond with either:

      • ACK (Acknowledgment, function code = 0) to confirm the reset, or
      • NACK (Negative Acknowledgment, function code = 1) if the reset is unsuccessful.
  4. Completion:
    • Once the link is reset and the master receives an acknowledgment (ACK), initialization is complete. The master can now proceed with data exchange or other communication defined by the IEC 60870-5-103 protocol.

5.3.2 Data polling

Once the initialization process is complete, the master can poll the IOMod device using both Class 1 and Class 2 requests: Class 2 requests are used by the master to poll cyclic data. When no spontaneous data exists, the IOMod device responds with normal cyclic data. If spontaneous data exists, the IOMod device sets the Access Demand flag, prompting the master to send a Class 1 request.

Class 1 Requests are used to retrieve priority or event-driven data. Upon receiving the first Class 1 request, the IOMod device sends an identification string. If there are any pending spontaneous messages, the IOMod prioritizes sending them before transmitting the identification string.

5.3.3 Input messages

When input status changes, IOMOD device filters input glitches through filters with a user configurable filter time. When the filter is passed device sends “Spontaneous” message with “Function type” as input address (default function type of inputs – 253), and “Info number” as input pin number (1-8 accordingly). Please note that spontaneous messages are answered with a four-byte time structure not containing date info. Controlling station should therefore be able to handle the signals sent before the start of a new day.

5.2.4 Output control

To enable or disable outputs master (controlling station) sends commands conforming to the IEC-60870-5-103 protocols. The function type of the output commands has to be 254. Info number represents the number of output pins (1-8 accordingly).

5.3.5 Time synchronization

To initiate the time synchronization between devices master must send variable frame which includes:

  • Function code "3"
  • Type Identification “6” (Time synchronization)
  • Info number "0"
  • Cause of Transmission “8” 
    • The frame must include a 7-byte time structure to synchronize the clock. The IOMod acknowledges the synchronization command with a time-tagged response.
5.3.6 General Interrogation (GI)

General Interrogation is used to retrieve the complete dataset from the IOMod device. The master must send a variable frame with:

  • Function code: 3  ("User Data with ACK")
  • Type Identification "7" (Initialization of general interrogation)
  • 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 states of inputs. Pin numbers are represented by the Info Number fields in the packets. Finally, the slave sends an End of GI message:

  • Cause of Transmission: 10
  • Type Identification8 (General interrogation)
5.3.7 Device settings for IEC 60870-5-103 protocol

IOMod 8DI8DO configuration is performed via IOMod Utility application (the manual can be accessed here).

image-1738150245179.png

Fig 5.3.7.1 Communication settings on the IOMod utility application

For IEC 60870-5-103 protocol users can set: Link address, baudrate, parity, stop bits, terminating resistor and bit wait time, time synchronization timeout, and input function using the IOMod utility application (Fig 5.3.6.1) See the table below for parameter ranges and default values for IEC 60870-5-103 protocol (Fig 5.3.6.2) 

Parameter

Range

Default values

Link address

1-256

1

Baudrate 600, 1200, 2400, 4800, 9600, 19200, 28800, 38400, 57600, 76800, 115200 19200
Parity None, Odd, Even, Mark, Space Even
Stop bits 1, 2 1
Terminating resistor Enable or disable disabled
Bit wait time for packet 8-256 8
Time synchronization timeout (s) 1-65535 300
Input function
253

Fig 5.3.7.2 parameter ranges and default values of IOMod

General IOMod settings

More device parameters can be changed with IOMod utility application under IOMod settings tab. For the IEC 60870-5-103 protocol user can enable: input/output grouping, swap grouped inputs/outputs, invert inputs/outputs, filter inputs and set output pulse time.

Input Grouping

Certain applications require combining two inputs into a single DPI input. This is done by grouping two neighboring pins, where the first pin in the pair must be odd-numbered . When grouped, the second pin in the pair is not used anymore – all requests to this pin will generate an error.

Example:

  • Valid: IN1 and IN2 (IN2 becomes unused).
  • Invalid: IN2 and IN3.

image-1738670365941.png

Input grouping can be achieved via IOMod utility application under the IOMod settings tab (Fig. 5.3.7.3) 

image-1738669660521.png

Fig. 5.3.7.3 Input grouping settings on IOMod utility app

Swap grouped inputs

Grouped inputs are referred to as Double Point Information (DPI). DPI signals consist of two bits of information, allowing for four possible states, thus providing more detail compared to single-point inputs. For example: The INDETERMINATE state might indicate that part of the equipment is turned off or that a mechanical component responsible for switching is stuck between states. The ERROR state could signify that both contacts are connected, possibly indicating a short circuit in the equipment.

Value Representation
00 INDETERMINATE
01 OFF
10 ON
11 ERROR

Practical usage example of Swap Grouped Inputs setting: In a typical configuration, an active IN1 indicates the OFF position, and an active IN2 indicates the ON position. However, if a technician accidentally mismatches the cables during installation, resulting in IN1 indicating ON and IN2 indicating OFF, the Swap Grouped Inputs setting allows the positions of the inputs to be swapped without requiring any physical reconnection of the cables.

Swap grouped inputs can be enabled  via IOMod utility application under the IOMod settings tab (Fig. 5.3.7.4)

image-1738669691616.pngFig 5.3.7.4 Swap grouped inputs setting on IOMod utility application

Input inversion

Enables logical inversion of signal states. If the user wants the input status to display as "ON" when the input signal is in a low state, the inputs can be logically inverted

When input inversion is enabled, the input state will show 1 (ON) when no signal is connected and will change to 0 (OFF) when the input is activated.

Note: The input indication LEDs are not affected by this inversion and will continue to reflect the actual signal state.

Example:
Input 2 has input inversion enabled in the IOMod Utility application. Both inputs, IN1 and IN2, are physically activated, and the LEDs on the IOMod are lit for both inputs. However, on the SCADA system:

  • IN1 will be displayed as "1" (ON).
  • IN2 will be displayed as "0" (OFF) due to the input inversion setting.

Input inversion can enabled via IOMod utility application under the IOMod settings tab (Fig. 5.3.7.5)

image-1738669764103.png

Fig. 5.3.7.5 Input inversion setting on IOMod utility application

Input Filtering

The filter time specifies the duration for which the input must remain stable before a status change is transmitted. The time interval is set in milliseconds. The default interval is 50ms.

Input filter time can be set in the IOMod utility application under the IOMod settings tab (Fig. 5.3.7.6) 

image-1738669807539.png

Fig. 5.3.7.6 Input filter time setting on IOMod utility application

Output grouping

Certain applications require combining two outputs into a single (DPI) output. This is done by grouping two neighboring pins, where the first pin in the pair must be odd-numbered. When grouped, the second pin in the pair is not used anymore – all requests to this pin will generate an error.

Example:

  • Valid: DO1 and DO2 (DO2 becomes unused).
  • Invalid: DO2 and DO3.

The function type of the output commands has to be 254. Info number represents the number of output pins (1-8 accordingly).

 
  • 1: DO1 and DO2 pair
  • 3: DO3 and DO4 pair
  • 5: DO5 and DO6 pair
  • 7: DO7 and DO8 pair

Output grouping can be enabled via IOMod utility application under the IOMod settings tab (Fig. 5.2.7.7)

image-1738679483307.pngFig. 5.2.7.7 Group outputs settings

Swap grouped outputs

If desired, output groups can be swapped. Grouped 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 DO1 and DO2 are grouped, you can swap their positions so that DO2 becomes the first in the pair. 

Swap grouped outputs can be enabled via IOMod utility application under the IOMod settings tab (Fig. 5.2.7.8 )

image-1738680499017.pngFig. 5.2.7.8 Swap grouped outputs settings

Invert outputs

Enables logical inversion of signal states. If the user wants the output status to display as "ON" when the output is not activated, the output can be logically inverted

When output inversion is enabled, the output state will show 1 (ON) when when the output is not activated and will change to 0 (OFF) when the output is activated.

Note: The output indication LEDs are not affected by this inversion and will continue to reflect the actual signal state.

Example:
Output 2 has output inversion enabled in the IOMod Utility application. Both outputs, DO1 and DO2, are activated, and the LEDs on the IOMod are lit for both outputs. However, on the SCADA system:

  • DO1 will be displayed as "1" (ON).
  • DO2 will be displayed as "0" (OFF) due to the output inversion setting.

Output inversion can enabled via IOMod utility application under the IOMod settings tab (Fig. 5.2.7.9)

image-1738680582732.png

Fig. 5.2.7.9 output inversion settings 

Output short pulse

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.

The IEC103 protocol has settings short pulse commands. Short pulse interval is set in milliseconds The default value is 1000 ms, Setting the value to 0 will disable the pulse function.

Output short pulse can be set via IOMod utility application under the IOMod settings tab (Fig. 5.2.7.10)

image-1738749699668.png

Fig. 5.2.7.10 output pulse settings