4AI / 4DI / 4RO
Compact Modbus RTU remote I/O module with four 0–20mA analog inputs, four digital inputs, four relay outputs, configurable alarm logic, pulse counting, RPM calculation, and output delay control.

Key Features
- 4 Channel 0–20mA Analog Inputs
- 16-bit analog resolution
- Raw analog value resolution of 0.001mA
- 4 Relay Outputs with configurable alarm or manual control
- 4 Digital Inputs, 24V compatible
- 2 High-speed production counters and RPM measurement (DI1–DI2)
- All inputs have latched status – never miss an input change
- All inputs have individual counter functions
- Configurable relay ON delay and OFF delay
- Sensor open / broken wire indication
- Individual channel offset and gain calibration
- Integer and IEEE754 float value support
- Modbus RTU over RS-485
- Rotary address switch for address selection from 1 to 99
- Wide supported baud rates from 300 to 115200
- DIN rail mountable
- Dimensions: 110 mm x 70 mm x 55 mm (L x W x H)
ModViz – Modbus Configuration & Visualization Tool
ModViz is a powerful yet simple configuration and visualization tool designed to work seamlessly with Veawe Modbus I/O modules. It enables engineers, system integrators, and technicians to quickly configure, monitor, and test field devices through an intuitive graphical interface.
The software can be downloaded from https://veawe.io/modviz/


