# IOMOD 8DI8DO # IOMOD 8DI8DO User Manual Modbus ### Introduction IOMOD 8DI8DO is a compact size stand-alone Modbus (RTU) or IEC 60870-5-103 digital input and digital output 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, 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. ### Features - 8 digital inputs with configurable active signal polarity, or input inversion; Pulse count and ON time count - 8 digital open collector outputs for relays - Galvanically isolated inputs and outputs - Configurable over USB - Drag And Drop firmware upgrade over USB - RS485 communication - LED input / output indications, + Data transmission (Rx and Tx) indication. - Spring contact connectors - Small sized case with removable front panel - DIN rail mount - Operating temperature - Power Requirements: 12-24 VDC ### Device operational information IOMOD 8DI8DO 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 3 colors : Red - Missing power souce to the outputs. 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 output status, send 01 Modbus command (Read Coils) with resolution of the first register (0), and size of 8. Returned value will show all 8 output states (1 - turned On, 0 - turned Off). To read input status, send 02 Modbus command (Read Discrete Inputs) with resolution of first register (0) and size of 8. Returned value will show 8 input states. To read input counter values, send 04 Modbus command (Read Input Registers) or 03 Modbus command (Read Holding Registers) with resolution of first register (0) and size of 24. 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 16 registers depict such wider values in registers 00023-00039. These input counter values can be changed by using 06 Modbus command. To turn single output on or off, send command 05 (Write Single Coil), with output address (0 to 7). To turn output on – send hex value FF00; to turn off – hex value 0000. To turn multiple outputs on or off, use command 15 (Write Multiple Coils), and send binary coded value for 8 coils at address (0) and length 8. To invert input states by software, or to use pull-up resistors on inputs, configure device over USB terminal. Useable Modbus commands shown in table below. ## Supported MODBUS functions 01 (0x01) Read Coil Status Reads status of relays (Off or On). IOMOD 8DI8DO has 8 digital outputs from address 0 to address 7. 02 (0x02) Read Discrete Inputs Reads status of digital inputs (Off or On). IOMOD 8DI8DO has 8 digital inputs from address 0 to address 7; These inputs are active-high by default; user can turn on pull-up resistors (through USB) to these inputs to make them active-low. 03 (0x03) Read Holding Registers Lets user read counter/timer values dedicated to digital inputs. There are 40 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. 05 (0x05) Write Single Coil Sets single digital output On or Off. Output addresses from 0 to 7 (first output – address 0, last output – address 7). 06 (0x06) Preset Single Register Sets single register. Register addresses is identical to *“Read Input Registers”* addresses. 15 (0x0F) Write Multiple Coils Sets multiple digital output On or Off. Output addresses from 0 to 7 (first output – address 0, last output – address 7). ### Modbus register mapping table
**Register****Description****Value range**
**Read coil status (01)**
00000-00007Reading digital outputs DO1-DO80 - 255
**Read discrete inputs (02)**
00000-00007Reading digital inputs DI1-DI80 - 255
**Read holding register (03), Read input register (04), Preset Single Register (06)**
00000Pulse count for DI1, Least Significant Word0 - 65 535
00001-00002On time, in seconds, for DI1, Least Significant Word first\*0 - 4 294 967 295
.........
00021Pulse count for DI8, Least Significant Word0 - 65 535
00022-00023On time, in seconds, for DI8, Least Significant Word first\*0 - 4 294 967 295
00024-00039Pulse count for DI1-DI8, Least Significant Word first\*0 - 4 294 967 295
**Write single coil (05)**
00000-00007Writing digital outputs DO1-DO80x0000 / 0xFF00
**Write multiple coils (15)**
00000-00007Writing multiple digital outputs DO1-DO80 - 255
\*It is advised to set most significant word of counter/timer first ### Testing With “THE VINCI” software To test IOMOD with default settings for Modbus, 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 3.A. Modbus working information); Press start and go to “Statistic” tab: [![image-1623932363054.png](https://wiki.elseta.com/uploads/images/gallery/2021-06/scaled-1680-/image-1623932363054.png)](https://wiki.elseta.com/uploads/images/gallery/2021-06/image-1623932363054.png) Fig. 3.1. Statistic Tab in “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 baudrate; 8 data, no parity, 1 stop bit. Press start, send time synchronization, General interrogation and go to “Statistic” tab: ![image-1623932386558.png](https://wiki.elseta.com/uploads/images/gallery/2021-06/scaled-1680-/image-1623932386558.png)Fig. 3.5 As seen in Fig. 3.5, Outputs and inputs are shown with info numbers 1-8, and function type is 128 and 160 respectively. GI, time synchronization and general command options can be found at right side of the program, in “System” tab. Output commands are controlled by “General command” window at right side of the program, in “System” tab, with Output address (Function type) 128, and output number (Info number). Fig. 3.6 shows 1st and 6th output command sent and “CMD ACK” response received. Fig. 3.7 shows first 4 Outputs and last 4 Inputs grouped (notice order of info numbers). ![image-1623932426174.png](https://wiki.elseta.com/uploads/images/gallery/2021-06/scaled-1680-/image-1623932426174.png) Fig. 3.6 ![image-1623932454950.png](https://wiki.elseta.com/uploads/images/gallery/2021-06/scaled-1680-/image-1623932454950.png)Fig. 3.7 ### Technical information
**System**
1.Dimensions101 x 119 x 17.5, mm
2.CaseABS, black
3.Working environmentIndoors
4.Working temperature-30 ⎟ +70°C
5.Recommended operating conditions5 – 60°C and 20 – 80%RH;
6.ConfigurationUSB
7.Firmware upgradeUSB – mass storage device
**Electrical specifications**
8.Inputs8 X 2kV isolated 12-24VDC; Selectable inversion.
9.Outputs8 X 2kV isolated open collector outputs (300mA each, Max 50V);
**Power**
10.Power Supply9V to 33V
11.Current consumption38mA @ 12VDC, 20mA @ 24VDC
### Mounting and installation guide ##### IOMOD 8DI8DO RS485 interface IOMOD 8DI8DO 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-1623932730266.png](https://wiki.elseta.com/uploads/images/gallery/2021-06/scaled-1680-/image-1623932730266.png)](https://wiki.elseta.com/uploads/images/gallery/2021-06/image-1623932730266.png)Fig. 5.1. Connection example of RS485 interface IOMOD 8DI8DO 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 8DI8DO inputs Typical application of IOMOD 8DI8DO 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-1651651714870.png](https://wiki.elseta.com/uploads/images/gallery/2022-05/scaled-1680-/image-1651651714870.png)](https://wiki.elseta.com/uploads/images/gallery/2022-05/image-1651651714870.png) Fig. 5.2. Typical application User also can configure to enable internal input 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. [![image-1651652573327.png](https://wiki.elseta.com/uploads/images/gallery/2022-05/scaled-1680-/image-1651652573327.png)](https://wiki.elseta.com/uploads/images/gallery/2022-05/image-1651652573327.png) Fig. 5.3. Input configuration ##### IOMOD 8DI8DO outputs IOMOD 8DI8DO has 8 open collector digital outputs. Internal clamp diodes are connected to each output which makes IOMOD 8DI8DO ideal for driving inductive loads like relays. Maximum 300mA per output is allowed. For higher loads outputs can be connected in parallel. Make sure your power supply can provide enough power. Typical application of outputs is shown on Fig. 5.4 [![image-1651652598518.png](https://wiki.elseta.com/uploads/images/gallery/2022-05/scaled-1680-/image-1651652598518.png)](https://wiki.elseta.com/uploads/images/gallery/2022-05/image-1651652598518.png) Fig. 5.4. Output configuration ### 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. [![image-1623932913181.png](https://wiki.elseta.com/uploads/images/gallery/2021-06/scaled-1680-/image-1623932913181.png)](https://wiki.elseta.com/uploads/images/gallery/2021-06/image-1623932913181.png)Fig. 6.1. Device driver 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: [![image-1623932945155.png](https://wiki.elseta.com/uploads/images/gallery/2021-06/scaled-1680-/image-1623932945155.png)](https://wiki.elseta.com/uploads/images/gallery/2021-06/image-1623932945155.png)Fig. 6.2. Driver update screen 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-1623932971242.png](https://wiki.elseta.com/uploads/images/gallery/2021-06/scaled-1680-/image-1623932971242.png)](https://wiki.elseta.com/uploads/images/gallery/2021-06/image-1623932971242.png) Fig. 6.3. Driver folder for IOMOD device ##### 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 (Fig. 6.4.) [![image-1623933012594.png](https://wiki.elseta.com/uploads/images/gallery/2021-06/scaled-1680-/image-1623933012594.png)](https://wiki.elseta.com/uploads/images/gallery/2021-06/image-1623933012594.png)Fig. 6.4. Main configuration menu 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
**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 screen - (default: 9600; 8+1+N)
3.Input pull-up enable Enables input pull-up resistor. Inputs then activated by low signal 0 - 1 (off/on) (default: 1)
4.Input State Inversion Input inversion (Inverts input states in modbus) 0 - 1 (off/on) (default: 0)
5.Input filter time Filter for short input pulses 0 - 256000 (ms) (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 / Output 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 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 (Fig 6.5.).

It is recommended to close terminal window after entering firmware upgrade mode.

[![image-1623933576298.png](https://wiki.elseta.com/uploads/images/gallery/2021-06/scaled-1680-/image-1623933576298.png)](https://wiki.elseta.com/uploads/images/gallery/2021-06/image-1623933576298.png)Fig. 6.5. Mass storage device warning User then must delete existing file “firmware.bin”, and simply upload new firmware file by drag and drop. [![image-1623933602252.png](https://wiki.elseta.com/uploads/images/gallery/2021-06/scaled-1680-/image-1623933602252.png)](https://wiki.elseta.com/uploads/images/gallery/2021-06/image-1623933602252.png)Fig. 6.5. Dragging and dropping new firmware file Reconnect device and check firmware version. It should now represent the one it was updated to.# IOMOD 8DI8DO User Manual IEC 60870-5-103 ## Introduction IOmod 8DI8DO is a small size stand-alone Modbus RTU or IEC 60870-5-103 digital input and digital output controller (protocol depends on firmware). IOmod can be used for industrial applications, where digital signalling is used and robust communication is needed. IOmod is an ideal solution for applications such as data acquisition, control, process monitoring at remote places. This user manual is written for IEC 60870-5-103 protocol firmware version. ### Features
- 8 digital inputs; - Configurable active input signal polarity or input inversion; - 8 digital open collector outputs; - Galvanically isolated inputs and outputs; - Pulsed or latched mode for individual outputs; - Possible output feedback measurement with inputs; - Configuration over USB console; - Values with data and time information; - Time synchronization over IEC-60870-5-103; - Drag and Drop firmware upgrade over USB mass storage; - Modbus RTU, IEC-60870-5-103 communication over RS485; - Software-selectable line termination resistor on RS485; - LED indication for input/output and data transmission; - Easy integration with WCC Lite gateway and CloudIndustries.eu platform;
## Operational information IOmod 8DI8DO uses Modbus RTU or IEC 60870-5-103 protocol to communicate with master device over RS485 interface. Protocol used by device can be changed by uploading corresponding firmware. Default communication settings are: 9600 baud rate, 8N1, Link address – 1. IOmod 8DI8DO configuration can be changed over USB interface with terminal console like [PuTTY](https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html) or similar. #### Status LED Status LED can be in 3 colors : Red - Missing power souce to the outputs. 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. ### IEC 60870-5-103 working information #### Initialization 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 (7 (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. #### 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. #### Output control To control device outputs master (controlling station) sends command conforming to the IEC-60870-5- 103 protocols. It should contain output address which is 128 by default. Info number represents number of output pin, while info elements shows DPI information of output state (1 – off, 2 – on, 0 - intermediate and 3 – not used (defines error)). Successful command is accepted with a positive acknowledge. Negative acknowledge is returned if the output is already set or if another command for the same output is already in progress and hasn’t finished yet. #### 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 When active low signalling is needed, user can configure input polarity. When internal pull-up resistors are turned on, all input statuses are turned on. When low signal is connected to input, status of that input is turned off. If user desires to turn input status on, when that input signal is low, user then inverts inputs logically. All input indication LED’s stay the same (are not inverted). #### Input / Output grouping Sometimes two inputs or two outputs must be captured as one DPI input or output. Inputs and outputs can be grouped into the pairs of two. This allows outputs to be controlled by one DPI command (of address of first output in the group). 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 requests for this pin generate an error. For example – OUT1 and OUT2 can be grouped, after that OUT2 is not used; OUT2 and OUT3 cannot be grouped; OUT3 and OUT4 can be grouped, but OUT4 is not used, etc. [![image-1651649195941.png](https://wiki.elseta.com/uploads/images/gallery/2022-05/scaled-1680-/image-1651649195941.png)](https://wiki.elseta.com/uploads/images/gallery/2022-05/image-1651649195941.png) Picture shows outputs and inputs ungrouped and controlled independently. In this mode, General Interrogation will be composed of 8 output states and 8 input states. [![image-1651649208709.png](https://wiki.elseta.com/uploads/images/gallery/2022-05/scaled-1680-/image-1651649208709.png)](https://wiki.elseta.com/uploads/images/gallery/2022-05/image-1651649208709.png) In addition to this, picture shows first two outputs grouped into pair, while 3rd and 4th inputs are grouped into pair. Now, General interrogation will be composed of 7 output states (with OUT2 missing), and 7 input states (with IN4 missing). Output and input numbers is represented by “Info number” in protocol. #### Input filter Input filter is a simple glitch filter with time input. This filter time corresponds to stable time that input must achieve before sending a status change. #### Output pulse time User can configure outputs to be pulse controlled – it means that output will be turned on for configured amount of time. When this time runs out, output is turned off. This is useful when pulse toggle relays are used. Output pulse is independent from output grouping option and can be used on both grouped and ungrouped outputs. When output is grouped, device will allow only one command completion at a time – when output is already turned ON, other “turn ON” requests will be responded with NACK. If user desires latching outputs to be used, output pulse time is set to 0. [![image-1648639748729.png](https://wiki.elseta.com/uploads/images/gallery/2022-03/scaled-1680-/image-1648639748729.png)](https://wiki.elseta.com/uploads/images/gallery/2022-03/image-1648639748729.png) Picture shows example of pulse output usage. In this example inputs and outputs are grouped, and output pulse time is set to 1s. When user sends ON command, OUT2 is pulsed for 1s, and relay is set. This will connect NO contact and IN2 will turn on (assuming it is not inverted). When user sends OFF command, OUT1 is pulsed, and relay is reset, turning IN1 on. #### Addressing configuration Devices Output, Input and Output feedback addresses are configurable. This addresses in IEC 60870- 5-103 protocol are considered as “Function Type”. Output address and Output feedback address are 128 by default. Input address is 160 by default.

Device is addressed by “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.

To download The Vinci software please visit website: [https://the-vinci.com/](https://the-vinci.com/)

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: [![image-1601991100040.png](https://wiki.elseta.com/uploads/images/gallery/2020-10/scaled-1680-/image-1601991100040.png)](https://wiki.elseta.com/uploads/images/gallery/2020-10/image-1601991100040.png) As seen in picture, Outputs and inputs are shown with info numbers 1-8, and function types are 128 and 160 respectively. General Interrogation, Time Synchronization and General Command options can be found at right side of the program, in “System” tab. Output commands are controlled by “General command” window at right side of the program, in “System” tab, with Output address (Function type) 128, and output number (Info number). Picture shows 1st and 6th output command sent and “CMD ACK” response received. [![image-1601991166932.png](https://wiki.elseta.com/uploads/images/gallery/2020-10/scaled-1680-/image-1601991166932.png)](https://wiki.elseta.com/uploads/images/gallery/2020-10/image-1601991166932.png) Picture shows first 4 Outputs and last 4 Inputs grouped (notice the order of info numbers). [![image-1601991230099.png](https://wiki.elseta.com/uploads/images/gallery/2020-10/scaled-1680-/image-1601991230099.png)](https://wiki.elseta.com/uploads/images/gallery/2020-10/image-1601991230099.png) ## Technical information
**System**
1\. Dimensions 101 x 119 x 17.5, mm
2.Case IP20, blend PC/ABS self-extinguishing, black
3\. Working environment Indoors
4\. Operating temperature -40 ¸ +85°C
5\. Humidity 5-95% RH (non-condensing)
6\. Configuration USB – serial console
7\. Firmware upgrade USB – mass storage device
**Electrical specifications**
8\. Inputs 8 x 2kV RMS (1 minute) isolated 12-24VDC; Selectable inversion.
9\. Outputs 8 x 3kV isolated open collector outputs (300mA each, Max 50V);
**Power**
10\. Power Supply 9V to 33V
11\. Current consumption 70 mA
## Mounting and installation guide #### IOmod 8DI8DO RS485 interface IOmod 8DI8DO 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. [![image-1612533987275.png](https://wiki.elseta.com/uploads/images/gallery/2021-02/scaled-1680-/image-1612533987275.png)](https://wiki.elseta.com/uploads/images/gallery/2021-02/image-1612533987275.png) IOmod 8DI8DO 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 8DI8DO inputs Typical application of IOmod 8DI8DO 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-1648638787744.png](https://wiki.elseta.com/uploads/images/gallery/2022-03/scaled-1680-/image-1648638787744.png)](https://wiki.elseta.com/uploads/images/gallery/2022-03/image-1648638787744.png) 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. [![image-1648638777414.png](https://wiki.elseta.com/uploads/images/gallery/2022-03/scaled-1680-/image-1648638777414.png)](https://wiki.elseta.com/uploads/images/gallery/2022-03/image-1648638777414.png) #### IOmod 8DI8DO outputs IOmod 8DI8DO has 8 open collector digital outputs. Internal clamp diodes are connected to each output which makes IOmod 8DI8DO ideal for driving inductive loads like relays. Maximum 300mA per output is allowed. For higher loads outputs can be connected in parallel. Make sure your power supply can provide enough power. Typical application of outputs is shown on Fig. 5.4 [![image-1648638764312.png](https://wiki.elseta.com/uploads/images/gallery/2022-03/scaled-1680-/image-1648638764312.png)](https://wiki.elseta.com/uploads/images/gallery/2022-03/image-1648638764312.png) ## 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 (Fig. 6.1). [![image-1612534299922.png](https://wiki.elseta.com/uploads/images/gallery/2021-02/scaled-1680-/image-1612534299922.png)](https://wiki.elseta.com/uploads/images/gallery/2021-02/image-1612534299922.png) User then manually installs drivers by selecting downloaded driver folder: Go to Control Panel -> Device Manager; Select failed device; Press “Update driver software”; screen in Fig. 6.2. should appear: [![image-1612534334561.png](https://wiki.elseta.com/uploads/images/gallery/2021-02/scaled-1680-/image-1612534334561.png)](https://wiki.elseta.com/uploads/images/gallery/2021-02/image-1612534334561.png) Select “x86” driver for 32-bit machine, or x64 for 64-bit machine. If not sure, select root folder (folder in which x64 and x86 lays inside). [![image-1612534415666.png](https://wiki.elseta.com/uploads/images/gallery/2021-02/scaled-1680-/image-1612534415666.png)](https://wiki.elseta.com/uploads/images/gallery/2021-02/image-1612534415666.png) #### IOmod configuration with PuTTY terminal Configuration of IOmod device is done through CLI (Command Line Interface) on a 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 (it is 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. Accidental close of the terminal window doesn’t stop USB connection, user can connect terminal program again, and press any key on keyboard to show up main menu again. User can select the link address of the device as shown on Fig. 6.4. [![image-1612534499046.png](https://wiki.elseta.com/uploads/images/gallery/2021-02/scaled-1680-/image-1612534499046.png)](https://wiki.elseta.com/uploads/images/gallery/2021-02/image-1612534499046.png) 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 baud rate 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\]. Baud rate window is shown in Fig 6.5. [![image-1612534513973.png](https://wiki.elseta.com/uploads/images/gallery/2021-02/scaled-1680-/image-1612534513973.png)](https://wiki.elseta.com/uploads/images/gallery/2021-02/image-1612534513973.png) A lot of options can be changed after entering Input / Output configure screen (Fig.6.6). These include filter time, output pulse time, input and output configuration, output detection with inputs screens. [![image-1612534527591.png](https://wiki.elseta.com/uploads/images/gallery/2021-02/scaled-1680-/image-1612534527591.png)](https://wiki.elseta.com/uploads/images/gallery/2021-02/image-1612534527591.png) Input (Fig.6.7) and output grouping screen show the connection between neighbour pins. Straight pins show that input or outputs are not grouped. Grouped inputs or outputs contain fold slashes in direction of another pin in the pair. [![image-1612534543901.png](https://wiki.elseta.com/uploads/images/gallery/2021-02/scaled-1680-/image-1612534543901.png)](https://wiki.elseta.com/uploads/images/gallery/2021-02/image-1612534543901.png) [![image-1612534552640.png](https://wiki.elseta.com/uploads/images/gallery/2021-02/scaled-1680-/image-1612534552640.png)](https://wiki.elseta.com/uploads/images/gallery/2021-02/image-1612534552640.png) Input / Output Configure screen lets user to configure Output detection with input (Fig. 6.8). This screen contains feedback time and connection between inputs and outputs. Connection between inputs and outputs is noted with straight pins. Attached pins are automatically grouped to conform to IEC-60870-5-103 protocol [![image-1612534581522.png](https://wiki.elseta.com/uploads/images/gallery/2021-02/scaled-1680-/image-1612534581522.png)](https://wiki.elseta.com/uploads/images/gallery/2021-02/image-1612534581522.png) Changes in the device and firmware version are shown in a Diagnostics Screen. Such diagnostics screen for IOmod 8DIDO is shown in Fig. 6.10. #### Main Menu
**Menu name** **Function** **Values** **Default values**
1\. Link Address Setts Link address 1-255 1
2\. Baudrate, Parity and stop bits Enters configuring screen for communication settings 8+1 or 8+2 (Data+Stop), None, Odd, Even, Mark, Space (Parity) 9600, 8+1, Parity -None
3\. Data addressing config Enters configuring screen for Input/ Output address (function type) 1 – 255 each 160 – Inputs; 128 – Outputs; 128 – Output feedback
4\. RS485 Terminating Resistor RS485 120 Ohms Terminating Resistor 0 – 1 (off/on) 1
5\. Input pull-up enable and state inversion Enables input pull-up resistor. Inputs then activated by low signal; Input inversion (Inverts input states in protocol logic) 0 – 1 (off/on) 0 (both off)
6\. Input / Output configure Enters screen for configuring (see 6.1 – 6.5 rows below) - -
6.1 Input grouping; Groups or ungroups inputs 8 inputs ungrouped / 4 pairs grouped All inputs ungrouped by default
6.2 Output grouping; Groups or ungroups outputs 8 outputs ungrouped / 4 pairs grouped All outputs ungrouped by default
6.3 Input filter time; Input glitch filter – minimum stable time to detect input 1 – 60000 milliseconds 100
6.4 Output pulse time; Sets output pulse time 0 – 60000 milliseconds (0 if not used) 0
6.5 Output detection with inputs (feedback) Attach and detach inputs to outputs for detection; Set detection timeout (timeout to send “Remote Operation” if inputs not triggered) 0 – 60000 milliseconds (0 if not used) 0
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 / Output states - -
0\. Exit 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 and enter Firmware upgrade screen by pressing \[4\] is shown in Fig 6.11. [![image-1612535097486.png](https://wiki.elseta.com/uploads/images/gallery/2021-02/scaled-1680-/image-1612535097486.png)](https://wiki.elseta.com/uploads/images/gallery/2021-02/image-1612535097486.png) Confirm upgrade by pressing \[1\]; Device should enter a Firmware Upgrade mode. It means that device switches from USB Console mode into Mass storage device and computer recognize it as USB Storage. Device should the reconnect as a Mass Storage Device: [![image-1612535163427.png](https://wiki.elseta.com/uploads/images/gallery/2021-02/scaled-1680-/image-1612535163427.png)](https://wiki.elseta.com/uploads/images/gallery/2021-02/image-1612535163427.png) User then must **delete** existing file “firmware.bin”, and simply drag and drop new firmware file. [![image-1612535189558.png](https://wiki.elseta.com/uploads/images/gallery/2021-02/scaled-1680-/image-1612535189558.png)](https://wiki.elseta.com/uploads/images/gallery/2021-02/image-1612535189558.png) Reconnect device, set default settings and check firmware version in Diagnostics screen.# IOMOD 8DI8DO User Manual IEC 60870-5-101 ## Introduction IOMod 8DI8DO is a small-size stand-alone Modbus RTU, IEC 60870-5-103 or IEC-60870-5-101 digital input and digital output controller (protocol depends on firmware). IOmod can be 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, control, and process monitoring at remote places. This user manual is written for IEC 60870-5-101 protocol firmware version. ### Features
- 8 digital inputs; - Configurable active input signal polarity or input inversion; - 8 digital open collector outputs; - Galvanically isolated inputs and outputs; - Pulsed or latched mode for individual outputs; - Possible output feedback measurement with inputs; - Configuration over USB console; - Values with data and time information; - Drag and Drop firmware upgrade over USB mass storage; - Modbus RTU, IEC-60870-5-103, IEC-60870-5-101 communication over RS485; - Software-selectable line termination resistor on RS485; - LED indication for input/output and data transmission; - Easy integration with WCC Lite gateway and CloudIndustries.eu platform;
## Operational information IOmod 8DI8DO uses Modbus RTU, IEC 60870-5-103, or IEC 60870-5-101 protocol to communicate with the master device over the RS485 interface. Protocol used by the device can be changed by uploading the corresponding firmware. Default communication settings are 9600 baud rate, 8E1, Link address – 1. IOmod 8DI8DO configuration can be changed over a USB interface with a terminal console like [PuTTY](https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html) or similar. #### Status LED Status LED can be in 3 colors : Red - Missing power source to the outputs. 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. ### IEC 60870-5-101 working information #### Initialization IOmod uses a standard IEC-60870-5-101 communication scheme. Initiation, control messages, and queries are initiated by the master (controlling station), while the IOmod device (controlled station) only answers these requests. Therefore, the first message should be sent by the master to request status of link (function code = 9). This message is answered by IOmod with the status of link (function code = 11) if link is available. Otherwise there is going to be no response. After receiving the status of link the master will send Reset of remote link command (function code = 0) to restart the communication. The IOMod can respond with either acknowledgment (function code = 0, ACK) or Negative Acknowledgment (function code = 1, NACK). If IOMod respond is ACK then the initialization procedure is finished. The described procedure enables the master to proceed with sending other messages defined by the IEC-60870-5-101 protocol. #### Data polling When initialization is complete, the master may request data from the IOmod device with general interrogation. Although according to the protocol specification IOMod will send data on value change. The 8DI8DO IOMod responds with type 30 (M\_SP\_TB\_1) a single point value with a time tag. #### Output control To control device outputs master (controlling station) sends a command conforming to the IEC-60870-5-101 protocols. The IOAs for outputs are \[1,8\]. By sending the 45-type command (C\_SC\_NA\_1, single point command) with the selected IOA you can either turn ON or OFF outputs, just make sure you have the power cable connected to the output power at the top of the IOMod. Negative acknowledge is returned if the sent command isn't configured. For example wrong IOA address or Type. #### 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 a “Spontaneous” message with the 30 data types (M\_SP\_TB\_1), and “IOA” as the input pin number shifted by 8. #### Time synchronization To initiate the time synchronization between devices the master must send a Clock Sync command. The command type is C\_CS\_NA\_1 (103) and the Cause of Transmission (COT) has to be 6. The command has to be sent to the correct link address and CASDU, which is the same as the link address by default. If the sent frame is correct the IOMod will respond with a C\_CS\_NA\_1 (103) type command with the COT (cause of transmission) of 7 and the **p/n** bit will be positive (0) also the command will be time-tagged with the **device** time. If the time synchronization feature is disabled or the command is sent to an undefined CASDU the response is the same except the **p/n** bit will be negative (1). #### General interrogation General Interrogation (GI) is initiated by the master sending the General Interrogation command. The command type is C\_IC\_NA\_1 (100) and the Cause of Transmission (COT) has to be 6. The command has to be sent to the correct link address and CASDU, which is the same as the link address by default. If the sent frame is correct the IOMod will respond with a C\_IC\_NA\_1 (103) type command with the COT (cause of transmission) of 7 and the **p/n** bit will be positive (0). Otherwise, it will respond with the same command just that the **p/n** bit will be negative (1). Then the device will begin to send all of its data. After that's done the IOMOD will also send another 100 type command with the COT (cause of transmission) of 10 (ActTerm) meaning the general interrogation is over. IOAs \[1,8\] are outputs \[9,16\] - inputs ### Device configuration #### Input inversion and polarity selection When active low signaling is needed, the user can configure input polarity. When internal pull-up resistors are turned on, all input statuses are turned on. When low signal is connected to input, status of that input is turned off. If user desires to turn input status on, when that input signal is low, user then inverts inputs logically. All input indication LED’s stay the same (are not inverted). #### Input / Output grouping Sometimes two inputs or two outputs must be captured as one DPI input or output. Inputs and outputs can be grouped into the pairs of two. This allows outputs to be controlled by one DPI command (of address of first output in the group). Only two neighbor 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 requests for this pin generate an error. For example – OUT1 and OUT2 can be grouped, after that OUT2 is not used; OUT2 and OUT3 cannot be grouped; OUT3 and OUT4 can be grouped, but OUT4 is not used, etc. [![image-1651649195941.png](https://wiki.elseta.com/uploads/images/gallery/2022-05/scaled-1680-/image-1651649195941.png)](https://wiki.elseta.com/uploads/images/gallery/2022-05/image-1651649195941.png) Picture shows outputs and inputs ungrouped and controlled independently. In this mode, General Interrogation will be composed of 8 output states and 8 input states.[![image-1651649208709.png](https://wiki.elseta.com/uploads/images/gallery/2022-05/scaled-1680-/image-1651649208709.png)](https://wiki.elseta.com/uploads/images/gallery/2022-05/image-1651649208709.png) In addition to this, picture shows first two outputs grouped into pair, while 3rd and 4th inputs are grouped into pair. Now, General interrogation will be composed of 7 output states (with OUT2 missing), and 7 input states (with IN4 missing). Output and input numbers is represented by “Info number” in protocol. #### Input filter Input filter is a simple glitch filter with time input. This filter time corresponds to stable time that input must achieve before sending a status change. #### Output pulse time User can configure outputs to be pulse controlled – it means that output will be turned on for configured amount of time. When this time runs out, output is turned off. This is useful when pulse toggle relays are used. Output pulse is independent from output grouping option and can be used on both grouped and ungrouped outputs. When output is grouped, device will allow only one command completion at a time – when output is already turned ON, other “turn ON” requests will be responded with NACK. If user desires latching outputs to be used, output pulse time is set to 0. [![image-1648639748729.png](https://wiki.elseta.com/uploads/images/gallery/2022-03/scaled-1680-/image-1648639748729.png)](https://wiki.elseta.com/uploads/images/gallery/2022-03/image-1648639748729.png) Picture shows example of pulse output usage. In this example inputs and outputs are grouped, and output pulse time is set to 1s. When user sends ON command, OUT2 is pulsed for 1s, and relay is set. This will connect NO contact and IN2 will turn on (assuming it is not inverted). When user sends OFF command, OUT1 is pulsed, and relay is reset, turning IN1 on. #### Output detection with inputs Users can detect an output change with inputs. [![image-1648638611086.png](https://wiki.elseta.com/uploads/images/gallery/2022-03/scaled-1680-/image-1648638611086.png)](https://wiki.elseta.com/uploads/images/gallery/2022-03/image-1648638611086.png) To find out if relays are turned on, user can connect relay outputs to IOmod inputs (maximum allowed voltage must be taken into account). When relays are turned on, device responds with IEC-60870-5-101 protocol message “Remote Operation”. If inputs are never turned on or off, device will send “Remote Operation” message after time-out period, with current input statuses. Time-out period is configured by user as a Feedback Time. ## Technical information
**System**
1\. Dimensions 101 x 119 x 17.5, mm
2.Case IP20, blend PC/ABS self-extinguishing, black
3\. Working environment Indoors
4\. Operating temperature -40 ¸ +85°C
5\. Humidity 5-95% RH (non-condensing)
6\. Configuration USB – serial console
7\. Firmware upgrade USB – mass storage device
**Electrical specifications**
8\. Inputs 8 x 2kV RMS (1 minute) isolated 12-24VDC; Selectable inversion.
9\. Outputs 8 x 3kV isolated open collector outputs (300mA each, Max 50V);
**Power**
10\. Power Supply 9V to 33V
11\. Current consumption 70 mA
## Mounting and installation guide #### IOmod 8DI8DO RS485 interface IOmod 8DI8DO 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. 1. [![image-1685090895466.png](https://wiki.elseta.com/uploads/images/gallery/2023-05/scaled-1680-/image-1685090895466.png)](https://wiki.elseta.com/uploads/images/gallery/2023-05/image-1685090895466.png) Fig. 1. IOmod 8DI8DO 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 8DI8DO inputs Typical application of IOmod 8DI8DO inputs is shown on Fig. 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-1648638787744.png](https://wiki.elseta.com/uploads/images/gallery/2022-03/scaled-1680-/image-1648638787744.png)](https://wiki.elseta.com/uploads/images/gallery/2022-03/image-1648638787744.png) Fig. 2. 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. 3.) as “high” or state “1”, input status LED will NOT glow. [![image-1648638777414.png](https://wiki.elseta.com/uploads/images/gallery/2022-03/scaled-1680-/image-1648638777414.png)](https://wiki.elseta.com/uploads/images/gallery/2022-03/image-1648638777414.png) Fig. 3. #### IOmod 8DI8DO outputs IOmod 8DI8DO has 8 open collector digital outputs. Internal clamp diodes are connected to each output which makes IOmod 8DI8DO ideal for driving inductive loads like relays. Maximum 300mA per output is allowed. For higher loads outputs can be connected in parallel. Make sure your power supply can provide enough power. Typical application of outputs is shown on Fig. 4. [![image-1648638764312.png](https://wiki.elseta.com/uploads/images/gallery/2022-03/scaled-1680-/image-1648638764312.png)](https://wiki.elseta.com/uploads/images/gallery/2022-03/image-1648638764312.png) Fig. 4. ## 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 (Fig. 5.). [![image-1612534299922.png](https://wiki.elseta.com/uploads/images/gallery/2021-02/scaled-1680-/image-1612534299922.png)](https://wiki.elseta.com/uploads/images/gallery/2021-02/image-1612534299922.png) Fig. 5. User then manually installs drivers by selecting downloaded driver folder: Go to Control Panel -> Device Manager; Select failed device; Press “Update driver software”; screen in Fig. 6. should appear: [![image-1612534334561.png](https://wiki.elseta.com/uploads/images/gallery/2021-02/scaled-1680-/image-1612534334561.png)](https://wiki.elseta.com/uploads/images/gallery/2021-02/image-1612534334561.png) Fig. 6. Select “x86” driver for 32-bit machine, or x64 for 64-bit machine. If not sure, select root folder (folder in which x64 and x86 lays inside). [![image-1612534415666.png](https://wiki.elseta.com/uploads/images/gallery/2021-02/scaled-1680-/image-1612534415666.png)](https://wiki.elseta.com/uploads/images/gallery/2021-02/image-1612534415666.png) #### IOmod configuration with PuTTY terminal Configuration of IOmod device is done through CLI (Command Line Interface) on a 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 (it is 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. Accidental close of the terminal window doesn’t stop USB connection, user can connect terminal program again, and press any key on keyboard to show up main menu again. User can select the link address of the device as shown on Fig. 7. [![image-1668177299855.png](https://wiki.elseta.com/uploads/images/gallery/2022-11/scaled-1680-/image-1668177299855.png)](https://wiki.elseta.com/uploads/images/gallery/2022-11/image-1668177299855.png) Fig. 7. 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 baud rate screen; press \[3\] 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 \[7\] on main screen and confirming changes \[1\]. Baud rate window is shown in Fig. 8. [![image-1668177390282.png](https://wiki.elseta.com/uploads/images/gallery/2022-11/scaled-1680-/image-1668177390282.png)](https://wiki.elseta.com/uploads/images/gallery/2022-11/image-1668177390282.png) Fig. 8. A lot of options can be changed after entering Input / Output configure screen (Fig. 9.). These include filter time, output pulse time, input and output configuration, output detection with inputs screens. [![image-1668177436540.png](https://wiki.elseta.com/uploads/images/gallery/2022-11/scaled-1680-/image-1668177436540.png)](https://wiki.elseta.com/uploads/images/gallery/2022-11/image-1668177436540.png) Fig. 9. Input (Fig. 10.) and output grouping screen show the connection between neighbor pins. Straight pins show that input or outputs are not grouped. Grouped inputs or outputs contain fold slashes in direction of another pin in the pair. [![image-1668177481031.png](https://wiki.elseta.com/uploads/images/gallery/2022-11/scaled-1680-/image-1668177481031.png)](https://wiki.elseta.com/uploads/images/gallery/2022-11/image-1668177481031.png) Fig. 10. [![image-1668177600647.png](https://wiki.elseta.com/uploads/images/gallery/2022-11/scaled-1680-/image-1668177600647.png)](https://wiki.elseta.com/uploads/images/gallery/2022-11/image-1668177600647.png) Fig. 11. Input / Output Configure screen lets user to configure Output detection with input (Fig. 11.). This screen contains feedback time and connection between inputs and outputs. Connection between inputs and outputs is noted with straight pins. Attached pins are automatically grouped to conform to IEC-60870-5-101 protocol [![image-1668178897024.png](https://wiki.elseta.com/uploads/images/gallery/2022-11/scaled-1680-/image-1668178897024.png)](https://wiki.elseta.com/uploads/images/gallery/2022-11/image-1668178897024.png) Fig. 12. Changes in the device and firmware version are shown in a Diagnostics Screen. Such diagnostics screen for IOmod 8DIDO is shown in Fig. 12. #### Main Menu
**Menu name** **Function** **Values** **Default values**
1\. Link Address Setts Link address 1-255 1
2\. Baudrate, Parity and stop bits Enters configuring screen for communication settings 8+1 or 8+2 (Data + Stop), None, Odd, Even, Mark, Space (Parity) 9600, 8+1, Parity -Even
3\. RS485 Terminating Resistor RS485 120 Ohms Terminating Resistor 0 – 1 (off/on) Disabled
4\. Input pull-up enable and state inversion Enables input pull-up resistor. Inputs then activated by low signal; Input inversion (Inverts input states in protocol logic) 0 – 1 (off/on) 0 (both off)
5\. Input / Output configure Enters screen for configuring (see 6.1 – 6.5 rows below) - -
5.1 Input grouping; Groups or ungroups inputs 8 inputs ungrouped / 4 pairs grouped All inputs ungrouped by default
5.2 Output grouping; Groups or ungroups outputs 8 outputs ungrouped / 4 pairs grouped All outputs ungrouped by default
5.3 Input filter time; Input glitch filter – minimum stable time to detect input 1 – 60000 milliseconds 100
5.4 Output pulse time and select timeout; Sets output pulse time 0 – 60000 milliseconds (0 if not used) 0
5.5 Output detection with inputs; Attach and detach inputs to outputs for detection; Set detection timeout (timeout to send “Remote Operation” if inputs not triggered) 0 – 60000 milliseconds (0 if not used) 0
6.Protocol settings;Protocol settings; - -
6.1Toggle 24/56 bit timeChanges toggle bit time either to 24 or to 56 24/56 56
6.2Change IOA sizeChanges IOA size 1-3 1
6.3Toggle use of command qualifierEnables or disables toggle use of command qualifier Disabled/Enabled Enabled
7\. Set default settings; Sets Default Settings (1 to confirm, 0 to cancel) -
8\. Firmware update; Mass Storage Device Firmware Upgrade (1 to confirm, 0 to cancel) -
9\. Diagnostics screen; Input / Output states - -
0\. Exit; 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-101 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 and enter Firmware upgrade screen by pressing \[8\] is shown in Fig. 13. [![image-1668177766178.png](https://wiki.elseta.com/uploads/images/gallery/2022-11/scaled-1680-/image-1668177766178.png)](https://wiki.elseta.com/uploads/images/gallery/2022-11/image-1668177766178.png) Fig. 13. Confirm upgrade by pressing \[1\]; Device should enter a Firmware Upgrade mode. It means that device switches from USB Console mode into Mass storage device and computer recognize it as USB Storage. Device should the reconnect as a Mass Storage Device: [![image-1612535163427.png](https://wiki.elseta.com/uploads/images/gallery/2021-02/scaled-1680-/image-1612535163427.png)](https://wiki.elseta.com/uploads/images/gallery/2021-02/image-1612535163427.png) User then must **delete** existing file “firmware.bin”, and simply drag and drop new firmware file. [![image-1612535189558.png](https://wiki.elseta.com/uploads/images/gallery/2021-02/scaled-1680-/image-1612535189558.png)](https://wiki.elseta.com/uploads/images/gallery/2021-02/image-1612535189558.png) Reconnect device, set default settings and check firmware version in Diagnostics screen.