Member Login
member
passwd
remember me on
this computer.

- join now -
- forgot username or password? -

Jump to a Date

Sponsored Communities
Cool stuff
Select a topic of interest:
...and press:
Neat Stuff
Control.com Stuff

Visit our shop for nerds in control lifestyle products.

Fortune
The state law of Pennsylvania prohibits singing in the bathtub.
RSS Feed
RSS feed Use this link to get an RSS feed of the Control.com article flow, for private, non-commercial use only:
www.control.com/rss/
To get a personalized feed, become a member at no cost.
Select a Page Style
Select one of the following styles:
- BluFu
- Classic
(cookies required)
advertisement
from the Automation List department...
Modbus Function Code 8, Sub Function Code 00
Local and wide area networking in factory automation. topic
Posted by Scott Alexander on 15 February, 2007 - 12:13 am
I'm looking into implementing Modbus function
code 8, sub function Code 00.

The Modbus Application Protocol Spec V1.1a shows the Data section of the message to be N x 2 bytes in size, yet the message does not contain any additional byte count information. This may be ok for Serial ASCII which wraps each message in special characters (':"<message>"\n") but Serial RTU does not. It is unclear to me how a
Modbus Slave could determine the end of such a message.

Does anyone have any input on this? could this be a typo in the spec? All additional function code 8 sub function codes show fixed size (two
byte) Data sections.

Thanks.


Posted by Max Power on 16 February, 2007 - 12:01 am
FYI: Many devices do not support this function in either master or slave mode.

Each subfunction has it's own special definition for the packet.

From the book:
"Most of the diagnostic queries use a *two–byte* data field to send diagnostic data or control information to the slave."

Function 8, sub function 0000 only has a fixed length, 2 bytes long, data field. Therefore there is no need to send 'N' and it should be easy to determine the end of the packet.

FYI: One of the methods used to determine the end of the packet is to use the packet timeout which is typically 3.5t (byte-time) (and a fixed time for fast baud rates).

-Max


Posted by Andrzej on 16 February, 2007 - 12:28 am
Hello,

In Modbus RTU the interval of at least 3.5 character times marks the end of the message. A new message can begin after this interval.

Regards,
Andrzej
www.modbus.pl


Posted by Scott Alexander on 16 February, 2007 - 12:58 am
A more complete discussion here:

http://groups.google.com/group/NModbus-discuss/browse_thr ead/thread/d642162d5f68a36c

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-2009 Nerds in Control, LLC. All rights reserved.

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

Advertisement
Our Advertisers
Help keep our servers running...
Patronize our advertisers!