# IOMOD 16DI User Manual Modbus ### Introduction 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 ideal solution for applications such as data acquisition, observation, 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. ### Features - 16 digital inputs with configurable active signal polarity, or input inversion; Pulse count and ON time count - Galvanically isolated inputs - Configurable over USB - Drag And Drop firmware upgrade over USB - RS485 communication - LED input indications, + Data transmission (Rx and Tx) indication. - Small sized case with removable front panel - DIN rail mount - Operating temperature: from -30 to +70°C - Power Requirements: 12-24 VDC ### Device operational information IOMOD 16DI uses Modbus (RTU) or IEC 60870-5-103 protocol over the RS485 interface. The protocol used by the device can be changed by uploading the corresponding firmware. Default communication settings are: 9600 baudrate, 8N1, Slave address - 1. #### Status LED Status LED can be in 2 colors : Blue - Device connected to USB. Green - Normal operation. #### Rx/Tx LED The RX/TX LED on the IOMod flashes when data is either being transmitted or received via the RS485 port. ### MODBUS operational information To read all input statuses, send 02 Modbus command (Read Discrete Inputs) 03 Modbus command with resolution of first register (0) and a size of 16. Returned value will show 16 input states. To read all input registers’ values, send 04 Modbus command (Read input registers) with resolution of first register (0) and size of 80. Returned data will show pulse count (first register) and ON time (2nd and 3rd registers) for each input – pulse count of input #2 will be at register 4th, and so on. ON time will be shown as seconds. ON time and pulse count will increase when input pulse is longer than Filter time, which is configured by user in USB terminal menu. Shorter pulses will be ignored in both pulse and ON time registers. From software version 1.10, as capacity of input counter expanded to 32-bits, additional 32 registers depict such wider values in registers 00048-00079. All these registers can be set by using 06 Modbus command. To invert input states by software, configure device over USB terminal. Modbus commands one may use are shown in table below. ### Supported MODBUS functions 02 (0x02) Read Discrete Inputs Reads status of digital inputs (Off or On). IOMOD 16DI has 16 digital inputs from address 0 to address 0xF; These inputs are active-high or active-low according to supply given to reference input. User can turn on logical input inversion (through USB). 03 (0x03) Read Holding Registers Lets user read counter/timer values dedicated to digital inputs. There are 80 MODBUS registers. Values held in these registers are explained in a table below. There are two types of values - Pulse Counter and On Timer, the latter calculating the time that respective input was held in its active state. 04 (0x04) Read Input Registers Lets user read counter/timer values dedicated to digital inputs. There are 80 MODBUS registers. Values held in these registers are explained in a table below. There are two types of values - Pulse Counter and On Timer, the latter calculating the time in seconds that respective input was held in its active state. This function is deprecated and mirrors function 0x03 to conform to past versions of IOMOD 16DI. 06 (0x06) Preset Single Register Sets single register. Register addresses are identical to *“Read Input Registers”* addresses. ### Modbus register mapping table
**Register** **Description** **Value range**
**Read discrete inputs (02)**
00000-00015 Reading digital inputs DI1-DI16 0-65535
**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
... ...
00045 Pulse count for DI16, Least Significant Word 0-65535
00046-00047 On time, in seconds, for DI16, Least Significant Word first 0-65535
00048-00079 Pulse count for DI1-DI16, Least Significant Word First 0-65535
\*It is advised to set most significant word of counter/timer first ### Testing With “THE VINCI” software To test IOMOD with default settings, user connects device through RS485 to Modbus master. Example using “The Vinci Expert” device as serial interface converter and adapter to PC with “The Vinci” software. Default settings for Modbus – 9600 baudrate; 8 data, no parity, 1 stop bit. When opening “The Vinci” software, choose Modbus serial – Master mode. In settings tab, choose station number (default – 1); configure tags (as described in section 2. Device working information); Press start and go to “Statistic” tab: [![image-1623934325077.png](https://wiki.elseta.com/uploads/images/gallery/2021-06/scaled-1680-/image-1623934325077.png)](https://wiki.elseta.com/uploads/images/gallery/2021-06/image-1623934325077.png)Fig. 3.1. Statistic tab in “The Vinci” application for Modbus communication As seen in Fig. 3.1, Inputs are shown with info numbers 1-16, and function type - 160. GI, time synchronization options can be found at right side of the program, in “System” tab. Fig. 3.2 shows 1st + 2nd , 5th + 6th and 11th + 12th Inputs grouped (notice order of info numbers). These pairs is shown INTERM (00) because both inputs of pair are off (giving binary representation of 00b). [![image-1623934360802.png](https://wiki.elseta.com/uploads/images/gallery/2021-06/scaled-1680-/image-1623934360802.png)](https://wiki.elseta.com/uploads/images/gallery/2021-06/image-1623934360802.png) Fig.3.2. Statistic tab in “The Vinci” application for IEC-60870-5-103 ### Technical information
**System**
1.Dimensions 101 x 119 x 17.5, mm
2.Case ABS, black
3.Working environment Indoors
4.Working temperature -30 ⎟ +70°C
5.Recommended operating conditions 5 – 60°C and 20 – 80%RH;
6.Configuration USB
7.Firmware upgrade USB – mass storage device
**Electrical specifications**
8.Inputs 16 X 2kV isolated 12-24VDC; ESD protected; Selectable inversion.
**Power**
9.Power Supply 9V to 33V
10\. Current consumption 50mA @ 12VDC, 25mA @ 24VDC
### Mounting and installation guide ##### IOMOD 16DI RS485 interface IOMOD 16DI has 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. [![image-1623934557580.png](https://wiki.elseta.com/uploads/images/gallery/2021-06/scaled-1680-/image-1623934557580.png)](https://wiki.elseta.com/uploads/images/gallery/2021-06/image-1623934557580.png) Fig. 5.1. Connection example 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. [![image-1651664405242.png](https://wiki.elseta.com/uploads/images/gallery/2022-05/scaled-1680-/image-1651664405242.png)](https://wiki.elseta.com/uploads/images/gallery/2022-05/image-1651664405242.png) Fig. 5.2. Input configuration example User can setup inputs to be driven by 0V (active low) signal (see Fig. 5.3). With this configuration, user will see inputs connected to 0V as “high” or state “1”, input status LED will glow. [![image-1651664414507.png](https://wiki.elseta.com/uploads/images/gallery/2022-05/scaled-1680-/image-1651664414507.png)](https://wiki.elseta.com/uploads/images/gallery/2022-05/image-1651664414507.png) Fig. 5.3. Configuration of inverted inputs ### Configuration over USB ##### Driver installation Device requires USB drivers to work as virtual com port. First-time connection between device and computer could result in “Device driver software was not successfully installed” error (Fig. 6.1). [![image-1623934684137.png](https://wiki.elseta.com/uploads/images/gallery/2021-06/scaled-1680-/image-1623934684137.png)](https://wiki.elseta.com/uploads/images/gallery/2021-06/image-1623934684137.png)Fig. 6.1. Device driver error message 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 (Fig 6.2). [![image-1623934717824.png](https://wiki.elseta.com/uploads/images/gallery/2021-06/scaled-1680-/image-1623934717824.png)](https://wiki.elseta.com/uploads/images/gallery/2021-06/image-1623934717824.png)Fig. 6.2. Manually searching for device drivers 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). [![image-1623934741093.png](https://wiki.elseta.com/uploads/images/gallery/2021-06/scaled-1680-/image-1623934741093.png)](https://wiki.elseta.com/uploads/images/gallery/2021-06/image-1623934741093.png)Fig. 6.3. Contents of device drivers’ folder ##### 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: [![image-1623934780787.png](https://wiki.elseta.com/uploads/images/gallery/2021-06/scaled-1680-/image-1623934780787.png)](https://wiki.elseta.com/uploads/images/gallery/2021-06/image-1623934780787.png)Fig. 6.4. Main menu example of configuration program via CLI Navigation is performed by sending number to terminal. User then proceeds by following further on-screen instructions. For example, to set Baudrate, 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 Modbus
**Menu Name** **Function** **Values** **Default Values**
1\. Slave Address Modbus Slave address / ID 1-247 (default: 1)
2\. Communication settings Enters baudrate, data and parity bit, termination resistor screen - (default: 9600; 8+1+N; termination resistor - on)
3\. Input State Inversion Input inversion (Inverts input states in modbus) 0 - 1 (off/on) (default: 0)
5\. Input Filter time Configures input pulse filter time 0 – 256000 (milliseconds) (default: 100)
6\. Input counter restart Restarts all input counter registers to 0 (1 to confirm, 0 to cancel) -
7\. Set Default Settings Sets Default Settings (1 to confirm, 0 to cancel) -
8\. Firmware Upgrade Mass Storage Device Firmware Upgrade (1 to confirm, 0 to cancel) -
9\. Diagnostics Input states - -
0\. Exit Exit and disconnect - -
##### Protocol simulator After entering 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 Modbus commands will be accepted only from USB. To exit this mode user must restart device. ##### Firmware upgrade over USB [![image-1623914467899.png](https://wiki.elseta.com/uploads/images/gallery/2021-06/scaled-1680-/image-1623914467899.png)](https://wiki.elseta.com/uploads/images/gallery/2021-06/image-1623914467899.png)It is recommended to close terminal window when entered firmware upgrade mode. [![image-1623935180203.png](https://wiki.elseta.com/uploads/images/gallery/2021-06/scaled-1680-/image-1623935180203.png)](https://wiki.elseta.com/uploads/images/gallery/2021-06/image-1623935180203.png)Fig. 6.5. Reconnecting as a mass storage device User then must delete existing file “firmware.bin”, and simply upload new firmware file by drag and drop. [![image-1623935213196.png](https://wiki.elseta.com/uploads/images/gallery/2021-06/scaled-1680-/image-1623935213196.png)](https://wiki.elseta.com/uploads/images/gallery/2021-06/image-1623935213196.png)Fig. 6.6 Reconnect device, check firmware version and **set default settings**.