Today is...
Friday, December 19, 2014
Welcome to Control.com, the global online
community of automation professionals.
Advertisement
Featured Video...
Featured Video
A quick introduction to EtherCAT for motion control and I/O...
Advertisement
Our Advertisers
Help keep our servers running...
Patronize our advertisers!
Visit our Post Archive
modbus communication
Modbus Communication Problem.
By Zahid Ali Khan on 21 March, 2013 - 1:26 am

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.

By Lynn August Linse on 21 March, 2013 - 9:46 am

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 N5 "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.