from the Automation department...
modbus communication
Communications systems and equipment. topic
Posted by Zahid Ali Khan on 21 March, 2013 - 1:26 am

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.

Posted 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.

Posted by dudy on 21 March, 2013 - 10:02 am

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.


Posted by Bruce on 25 March, 2013 - 10:21 pm
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.

Your use of this site is subject to the terms and conditions set forth under Legal Notices and the Privacy Policy. Please read those terms and conditions carefully. Subject to the rights expressly reserved to others under Legal Notices, the content of this site and the compilation thereof is © 1999-2014 Nerds in Control, LLC. All rights reserved.

Users of this site are benefiting from open source technologies, including PHP, MySQL and Apache. Be happy.

Air is water with holes in it
Advertise here
our advertisers
Help keep our servers running...
Patronize our advertisers!
Visit our Post Archive