Ordering Information
| Product Code | Description |
|---|---|
| UIO-444-20MA | 4-Channel Analog Input with DI and DO |
| UIO-4IN-20MA | 4-Channel Analog Input Module (0–20mA) |
| MIO-2AI-VI | 2-Channel Analog Input Module (0–20mA / 0–36V DC) |
| UIO-8IN-20MA | 8-Channel Analog Input Module (0–20mA) |
| UIO-4IN-10V | 4-Channel Analog Input Module (0–10V DC) |
Applications
- Industrial Automation – Combine analog sensing, digital status, and relay control on a single Modbus node for PLC/SCADA integration
- Process Control – Drive relay-controlled actuators based on analog alarm thresholds via alarm-to-output selection
- Motion & Production Monitoring – Track RPM, RPS, and production counts from high-speed digital inputs
- Machine Interlocks & Safety – Latch digital input state changes so no transient signal is missed by the controller
- Remote Monitoring – Consolidate analog, digital, and relay I/O for distributed installations over a single Modbus RTU connection
Specifications
| Parameter | Value |
|---|---|
| Mounting | DIN rail |
| Dimensions | 110 mm x 70 mm x 55 mm (L x W x H) |
Electrical Specifications
| Parameter | Value |
|---|---|
| Supply Voltage | 15–24V DC |
| Analog Input Range | 0–20mA |
| Relay Output Rating | 230VAC 1A max / 30VDC 2A max |
| Digital Input Voltage | 15–24V DC |
| Communication Port | RS-485 |
Input/Output Specifications
Analog Input
| Parameter | Value |
|---|---|
| Channel Count | 4 |
| Signal Range | 0–20mA |
| Resolution | 0.001 mA |
Digital Input
| Parameter | Value |
|---|---|
| Channel Count | 4 |
| Digital Input Voltage | 15–24V DC |
Relay Output
| Parameter | Value |
|---|---|
| Channel Count | 4 |
| Relay Output Rating | 230VAC 1A max / 30VDC 2A max |
Isolation & Protection Specifications
| Parameter | Value | Notes / Description |
|---|---|---|
| Supply Reverse Polarity Protection | Integrated | Series protection diode (continuous protection, zero reverse leakage) |
| Transient Voltage Clamping | Up to 600W | Clamps overvoltage spikes (10/100 µs peak pulse rating) |
| EMC & Immunity Standards | Class-Compliant | Meets IEC 61000-4-2 (ESD), IEC 61000-4-4 (EFT), & IEC 61000-4-5 (Surge) |
| RS-485 Bus ESD Protection | 15kV HBM/Air | IEC61000-4-2 Integrated high-ESD protected transceiver on A/B lines |
Mechanical Dimensions
Terminal Details
Top Connector – RS-485
| Pin | 1 | 2 | 3 |
|---|---|---|---|
| Signal | A | B | Shield |
Bottom Connector – Power
| Pin | 1 | 2 |
|---|---|---|
| Signal | 24V | GND |
Analog Input Connector
| Pin | 1 | 2 | 3 | 4 | 5 |
|---|---|---|---|---|---|
| Signal | CH1+ | CH2+ | CH3+ | CH4+ | GND |
Digital Input Connector
| Pin | 1 | 2 | 3 | 4 |
|---|---|---|---|---|
| Signal | IN1 | IN2 | IN3 | IN4 |
Relay Connector
| Pin | 1 | 2 | 3 | 4 | 5 | 6 |
|---|---|---|---|---|---|---|
| Signal | CM1&2 | NO1 | NO2 | CM3&4 | NO3 | NO4 |
Wiring Diagrams
Note: All images and connection diagrams shown are for illustrative purposes only and may differ from the actual product.
Communication Interface
| Protocol | Physical Layer | Default Baud Rate | Default Format |
|---|---|---|---|
| Modbus RTU | RS-485 | 19200 | 8N1 |
Basic Process Registers
| Signal | Address | Type | Description |
|---|---|---|---|
| AI1–AI4 | 30001–30004 / 30021–30028 | int16 / float | Raw analog (0.001mA) / Scaled engineering value |
| DI1–DI4 | 10001–10004 | Bit | DI1 to DI4 live digital input status |
| DO1–DO4 | 00001–00004 | Bit | DO1 to DO4 output control and status |
Supported Modbus Function Codes
| Read | Write |
|---|---|
| 01 – Read Coils | 05 – Write Single Coil |
| 02 – Read Discrete Inputs | 06 – Write Single Register |
| 03 – Read Holding Registers | 15 – Write Multiple Coils |
| 04 – Read Input Registers | 16 – Write Multiple Registers |
Register Map Overview
| Function | Address Range | Type | Description |
|---|---|---|---|
| Discrete Inputs | 10001–10004 | Bit | DI1 to DI4 live status |
| Discrete Inputs | 10201–10204 | Bit | DI1 to DI4 latched state |
| Discrete Inputs | 10601–10604 | Bit | AI1 to AI4 alarm indication |
| Discrete Inputs | 10621–10624 | Bit | AI1 to AI4 sensor open indication |
| Discrete Inputs | 10641–10644 | Bit | AI1 to AI4 latched alarm indication |
| Coils | 00001–00004 | Bit | DO1 to DO4 control and status |
| Coils | 00251–00254 | Bit | Reset slow counter |
| Coils | 00401–00404 | Bit | Pending DO delay status and override control |
| Coils | 00601–00604 | Bit | Reset AI alarm counter |
| Coils | 00801–00802 | Bit | Reset production counter |
| Input Registers | 30001–30004 | int16 | AI1 to AI4 raw value |
| Input Registers | 30021–30028 | float | AI1 to AI4 scaled value |
| Input Registers | 30251–30254 | int16 | DI1 to DI4 slow counter |
| Input Registers | 30601–30604 | int16 | AI1 to AI4 alarm counters |
| Input Registers | 30801–30802 | int16 | HSC1 to HSC2 RPS value |
| Input Registers | 30811–30812 | int16 | HSC1 to HSC2 RPM value |
| Input Registers | 30821–30824 | int32 | HSC1 to HSC2 production counter |
| Holding Registers | 40101 | int16 | Slave address |
| Holding Registers | 40102 | int16 | Baud rate selection |
| Holding Registers | 40103 | int16 | Serial format |
| Holding Registers | 40401–40404 | int16 | DO1 to DO4 ON delay |
| Holding Registers | 40451–40454 | int16 | DO1 to DO4 OFF delay |
| Holding Registers | 40601–40604 | int16 | AI1 to AI4 offset |
| Holding Registers | 40621–40628 | float | AI1 to AI4 gain |
| Function | Address Range | Type | Description |
|---|---|---|---|
| Holding Registers | 40661–40664 | int16 | AI1 to AI4 alarm mode |
| Holding Registers | 40681–40684 | int16 | AI1 to AI4 alarm minimum |
| Holding Registers | 40701–40704 | int16 | AI1 to AI4 alarm maximum |
| Holding Registers | 40801–40802 | int16 | HSC1 to HSC2 mode |
| Holding Registers | 40811–40812 | int16 | HSC1 to HSC2 PPR |
Detailed Register Tables
Discrete Inputs (1xxxx)
| Function | Address Range | Type | Description |
|---|---|---|---|
| Discrete Inputs | 10001–10004 | Bit | DI1 to DI4 live status |
| Discrete Inputs | 10201–10204 | Bit | DI1 to DI4 latched state |
| Discrete Inputs | 10621–10624 | Bit | AI1 to AI4 sensor open indication |
Analog Input Live Alarm Status
| Function | Address Range | Type | Description |
|---|---|---|---|
| Discrete Inputs | 10601–10604 | Bit | AI1 to AI4 alarm indication |
If an analog sensor vale is out of the range set in Alarm Configuration:
-
Corresponding Relay is ON when configured for alarm
-
Alarm indication status bit is set
Latched Alarm Status
| Function | Address Range | Type | Description |
|---|---|---|---|
| Discrete Inputs | 10641–10644 | Bit | AI1 to AI4 latched alarm indication |

