Help with Modbus RTU

Hello I have a device I'm trying to read the Input Registers from, we currently have a wise-5800 performing data acquisition from this device, the RTU settings its querying decimal addresses and looking at the 3x registers in the configuration I can see and does log the data.

I'm now trying to query the data with a Milesight UC300, after many hours I realised that the input query required to be in hexadecimal so my node address which is 17 had to be entered as 11 I can see on the device the frames seem count goes up but does not return any data with no errors on the UC300

I've confirmed the Polarity, buad rate and rs485 settings I've tried every variation of the query in the software but it's confusing, the values I'm trying to retrieve are int16 and unsigned, in modbus tolls on Windows I can scan the same addresses and return values on both registers 3x and 4x using decimal slave ID and addresses Could the problem be the UC300 is sending it as hexadecimal when it needs to be decimal?

Example on the UC300,

RS485 channel settings Slave - 11 (Decimal 17)
Address - 4 (Starting address of reading) Quantity - 1 (Set digits from starting address) Type - Input Register(int32)
Byte Order - ABCD (no options work)

The manual for the device says I need to query from 40000 if just using for example 4 doesn't work to enter as 40004, the wise 5800 data model is set to coil output 0x in modbus rtu settings with start address of 0 and 1 as continuous data number but in the block settings the address, number and type is set for input register 3x

Photos show a few different variations and addresses I've queried, but mbpoll shows all the registers at both 4x and 3x
 

Attachments

First off, you're not trying to read data from this Modbus slave with the UC300 while it is still connected to the wise-5800 master are you? Modbus RTU allows only one master.

What makes you believe the Slave ID in the UC300 must be entered in hexadecimal? From the user's guide (https://resource.milesight-iot.com/milesight/document/uc300-user-guide-en.pdf), the example image on page 22 shows a Slave ID of 255, implying it is in decimal.

The issue may be with your settings or your wiring. Also shown in the image mentioned above, it seems the registers are addressed using 0-based addressing in the UC300 (since the configuration for Channel ID 1 shows 0 for the Address).

What happens when you enter the following in the UC300?
Slave ID 17, Address 0, Quantity 1, Type Input Register (INT16)

For wiring, try swapping your + and - wires. Some devices use A and B labeling, which is not consistent among vendors as to which is + and which is -.
 
First off, you're not trying to read data from this Modbus slave with the UC300 while it is still connected to the wise-5800 master are you? Modbus RTU allows only one master.

What makes you believe the Slave ID in the UC300 must be entered in hexadecimal? From the user's guide (https://resource.milesight-iot.com/milesight/document/uc300-user-guide-en.pdf), the example image on page 22 shows a Slave ID of 255, implying it is in decimal.

The issue may be with your settings or your wiring. Also shown in the image mentioned above, it seems the registers are addressed using 0-based addressing in the UC300 (since the configuration for Channel ID 1 shows 0 for the Address).

What happens when you enter the following in the UC300?
Slave ID 17, Address 0, Quantity 1, Type Input Register (INT16)

For wiring, try swapping your + and - wires. Some devices use A and B labeling, which is not consistent among vendors as to which is + and which is -.
Thanks for the reply!

No, the wise is not connected at the same time

In the UC300 manual the other sensor inputs are required to be entered in hexadecimal, when I had the slave set to 17 the system would not see any frames, when I changed the ID to 11 the system saw frames just none valid and replied

I've tried all possible options over two days in regards to Polarity and I've confirmed with milesight that A is positive and B is negative

This is the manual to the device I'm trying to talk to

https://www.mpfiltri.com/FilesProdotti/8stJbU_ICM2.0EN.pdf
 

Attachments

I recommend trying to get the UC300 to communicate to your computer running a Modbus slave simulator, such as ModSim. Setup just a single register and confirm communications. ModSim, and many other slave simulators, can also show the traffic so you will be able to definitively confirm that you have entered the correct slave ID in the UC300 (the slave ID is the very first byte in the packet).
 
Hello I have a device I'm trying to read the Input Registers from, we currently have a wise-5800 performing data acquisition from this device, the RTU settings its querying decimal addresses and looking at the 3x registers in the configuration I can see and does log the data.

I'm now trying to query the data with a Milesight UC300, after many hours I realised that the input query required to be in hexadecimal so my node address which is 17 had to be entered as 11 I can see on the device the frames seem count goes up but does not return any data with no errors on the UC300

I've confirmed the Polarity, buad rate and rs485 settings I've tried every variation of the query in the software but it's confusing, the values I'm trying to retrieve are int16 and unsigned, in modbus tolls on Windows I can scan the same addresses and return values on both registers 3x and 4x using decimal slave ID and addresses Could the problem be the UC300 is sending it as hexadecimal when it needs to be decimal?

Example on the UC300,

RS485 channel settings Slave - 11 (Decimal 17)
Address - 4 (Starting address of reading) Quantity - 1 (Set digits from starting address) Type - Input Register(int32)
Byte Order - ABCD (no options work)

The manual for the device says I need to query from 40000 if just using for example 4 doesn't work to enter as 40004, the wise 5800 data model is set to coil output 0x in modbus rtu settings with start address of 0 and 1 as continuous data number but in the block settings the address, number and type is set for input register 3x

Photos show a few different variations and addresses I've queried, but mbpoll shows all the registers at both 4x and 3x
As others have stated,
Verify that your communication settings are correct, example: 9600, 8, N, 1.
Try swapping the A, B communication wires.
Verify Modus functionality with simple modbus Rtu temperature sensor from Amazon.
Once you know you have working modbus, make sure the starting address is correct.
Your on the right direction, you'll get it working.
 
Thread starter Similar threads Forum Replies Date
J Modbus 0
R Modbus 2
C Modbus 4
D Modbus 8
F Modbus 3
Top