The manufacturer is confused and has poor documentation.
The correct Function Code
The term
Input Registers has a very specific meaning in Modbus.
In Modbus terminology Input Registers means the area of memory which is addressed by Function Code 04 and is read-only. It is represented by memory (3)xxxx, or (3)xxxxx.
The Read Function Code 03 (dec)
(circled in green, below) on the manufacturer's register table is also very specific Modbus terminology: Function Code 03 addresses Holding Register(s). Holding Register memory is represented by (4)xxxx or (4)xxxxx
I assert that their term "
Input Registers- Words"
(circled in red) is incorrect and should be
Holding Registers - Words, because they designate Function Code 03 to be used to read the data from registers. The Function Code overrides the misnamed terminology.
The correct number of registers per value
The sequence of registers from 4096 to 4098 indicates that each data value is 32 bit long integer, consisting of two sequential/contiguous 16 bit Modbus registers, as does the column
Dimension [word] (circled in blue), which states, 2 words (registers) for 4096 (1000h).
As Steve mentioned in post #5, some slaves reject a request for 'partial data'. It is therefore important to request 2 registers for the Phase voltages (and most of the other values).
The Correct Master message
The master's request message should be
slave 8: 08h
Function code 03: 03h
start register: 1000h
length of data: two words/registers: 00 02
CRC: CRC CRC
08 03 10 00 00 02 CRC CRC
This is not what is in the data stream:
The Function code, circled in green has to be 03.
The requested register count, circled in red, must be 02
Master software tool
What is called
Data Type (circled in red) is NOT the function code, it is the leading numeral used by humans to identify the data type or memory area.The leading numeral for input registers is (3)xxxx
This is confirmed by the
Address (circled in blue): 34097, [which I would write (3)4097 because (3)is not part of the modbus message.]
Since Function Code 03 is the correct Function Code, and FC 03 addresses the Holding Registers in the (4)xxxx memory, the
Data Type needs to be switched to whatever comes up on the list for
4: (probably 4: Holding Reg)
Then
Address will appear as: 44096
I suspect that you've done this at one point or another in the combinations of trials, but stay away from single (one) register reads (device might well generate exception code) and stick with Function Code 03, in spite of the misnamed Input Registers on the mfg's document.
Serial Comm
But none of this will produce a valid read transaction until the serial data makes sense.
The USB/485 converter must be on the right COM port or you'd get nothing.
A and B must be OK or you'd get nothing (time out).
Terminating resistors aren't critical at 4800/9600/19.2K with short table top distances (cable lengths).
Have you run a 3rd wire for signal ground-to-signal ground?