Coils (0xxxx)
| Function | Address Range | Type | Description |
|---|---|---|---|
| Coils | 00001–00004 | Bit | DO1 to DO4 control and status |
| Coils | 00251–00254 | Bit | Reset slow counter |
| Coils | 00401–00404 | Bit | Pending DO delay status and override control |
| Coils | 00601–00604 | Bit | Reset AI alarm counter |
Production Counter Reset
| Function | Address Range | Type | Description |
|---|---|---|---|
| Coils | 00801–00802 | Bit | Reset production counter |
![]() |
Input Registers (3xxxx)
| Function | Address Range | Type | Description |
|---|---|---|---|
| Input Registers | 30001–30004 | int16 | AI1 to AI4 raw value |
| Input Registers | 30021–30028 | float | AI1 to AI4 scaled value |
| Input Registers | 30251–30254 | int16 | DI1 to DI4 slow counter |
| Input Registers | 30601–30604 | int16 | AI1 to AI4 alarm counters |
| Input Registers | 30801–30802 | int16 | HSC1 to HSC2 RPS value |
| Input Registers | 30811–30812 | int16 | HSC1 to HSC2 RPM value |
| Input Registers | 30821–30824 | int32 | HSC1 to HSC2 production counter |
Holding Registers (4xxxx)
Relay Delay Configuration
| Function | Address Range | Type | Description |
|---|---|---|---|
| Holding Registers | 40401–40404 | int16 | DO1 to DO4 ON delay, 1 = 10 milli Sec |
| Holding Registers | 40451–40454 | int16 | DO1 to DO4 OFF delay, 1 = 10 milli Sec |

Gain Calibration
| Function | Address Range | Type | Description |
|---|---|---|---|
| Holding Registers | 40601–40604 | int16 | AI1 to AI4 offset |
| Holding Registers | 40621–40628 | float | AI1 to AI4 gain |

Alarm Configuration
| Function | Address Range | Type | Description |
|---|---|---|---|
| Holding Registers | 40661–40664 | int16 | AI1 to AI4 alarm mode |
| Holding Registers | 40681–40684 | int16 | AI1 to AI4 alarm minimum |
| Holding Registers | 40701–40704 | int16 | AI1 to AI4 alarm maximum |

Input Mode and Pulse Per Revolution
| Function | Address Range | Type | Description |
|---|---|---|---|
| Holding Registers | 40801–40802 | int16 | HSC1 to HSC2 mode |
| Holding Registers | 40811–40812 | int16 | HSC1 to HSC2 PPR |

