8.2. FRAME STRUCTURE OF MODBUS-RTU PROTOCOL
Device address (1-byte) Function (1-byte) Dane (n-bytes) CRC-16Lo (1-byte) CRC-16Hi (1-byte)
8.3. USED FUNCTIONS OF MODBUS-RTU PROTOCOL
Code of the Function
Description
03 (0x03)
Reading of controller parameters from the HOLDING MODBUS-RTU registers
04 (0x04)
Readout of controller parameters from INPUT MODBUS-RTU registers
06 (0x06)
Setting of a single HOLDING MODBUS-RTU register
8.3.1. 0x03/0x04 FUNCTION - READING OF THE 16-BITS VALUE OF REGISTERS [4X/3X-
REFERENCES]
Function 0x03 / 0x04 are used for readout the registers from ADA-4040PC8, in which are available measurement values and status
values of JCT controller.
The measurement values readout form MODBUS-RTU register is presented by a 16-bit register.
The registers with the measurement value are in the integer format of 16-bit sign (in C/C++ type short int).
The actual measurement value is obtained from the read register using the following algorithms, using the appropriate
DW
factor value
(see table below).
Algorithm 1.
Readout register is saved to regular type variable (float) and then divide it by the
DW
factor.
/ / Fragment of code in C language (VS6.0) presenting above algorithm
short int siMeasureReg;
float fMeasureVal;
......
fMeasureVal = (float) siMeasureReg;
fMeasureVal = fMeasureVal / DW;
Algorithm 2.
Readout register is saved to regular type variable 16-bit (short int) and then divide by the
DW
factor
, received change of
the dividing it is a number of the hundredth parts of the measurement value.
/ /
Fragment of code in C language (VS6.0) presenting above algorithm
short int siMeasureReg;
div_t div_MeasureVal;
......
div_MeasureVal = div ((int) siMeasureReg, DW);
printf ("Total value of the measurement = % d\n, the hundredth parts of the value of the measurement = % d\n", div_MeasureVal.quot,
div_MeasureVal.rem);
Query register 40124 / 30124 (Cp SV value)
Byte no.
Designation
Size
Value [hex]
00
Converter Address
1 Byte
40 [01 to F7]
01
Function Code
1 Byte
03 / 04
02
Address of the register Hi 1 Byte
00
03
Address of the register Lo 1 Byte
7C
04
Number of registers Hi
1 Byte
00
05
Number of registers Lo
1 Byte
01
06
CRC-Lo
1 Byte
- - -
07
CRC-Hi
1 Byte
- - -
Example.
Query for a value from the register address 40124 / address 30124 (Cp SV value).
40-03-00-7C-00-01-CRCLo-CRCHi
40-04-00-7C-00-01-CRCLo-CRCHi
13
ADA-4040PC8