I’m trying to read the Internal Temperature variable of a Modbus / RTU device.
I connected the device and configured the addressing but the created tag has zero value.
I have tried different configurations but the internal temperature tag always has null or zero value.
I attach screenshots of the configuration that I think is the correct one.
Could you help me?Am I missing something?
I don’t really know what the “code” entry in the table is supposed to be, but I don’t think it’s a Modbus entry. Also, it appears the the data is formatted as temp*10, so likely this will be an integer instead of float. What I can’t tell is whether the 50-51 entry in the table are supposed to be bytes or words.
Try entering 80 as the address (80 is the decimal equialent of 50) and the type as a 16-bit Int (if you get data, but is still doesn’t look quite right, then change your data type until you get something that works.
A couple of points:
It is unusual (though not impossible) to use a port number of 30000 - the default is normally 502.
I find it easier to ignore Address Mapping initially and make sure you can read the data directly first. You should try creating a SQLTag and looking directly at the holding register. From the information in your screenshots the address would be something like [Analizador]3.HRF29 (if it is indeed a 32 bit float held in 2 successive holding registers) . Once you have this working you can decide whether you want to use Address Mapping.
If this doesn’t work, look at the gateway console and see whether there are any errors.
Both of you were right.
- The port number should be 502 to work with Modbus.
- The Modbus address must be in decimal and the “code” doesn’t mean anything for the address configuration.
In addition, in my case the registers to read are Input Registers.
So, I attach the correct address configuration for this case. ( With Radix = 16)
Thank you very much.