Communication Settings
| Address | Type | Description |
|---|---|---|
| 40101 | int16 | Modbus server (slave) address (switch value) |
| 40102 | int16 | Baud rate selection |
| 40103 | int16 | Serial format selection |
| 40105 | int16 | Remote read/write poll interval. Example: 10 = 1 second |
| 40106 | int16 | Watchdog interval. Example: 10 = 1 second |
| 40107 | int16 | Watchdog action. 0 = Modbus Watchdog Disabled, 1 = Reset Outputs on Modbus Watchdog Expire |
Modbus Address (40101)
This is set using the rotary or DIP switches.
Baud Rate Register (40102) and Serial Format Register (40103)
| Value | Baud Rate | Value | Baud Rate | Value | Format |
|---|---|---|---|---|---|
| 0 | 300 | 7 | 9600 | 0 | 8N1 |
| 1 | 600 | 8 | 14400 | 1 | 8E1 |
| 2 | 1200 | 9 | 19200 | 2 | 8O1 |
| 3 | 1800 | 10 | 38400 | 3 | 8N2 |
| 4 | 2400 | 11 | 57600 | 4 | 8E2 |
| 5 | 4800 | 12 | 62500 | 5 | 8O2 |
| 6 | 7200 | 13 | 115200 |
Default: 19200 baud, 8N1.

Default Settings
| Setting | Default |
|---|---|
| Slave Address | As per switch position |
| Baud Rate | 19200 |
| Serial Format | 8N1 |
Configuration Settings
Default Mode
Default mode is useful when communication settings are unknown.
When the rotary address switch is set to 00:
- Server address = 1
- Baud rate = 19200
- Serial format = 8N1

Changing to default mode does not overwrite stored settings. Stored settings remain unchanged until written through Modbus.
LED Indications and Diagnostics
| LED | Description |
|---|---|
| Power | Module power ON indication |
| Tx | RS-485 transmit activity |
| Rx | RS-485 receive activity |
| X1–X4 | Digital input status |
| RL1–RL4 | Relay output status |
Calibration and Engineering Values
The module internally measures analog current input as a raw integer value.
Example:
- 0mA = 0
- 4mA = 4000
- 12mA = 12000
- 20mA = 20000
Raw values are stored in int16 registers with a resolution of 0.001mA.
Engineering value registers allow the raw current value to be converted into user units such as:
● Pressure ● Temperature ● Tank level ● Flow ● Weight ● Percentage
Example conversions:
| Sensor Type | Input Range | Engineering Value Range |
|---|---|---|
| Pressure Transmitter | 4–20mA | 0 to 10.0 Bar |
| Tank Level Sensor | 4–20mA | 0 to 100 % |
| Temperature Transmitter | 4–20mA | 0 to 200 °C |
Engineering values are available in float format using IEEE754 registers.
Formula:
Engineering Value = (Raw Value + Offset) × Gain
Where:
- Raw Value = measured current in 0.001mA units
- Offset = calibration correction in 0.001mA units
- Gain = engineering unit multiplier
Example:
- Raw input = 12000
- Offset = -4000
- Gain = 0.01
- Engineering Value = 80
This can be used for a transmitter scaled from 0–20mA to -40 to +160 °C.
Examples:
| Raw to mA | Raw Value | Offset | Gain | Result |
|---|---|---|---|---|
| 4–20mA to 0–100 % | 12000 | 0 | 0.001 | 50.0 % |
| 4–20mA to 0–10 Bar | 12000 | -4000 | 0.00625 | 5.0 Bar |
| 4–20mA to 0–200 °C | 12000 | -4000 | 0.0125 | 100.0 °C |
Revision History
| Revision | Date | Changes |
|---|---|---|
| Rev 1.0 | 2026-08-10 | Initial datasheet, HW Version = 3, FW Version = 2 |
Get the latest version of this datasheet : click here..
Support
Website: www.veawe.io
Email: info@veawe.io
