modbus communication

Z

Thread Starter

Zahid Ali Khan

Hi,

I have problem with indicator on modbus. I have try to check indicator with modbus tool and found error "insufficient bytes received. I want to read Address 40001 from indicator. I get communication traffic like this.
000017-TX: 01 03 00 00 0A C5 CD
000018-RX: 01 03 02 20 EE F9 1A.

I did not under stand what problem with indicator While its other model communicate with plc ok.
 
L

Lynn August Linse

Check with the device documentation. I suspect if you poll for 1 register, then your master will be happy with the 1 register response.

Although this isn't normal, this is common enough. You are trying to read 10 words (so expect 20 bytes), but the device is only returning 1 word (2 bytes) ... that is likely all that the device has: 1 register. The standard way for a Modbus device to behave would be to pad 9 words of 0x0000 or 0xFFFF to fill out the 10 register request, or return an exception.

However, some vendors don't do that. I assume this vendor is just returning what they have.

For example, some flow computers have a 'configurable area' where the user builds a series of custom data registers. If say the user has put 4 registers there, they can poll for 125 registers, and only receive 8 bytes of response. If nothing is configured, then they will see zero bytes (literally 0x01 03 00 + CRC). This drives standard Modbus masters crazy, as they don't know how to handle zero bytes of response data.
 
hello,

if you look your tx message,packet N°5 "0A" hexadecimal value, means you are intending to read 10 holding registers from address "00 00" which is register 4001.

Depending to the item you are interrogating, can you get 10 registers?
if you only request one value (register 4001)you should enter "01".

More over, looks like ASCII transmission mode.
your TX request should finish with "2D" instead of "CD".
there's something already wrong for emission of request.

dudy
 
Re: More over, looks like ASCII transmission mode.
your TX request should finish with "2D" instead of "CD".

It's RTU, with three 00's, not two as shown previously, the crc is then C5CD
000017-TX: 01 03 00 00 00 0A C5 CD
000018-RX: 01 03 02 20 EE F9 1A.
 
Top