2 Analog Outputs 20mA
Compact Modbus RTU remote I/O module with two 0–20mA analog outputs, supporting direct write control and Master Mode remote read.

Key Features
- 2 Channel 0–20mA Analog Outputs
- Resolution at 0.02 mA
- Individual channel offset and gain calibration
- Integer and IEEE754 float value support
- Modbus RTU over RS-485
- Read from remote device – Master Mode
- 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 50 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-2AO-20mA | 2-Channel Analog Output Modbus Remote I/O Module |
| UIO-4AO-20mA | 4-Channel Analog Output Modbus Remote I/O Module |
Applications
- Driving 4–20mA actuators, control valves, and VFDs directly from a Modbus master
- Retransmitting PLC or SCADA values to legacy analog-only equipment
- Converting tank level, pressure, flow, or temperature readings into analog output signals
- Feeding analog indicators, chart recorders, or third-party analog inputs from Modbus data
- Building a Modbus-to-analog gateway between digital control systems and analog field devices
- Remote analog control in Master Mode, without requiring a PLC to continuously poll and rewrite values
Specifications
| Parameter | Value |
|---|---|
| Mounting | DIN rail |
| Dimensions | 110 mm x 50 mm x 55 mm (L x W x H) |
Electrical Specifications
| Parameter | Value |
|---|---|
| Supply Voltage | 15–24V DC |
| Analog Output Range | 0–20mA |
| Communication Port | RS-485 |
Input/Output Specifications
| Parameter | Value |
|---|---|
| Channel Count | 2 |
| Signal Range | 0–20mA |
| Resolution | 0.02 mA |
Isolation & Protection Specifications
| Parameter | Value | Notes / Description |
|---|---|---|
| Supply Reverse Polarity Protection | Integrated | Series protection diode (continuous protection, zero reverse leakage) |
| Supply Isolation | Non-Isolated | Common ground between input power, internal circuitry, analog outputs |
| 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 |
| RS-485 Isolation | 2.5kVrms | Isolated RS485 signal with other circuitry |
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 Output Connector
| Pin | 1 | 2 | 3 | 4 |
|---|---|---|---|---|
| Signal | CH1+ | CH1- | CH2+ | CH2- |
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 |
|---|---|---|---|
| AO1–AO2 | 40001–40002 | int16 | Analog output value (0.001mA resolution) |
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 |
|---|---|---|---|
| Holding Registers | 40001–40002 | int16 | AO1 to AO2 raw analog values |
| Holding Registers | 40021–40024 | float | AO1 to AO2 scaled engineering values |
| Holding Registers | 40101 | int16 | Modbus server (slave) address |
Detailed Register Tables
Analog Output Values
| Address | Type | Description |
|---|---|---|
| 40001–40002 | int16 | AO1 to AO2 raw analog values |
| 40021–40024 | float | AO1 to AO2 scaled engineering values |
Analog Output Calibration
| Address | Type | Description |
|---|---|---|
| 40901–40902 | int16 | AO1 to AO2 offset calibration |
| 40921–40924 | float | AO1 to AO2 gain calibration |
Examples: Offset value 1000 = +1.000mA, Gain value 0.005 = multiplier correction.

Analog Output Master Mode Configuration
These values are applicable when the device is in Master Mode and 40104 = 1.
| Address | Type | Description |
|---|---|---|
| 40991 | int16 | Remote device source register type to read. 0 = Holding Register, 1 = Input Register |
| 40992 | int16 | Remote device source data type to read. 0 = int16 raw data (0 to 20000 for 0~20.000 mA), 1 = float scaled data as per offset and gain, 2 = int16 scaled data as per offset and gain |
| 40993 | int16 | Remote device source start address |
| 40994 | int16 | Remote source channel count. Max channels is 2 |
Communication Settings
| Address | Type | Description |
|---|---|---|
| 40101 | int16 | Modbus server (slave) address (switch value) |
| 40102 | int16 | Baud rate selection |
| 40103 | int16 | Serial format selection |
| 40104 | int16 | Serial device mode. 0 = Server (slave), 1 = Client (master) |
| 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.
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).

Read Remote Device – Master Mode
When 40104 is set to 1, the module operates in Modbus Master Mode.
In this mode, the module periodically reads data from another Modbus server (slave) device and automatically updates its analog outputs based on the received values.
Working of Master Mode:
- Master Mode polls the remote device ID as set in the rotary or DIP switch.
- Master Mode polls the remote device at the interval defined by 40105.
- The source device register type is selected using 40991.
- The source data type is selected using 40992.
- The start address of the remote data is defined in 40993.
- The number of channels to read is defined in 40994.
- Read values are automatically mapped to AO1 and AO2 as per the count.
- If float mode is selected, two Modbus registers are used per channel.
- If int16 mode is selected, one Modbus register is used per channel.
- Offset and gain settings are still applied in Master Mode.
![]() |
![]() |
LED Indications and Diagnostics
| LED | Description |
|---|---|
| Power | Module power ON indication |
| Tx | RS-485 transmit activity |
| Rx | RS-485 receive activity |
Calibration and Engineering Values
The module internally generates analog current output from the 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, and percentage.
| Sensor Type | Output 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:
Raw Output Value = Offset + (Engineering Value / Gain)
Where:
- Raw Value = measured current in 0.001mA units
- Offset = calibration correction in 0.001mA units
- Gain = engineering unit multiplier
- Offset defines the minimum current output point
- Gain defines how many engineering units correspond to each raw count step above the offset
Examples:
| Raw to mA | Eng Input Value | Offset | Gain | Result |
|---|---|---|---|---|
| 0–100% to 4–20mA | 50.00 | 4000 | 0.00625 | 12.00 mA |
| 0–10 Bar to 4–20mA | 5 | 4000 | 0.000625 | 12.00 mA |
| 0–200°C to 4–20mA | 0 | 4000 | 0.0125 | 4.00 mA |
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

