Register Address
32-bit floating [volts]
16-bit integer [counts]
0
Analog Input 0
Analog Input 0
1
Analog Input 1
2
Analog Input 1
Analog Input 2
3
Analog Input 3
4
Analog Input 2
Analog Input 4
5
Analog Input 5
6
Analog Input 3
Analog Input 6
7
Analog Input 7
8
Analog Input 4
9
10
Analog Input 5
11
12
Analog Input 6
13
14
Analog Input 7
15
Table 3.6: Analog input register address map
Function Code 4 ($04) - Read Input Registers
Modbus function code $04 is a request to read input registers. In its default configuration the RIO
responds to this command with analog output register information.
Function code 4 has very different behaviors depending on the configuration commands set. A
synopsis and brief list of commands that effect how the RIO responds to function code 4 is in Table
3.7 below:
Command
Description
MV
Swaps the response of function code 3 and 4
MI
Configures if the RIO will respond with a 16-bit integer or a 32-bit float
Table 3.7: Important configuration commands for Function Code 4
The RIO will accept different address ranges for a read input registers request depending on the state
of the MI command:
MI 0 is set (register data is 16-bit integer [counts])
Address range: $0000-$000E
Quantity of Registers: up to $0008
MI 1 is set (register data is 32-bit floating [volts])
Address range: $0000-$0007
Quantity of Registers: up to $0010
The RIO will respond to a request with function code $04 followed with a byte count (in hex) as
calculated by Equation 3.3 on page 27.
The RIO will respond with an input registers field data the size of the byte count field calculated in
Equation 3.3.
The data is in ascending order from the analog output referenced in the address.
Chapter 3 Communication ▫ 28 RIO-47xxx Rev. 1.0r