I'm using Advanced HMI's ModbusTCP driver (v341) to connect to a VLINK MESR911 Module which in turn is connected RS-232 to a Badger M-5000 flow meter. (The purpose of the MESR911 is to convert Modbus TCP to Modbus Serial.)
Software supplied by Badger running on my laptop is able to read the M-5000 when connected directly to the M-5000 with the serial cable.
However, depending on what address I attempt to read, I get "Illegal Modbus Function" or "Invalid Modbus Address" errors when using the AdvancedHMI ModbusTCP driver connected to the MESR911.
I want to read the following Modbus address: 30541. When I do, I get Invalid Modbus Address displayed in the advancedhmi control. As I mentioned, attempted reads of other addresses will return Illegal Modbus Function or Invalid Modbus Address.
I have found through experimentation that I can read modbus address "40001" successfully. Well, at least AdvancedHMI controls display a "2" when I read that address instead of an error.
I've done lots and lots of trouble shooting. The config for the MESR911 is very simple and I've been through it all making changes just to see what would happen. Any deviation from what I think should be the proper config yields COMM ERRORS or similar AdvancedHMI type responses. I've changed the Modbus UnitID in the M-5000 and have witnessed AdvancedHMI complain about that. Changing the unitid value in the ModbusTCP driver to match the meter setting corrects the problem. So I feel that I'm getting through to the Meter using AdvancedHMI.
The address 40001 that I believe that I'm able to read is a UINT 16. The value that I want to read is a FLOAT32 at address 30541. However, other UINT 16 address fail to read as well. I don't know if being able to read 40001 is significant and if I'm having an offset issue, though I can't read any 30001 or 10001 or 00001 addresses.
I noticed that the AdvancedHMI modbusTCP driver is described as Alpha software at this time. I'm wondering if the driver is causing the problem or if it's something that I'm missing or doing wrong.
Any help and advice would be appreciated.