Skip to main content

IOMOD 16DI User Manual IEC 60870-5-103


IOMOD 16DI is small sized stand-alone Modbus (RTU) or IEC 60870-5-103 digital input controller. IOMOD is used for industrial applications, where digital signaling is used and robust communication is needed. IOMOD is an ideal solution for applications such as data acquisition, observation, control, process monitoring, testing and measurement at remote places.  It is controlled over Modbus or IEC 60870-5-103 protocol, and can be used with any SCADA system.


  • 16 digital inputs;
  • Configurable active input signal polarity or input inversion;
  • Galvanically isolated inputs;
  • Configuration over USB console;
  • Drag and Drop firmware upgrade over USB mass storage;
  • Modbus, IEC-60870-5-103 communication over RS485;
  • Values with data and time information;
  • Time synchronization over IEC-60870-5-103;
  • Software selectable termination resistor on RS485;
  • LED indication for input and data transmission;
  • Easy integration with WCC Lite gateway and platform

Operational information

IOMOD 16DI uses Modbus (RTU) or IEC 60870-5-103 protocol over RS485 interface. Protocol used by device can be changed by uploading a corresponding firmware. Default communication settings are: 9600 baud rate, 8N1, Slave address - 1.

Status LED

Status LED can be in 2 colors :

Blue - Device connected to USB.

Green - Normal operation.


The RX/TX LED on the IOMod flashes when data is either being transmitted or received via the RS485 port.

IEC 60870-5-103 description


IOMOD uses a standard IEC-60870-5-103 communication scheme. Initiation, control messages and queries are initiated by the master (controlling station), while IOMOD device (controlled station) only answers these requests. Therefore, the first message should be sent by master to start/restart communication (RESET CU or LINK RESET FCB). This message is answered by IOMOD with an acknowledgement (ACK) to enable master to proceed with sending other messages defined by IEC-60870-5-103 protocol. Other messages are ignored until a successful initialization has taken place.

IOMOD 8DI8DO configuration can be changed over USB interface with terminal console like PuTTY or similar.

Data polling:

When initialization is complete, master may poll IOMOD device with both Class 1 and Class 2 requests. Class 2 is used when master polls for a cyclic data. Controlled device answers with a message containing Access Demand flag when spontaneous data exists and master then sends request for Class 1. IOMOD would then respond with time-tagged message.

On 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.

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 – 160), and “Info number” as input pin number. 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.

Time synchronization:

To initiate the time synchronization between devices master must send variable frame, with function code “User data with ACK”, ASDU type “6” and Cause of Transmission “8”. Info elements must contain the 7-byte time structure.

As per IEC-60870-5-103 protocol specification time synchronization can be completed for multiple devices using broadcasting messages. It is included in IEC-60870-5-103 firmware since version 1.7.3. To broadcast time synchronization message, link address should be equal to 255.

General interrogation:

General Interrogation (GI) is initiated by the master with variable frame, including function code “3” (User data with ACK), ASDU type “7” and Cause of Transmission “9”. Slave device then responds with an acknowledgement (ACK). Master gets GI data by polling with Class 2 request till slave transmits “End of GI” (Cause of Transmission – “10”). IOMOD device responds with a time-tagged message, including DPI states of inputs and outputs (Outputs are sent first). Output and input numbers are represented by “Info number” in protocol.

Device configuration

Input inversion and polarity selection:

Input polarity selection (active signal selection) is done by connecting appropriate supply to COM pin. Further explained in section 5: Mounting and installation guide.

Input inversion does logical inversion of signals.

Input grouping:

Sometimes two inputs must be captured as one DPI input. Inputs can be grouped into pairs of two. Only two neighbour pins can be grouped into pair, while first pin in pair must be an odd number pin. When grouped, second pin in the pair is not used anymore – all request to this pin generate an error. For example – IN1 and IN2 can be grouped, after that IN2 is not used; IN2 and IN3 cannot be grouped; IN3 and IN4 can be grouped, but IN4 is not used, etc.

Fig. 3.1 shows inputs ungrouped and controlled independently. In this mode, General Interrogation will be composed of 16 input states. Notice +VIO and –VIO connection: when COM is connected to negative power supply voltage, inputs are controlled by positive voltage.


In addition to this, Fig. 3.2 shows 1st + 2nd and 11th + 12th inputs are grouped into pair. Now, General Interrogation will be composed of 14 input states (with IN2 and IN12 missing). Input numbers is represented by “Info number” in protocol. Here, COM is connected to positive voltage of power supply and inputs are controlled by negative voltage.


Input filter:

Input filter is a simple input glitch filter with a time input. This filter time corresponds to time that input must achieve without changing state before sending status change.

Addressing configuration:

Devices Input address is configurable. This addresses in IEC 60870-5-103 protocol is considered as “Function Type”. Input address is 160 by default.

Device is addressed in the line as “Link address”, which is 1 by default.

Testing With “THE VINCI” software

To test IOMOD with default settings, user connects device through RS485 to IEC 60870-5-103 master. Example using “The Vinci Expert” as serial interface converter and adapter to PC with “The Vinci” software. When opening “The Vinci” software, choose IEC 60870-5-103 – Master mode. Initial settings – 9600 baud rate; 8 data, no parity, 1 stop bit. Press Start, send Time synchronization, General interrogation and go to the “Statistic” tab:

