24 DI
Compact Modbus RTU remote I/O module with twenty-four digital inputs, supporting latched status, pulse counting, and RPM calculation.

Key Features
- 24 Digital Inputs, 24V compatible
- All inputs have latched status – Never miss an input change
- All inputs have individual counter functions with retentive memory storage
- 4 High speed production counter and RPM measurement
- 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 × 70 mm × 85 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-24DI | 24-Channel Digital Input Modbus Remote I/O Module |
| UIO-24DI-24DO | 24-Channel Digital Output and Input Modbus Remote I/O Module |
| UIO-12DI-12DO | 12-Channel Digital Output and Input Modbus Remote I/O Module |
| UIO-8DI | 8-Channel Digital Input Modbus Remote I/O Module |
| UIO-48DI | 48-Channel Digital Input Modbus Remote I/O Module |
| UIO-4DI-4DO | 4-Channel Digital Output and Input Modbus Remote I/O Module |
Applications
- Reading 24 digital PNP input signals from sensors, switches, and push buttons via Modbus
- Counting pulses from flow meters, encoders, or proximity sensors with retentive memory
- Measuring production rates and machine RPM using high speed counter channels
- Monitoring conveyor lines, packaging machines, or CNC equipment with latched input capture
- Building Modbus digital input expansion for PLCs and SCADA systems
- Never missing a pulse or state change with hardware-latched input registers
Specifications
| Parameter | Value |
|---|---|
| Mounting | DIN rail or wall mountable |
| Dimensions | 110 mm × 70 mm × 85 mm (L × W × H) |
Electrical Specifications
| Parameter | Value |
|---|---|
| Supply Voltage | 15–24V DC |
| Digital Input Voltage | 15–24V DC, PNP Inputs |
| Communication Port | RS-485 |
Input/Output Specifications
| Parameter | Value |
|---|---|
| Channel Count | 24 |
| Input Type | Digital PNP, 24V compatible |
| Slow Counter Speed | Up to 1 kHz |
| High Speed Counter Channels | 4 (X1, X2, X5, X6) |
| Counter Memory | Retentive on power cycles |
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 | 4 | 5 |
|---|---|---|---|---|---|
| Signal | A | B | Shield | NC | NC |
Bottom Connector – Power
| Pin | 1 | 2 |
|---|---|---|
| Signal | 24V | GND |
Digital Input Connector
| Pin | Signal |
|---|---|
| 1–12 | X1–X12 |
| 13–24 | X13–X24 |
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–DI24 | 10001–10024 | Bit | DI1 to DI24 live digital input 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–10024 | Bit | DI1 to DI24 live digital input status |
| Discrete Inputs | 10201–10224 | Bit | DI1 to DI24 latched status, auto-clears on read |
| Coils | 00251–00274 | Bit | Reset DI1 to DI24 slow counters |
| Coils | 00801–00804 | Bit | Reset high speed production counters (X1, X2, X5, X6) |
| Input Registers | 30251–30274 | int16 | DI1 to DI24 slow counter values (1 kHz) |
| Input Registers | 30801–30804 | int16 | X1, X2, X5, X6 RPS values |
| Input Registers | 30811–30814 | int16 | X1, X2, X5, X6 RPM values |
| Input Registers | 30821–30828 | int32 | X1, X2, X5, X6 production counters |
| Holding Registers | 40101 | int16 | Modbus server (slave) address |
| Holding Registers | 40801–40804 | int16 | HSC1 to HSC4 mode |
| Holding Registers | 40811–40814 | int16 | HSC1 to HSC4 PPR |
Detailed Register Tables
Discrete Inputs (1xxxx)
Digital Live Input Status
| Address | Type | Description |
|---|---|---|
| 10001–10024 | Bit | DI1 to DI24 live digital input status |
Digital Latched Input Status
| Address | Type | Description |
|---|---|---|
| 10201–10224 | Bit | DI1 to DI24 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)
Slow Counter Reset
| Address | Type | Description |
|---|---|---|
| 00251–00274 | Bit | Reset DI1 to DI24 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.
Production Counter Reset
| Address | Type | Description |
|---|---|---|
| 00801–00804 | Bit | Reset production counter for high speed counters X1, X2, X5, X6 |

Writing 1 to the coil resets the corresponding retentive production counter value. This bit is self-clearing.
Digital Inputs Slow Counter Values
Input Registers (3xxxx)
| Address | Type | Description |
|---|---|---|
| 30251–30274 | int16 | DI1 to DI24 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–30804 | int16 | X1, X2, X5, X6 RPS value |
| 30811–30814 | int16 | X1, X2, X5, X6 RPM value |
| 30821–30828 | int32 | X1, X2, X5, X6 production counter (Retentive memory on power cycles) |

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.
LED Indications and Diagnostics
| LED | Description |
|---|---|
| Power | Module power ON indication |
| Tx | RS-485 transmit activity |
| Rx | RS-485 receive activity |
| X1–X24 | Digital input status |
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