What is the make and model of the Modbus device from which you are reading these data? Can you provide a user manual for it?
Or perhaps your tech guy is writing code for a custom Modbus device?
but modbus dont have 40000 address register.
The Modbus Protocol does
NOT have
ANY starting addresses such as 40000 or 40001.
Cf.
here:
The Modbus Data Model has four data tables (types): Discretes input (
sic; 1-bit; read-only); Coils (1-bit outputs; read or write); Input Registers (16-bit; read-only); Holding Registers (16-bit; read or write).
Cf.
here:
Modbus has two addressing models for each table (type) of data:
- a Modbus data address model, where the addresses run from 1 to n (n <= 65536 decimal);
- a PDU* address model, where addresses run from 0 to 65535 (decimal) = 0x0000 to 0xFFFF (hexadecimal).
If you want to figure this out, the best thing to do would be to get the first ten or so Holding Registers, starting at PDU address 0 (0x0000), through PDU address 9 (0x0009(=); this would
probably be the same as asking the vijeo citect to read 10 registers starting at pseudo-"address" 40001. Then post here, preferably in hexadecimal, what those ten integer values are for one Modbus read, and also what you think the 32-bit floating-point value was (in decimal) at the time of that read.
We can help you work from there; in the end, it is all about bookkeeping.
* PDU => Protocol Data Unit.