Hi, I am evaluating ScadaMobile on an iPhone 5 using ScadaMobile One. I have a Modbus source, which consists of the following. A Modbus TCP gateway at address 192.168.0.173, connected to a Modbus RTU device at address 7. I would like to read out holding register 40005. The Modbus TCP/RTU system is working correctly as I can view the register 40005 via other software tools on my PC such as Kepware. I have tried modifying your Modbus-ONE.csv file with the information above, but cannot get this to work. Would it be possible to send me a template file that corresponds to configuration I have described, for communications through a Modbus TCP/RTU gateway?
This sounds to me as a memory mapping issue. The SM app uses register numbers starting at number 1 as per the modbus specification (for example HR1 for holding registers and IR1 for input registers).
However some PLCs use different offsets to map different areas. It is very common for some controllers to start HR registers at location 40000 or 40001, this means that register 40005 is probably HR5 or HR6. Usually addresses in the range 40000 to 49999 refer to modbus holding registers from HR1 to HR10000, so 40005 should be HR6. Please check your PLC documentation to see whether this is the case.
If you are using a Modbus TCP/RTU gateway you should not need to do anything else for it to work. Please do not confuse it with an “Ethernet to Serial” gateway, in such case you need to add the rtu_mode=true; to any row in your file. On the first case the Modbus TCP/RTU gateway does the conversion, on the second case SM sends RTU commands embedded in Ethernet and the gateway just puts them as they are on the serial side.