As seen in Fig. 3.3, Inputs are shown with info numbers 1-16, function type - 160.

General Interrogation, Time Synchronization options can be found at right side of the program, in the “System” tab.


Fig. 3.4 shows 1st + 2nd, 5th + 6th and 11th + 12th inputs grouped (notice order of info numbers). These pairs are shown INTERM (00) because both inputs of pair are off (giving binary representation of 00b).


Technical information



101 x 119 x 17.5, mm


IP20, blend PC/ABS self-extinguishing, black

Working environment


Operating temperature

-40 ¸ +85°C


5-95% RH (non-condensing)


USB – serial console

Firmware upgrade

USB – mass storage device

Electrical specifications


16 X 3kV isolated 12-24VDC;
Selectable inversion.


Power Supply

9V to 33V

Current consumption

130 mA

Mounting and installation guide

IOMOD 16DI RS485 interface

IOMOD 16DI has an integrated 120Ω termination resistor which can be enabled or disabled over USB configuration. It is recommended to use termination at each end of the RS485 cable. See typical connection diagram on Fig. 5.1.


IOMOD 16DI has 1/8 Unit load receiver which allows to have up to 256 units on line (compared to standard 32 units). To reduce reflections, keep the stubs (cable distance from main RS485 bus line) as short as possible when connecting device.

IOMOD 16DI inputs

Typical application of IOMOD 16DI inputs is shown on Fig. 5.2. When default configuration for inputs is applied, user will see inputs connected to +12-24V as “high” or state “1” and input status LED will glow.


User also can configure to enable pull-up resistors (function is applied for all inputs) and software input inversion. With this configuration, user will see inputs connected to 0V (see Fig. 5.3) as “high” or state “1”, input status LED will NOT glow

Configuration over USB

Driver installation

Device requires USB drivers to work as a Virtual COM port. First-time connection between device and computer could result in “Device driver software was not successfully installed” error.


User then manually installs drivers by selecting downloaded driver folder:
Go to Control Panel -> Device Manager;
Select failed device;
Press “Update driver software”; following screen should appear:


Select “x86” driver for 32bit machine, or x64 for 64bit machine. If not sure, select root folder (folder in which x64 and x86 lays inside).


IOMOD configuration with PuTTY terminal

Configuration of IOMOD device is done through CLI (Command Line Interface) on virtual COM port. Drivers needed for MS Windows to install VCOM will be provided. To open up CLI simply connect to specific V-COM port with terminal software (advised to use PuTTY terminal software. If other software is being used, user might need to send <return> symbol after each command). When connected user should immediately see main screen as in Fig. 6.4.


Navigation is performed by sending number to terminal. User then proceeds by following further on-screen instructions. For example, to set baud rate, press [2] to enter Baudrate screen; press [1] to edit; enter new configuration; press [RETURN] to save, or [ESC] to cancel changes. When done, press [0] (exit) before disconnecting device. Default values is set by pressing [6] on main screen, and confirming changes [1].

If accidentally closed the terminal window, user can connect terminal program again, and press any key on keyboard to show up main menu.

Main menu contains various possibilities of device configuration. A user can configure Link Address (Fig. 6.5), set communication settings (Fig. 6.6), change the input type (address) for input values (Fig. 6.7), change which input values are inverted (Fig. 6.8).






Main Menu


Menu Name



Default Values


Link Address

Setts Link address




Baudrate, Parity and stop bits

Enters configuring screen for communication settings

8+1 or 8+2 (Data+Stop),

None, Odd, Even, Mark, Space (Parity)


8+1, Parity -None


Data addressing config

Enters configuring screen for Input address (function type)

1 – 255



RS485 Terminating Resistor

RS485 120 Ohms Terminating Resistor

0 - 1 (off/on)



Input state inversion

Input inversion (Inverts input states in protocol logic)

0 - 1 (off/on)

0 (not inverted)


Input configure

Enters screen for configuring (see 6.1 – 6.5 rows below)




Input grouping;

Groups or ungroups inputs

16 inputs ungrouped / 8 pairs grouped

All inputs ungrouped by default


Input filter time;

Input glitch filter – minimum stable time to detect input

1 – 60000 milliseconds



Set Default Settings

Sets Default Settings

(1 to confirm, 0 to cancel)



Firmware Upgrade

Mass Storage Device Firmware Upgrade

(1 to confirm, 0 to cancel)




Input states





Exit and disconnect



Protocol simulator

When entered diagnostics screen, user can turn on protocol simulator by pressing [9]. When protocol simulator is turned on, device will communicate through USB port rather than RS-485 line. Communication on RS-485 line is closed and all IEC-103 commands will be accepted only from USB. To exit this mode user must restart device.

Firmware upgrade over USB

To update device firmware user must enter main configuration menu.
Enter Firmware update screen by pressing [4];
Confirm update by pressing [1];
Device now enters Firmware Upgrade mode.


Device reconnects as mass storage device:


User then must delete existing file “firmware.bin”, and simply drag and drop new firmware file.


Reconnect device, set default settings and check firmware version in Diagnostics screen.