4 DI / 4 DO
Compact Modbus RTU remote I/O module with four digital inputs with RPM measurement and pulse counting, and four digital NPN outputs with configurable ON/OFF delay control.

Key Features
- 4 Digital Inputs, 24V compatible
- 4 Digital NPN Outputs
- 2 High speed production counter and RPM measurement (DI1, DI2)
- All inputs have latched status – Never miss an input change
- All inputs have individual counter functions with retentive memory storage
- Configurable digital output ON delay and OFF delay
- 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 or wall mountable
- Dimensions: 110 mm × 50 mm × 55 mm (L × W × 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-4DI-4DO | 4-Channel Digital Input / 4-Channel Digital Output Modbus Remote I/O Module |
| UIO-12DI-12DO | 12-Channel Digital Input / 12-Channel Digital Output Modbus Remote I/O Module |
| UIO-24DI-24DO | 24-Channel Digital Input / 24-Channel Digital Output Modbus Remote I/O Module |
| UIO-24DI | 24-Channel Digital Input Modbus Remote I/O Module |
| UIO-24DO | 24-Channel Digital Output Modbus Remote I/O Module |
| UIO-8DI | 8-Channel Digital Input Modbus Remote I/O Module |
Applications
- Reading 4 digital input signals and simultaneously controlling 4 NPN outputs from a single compact Modbus module
- Counting pulses from flow meters, encoders, and proximity sensors with retentive memory
- Measuring rotational speed using the 2 high speed counter channels (DI1, DI2)
- Driving relays, solenoids, and indicator lamps with configurable per-channel ON/OFF delay
- Building compact Modbus I/O expansion for PLCs and SCADA systems in space-constrained panels
- Replacing traditional timer relays with software-configurable delay logic on each output channel
Specifications
| Parameter | Value |
|---|---|
| Mounting | DIN rail or wall mountable |
| Dimensions | 110 mm × 50 mm × 55 mm (L × W × H) |
Electrical Specifications
| Parameter | Value |
|---|---|
| Supply Voltage | 15–24V DC |
| Digital Output Rating | 24VDC 500mA max, NPN Control |
| Digital Input Voltage | 15–24V DC |
| Communication Port | RS-485 |
Input/Output Specifications
| Parameter | Value |
|---|---|
| Digital Input Channel Count | 4 |
| Digital Output Channel Count | 4 |
| Output Type | Digital NPN |
| Slow Counter Speed | Up to 1 kHz |
| High Speed Counter Channels | 2 (DI1, DI2) |
| Counter Memory | Retentive on power cycles |
| ON/OFF Delay Resolution | 10 ms (1 count = 10 ms) |
| Maximum Output Delay | 655.35 seconds (65535 counts) |
Isolation & Protection Specifications
| Parameter | Value | Notes / Description |
|---|---|---|
| Supply Reverse Polarity Protection | ||
| Supply Isolation | ||
| Transient Voltage Clamping | ||
| EMC & Immunity Standards | ||
| RS-485 Bus ESD Protection |
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 |
Digital Input Connector
| Pin | 1 | 2 | 3 | 4 |
|---|---|---|---|---|
| Signal | X1 | X2 | X3 | X4 |
Digital Output Connector
| Pin | 5 | 6 | 7 | 8 |
|---|---|---|---|---|
| Signal | Y1 | Y2 | Y3 | Y4 |
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 |
|---|---|---|---|
| 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 digital input status |
| Discrete Inputs | 10201–10204 | Bit | DI1 to DI4 latched status, auto-clears on read |
| Coils | 00001–00004 | Bit | DO1 to DO4 digital output control and status |
| Coils | 00251–00254 | Bit | Reset DI1 to DI4 slow counters |
| Coils | 00401–00404 | Bit | Pending DO1 to DO4 delay status and override |
| Coils | 00801–00802 | Bit | Reset DI1, DI2 production counters |
| Input Registers | 30251–30254 | int16 | DI1 to DI4 slow counter values (1 kHz) |
| Input Registers | 30801–30802 | int16 | DI1, DI2 RPS values |
| Input Registers | 30811–30812 | int16 | DI1, DI2 RPM values |
| Input Registers | 30821–30824 | int32 | DI1, DI2 production counters |
| Holding Registers | 40801–40802 | int16 | DI1, DI2 mode configuration |
| Holding Registers | 40811–40812 | int16 | DI1, DI2 pulses per revolution (1–65535) |
| Holding Registers | 40401–40404 | int16 | DO1 to DO4 ON delay |
| Holding Registers | 40451–40454 | int16 | DO1 to DO4 OFF delay |
| Holding Registers | 40101 | int16 | Modbus server (slave) address |
Detailed Register Tables
Discrete Inputs (1xxxx)
Digital Live Input Status
| Address | Type | Description |
|---|---|---|
| 10001–10004 | Bit | DI1 to DI4 live digital input status |
Digital Latched Input Status
| Address | Type | Description |
|---|---|---|
| 10201–10204 | Bit | DI1 to DI4 latched status, auto-clears on read |
Latched input status stays high even after the input goes low and auto-clears only after the master reads this bit. This ensures no input state change is missed by the controller.
Coils (0xxxx)
Digital Output Control
| Address | Type | Description |
|---|---|---|
| 00001–00004 | Bit | DO1 to DO4 digital output control and status |
Slow Counter Reset
| Address | Type | Description |
|---|---|---|
| 00251–00254 | Bit | Reset DI1 to DI4 slow counter |
Writing 1 to the coil resets the corresponding slow counter value. This bit is self-clearing and the reset value is not stored on power cycle.
Pending Output State
| Address | Type | Description |
|---|---|---|
| 00401–00404 | Bit | Pending DO1 to DO4 state while ON/OFF delay timer is active |
Writing 1 to a pending coil overrides the delay timer and immediately switches the output ON.
Production Counter Reset
| Address | Type | Description |
|---|---|---|
| 00801–00802 | Bit | Reset production counter for high speed counters DI1, DI2 |
Writing 1 to the coil resets the corresponding retentive production counter value. This bit is self-clearing.
Input Registers (3xxxx)
Digital Inputs Slow Counter Values
| Address | Type | Description |
|---|---|---|
| 30251–30254 | int16 | DI1 to DI4 slow counter, up to 1 kHz (Retentive memory on power cycles) |
DI state changes are counted and stored in these registers. Counter values are retained across power cycles.
High Speed Counter Values
| Address | Type | Description |
|---|---|---|
| 30801–30802 | int16 | DI1, DI2 RPS value |
| 30811–30812 | int16 | DI1, DI2 RPM value |
| 30821–30824 | int32 | DI1, DI2 production counter (Retentive memory on power cycles) |
Holding Registers (4xxxx)
High Speed Counter Configuration
| Address | Type | Description |
|---|---|---|
| 40801–40802 | int16 | DI1, DI2 mode |
| 40811–40812 | int16 | DI1, DI2 pulses per revolution (1–65535) |
DI Mode Values:
- 0 = Normal digital input
- 1 = RPM / RPS measurement
- 2 = Production counter
Digital Output Delay Configuration
| Address | Type | Description |
|---|---|---|
| 40401–40404 | int16 | DO1 to DO4 ON delay |
| 40451–40454 | int16 | DO1 to DO4 OFF delay |
Delay Resolution: 1 = 10 ms, 100 = 1 second. Maximum value: 65535 = 655.35 seconds.
Communication Settings
| Address | Type | Description |
|---|---|---|
| 40101 | int16 | Modbus server (slave) address (switch value) |
| 40102 | int16 | Baud rate selection |
| 40103 | int16 | Serial format selection |
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.
Watchdog Action
The Bus Watchdog automatically resets all outputs to their initial safe state if communication with the Modbus client is lost. This helps ensure safe operation during cable disconnection, client failure, or other communication faults.

Configurable timeout: 1 to 600 seconds (100 ms resolution).
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 |
| Y1–Y4 | Digital output status |
Revision History
| Revision | Date | Changes |
|---|---|---|
| Rev 1.0 | 2026-08-25 | 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