打印

modbus RTU如何编程,知道一帧数据结束.

[复制链接]
8752|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
snakeemail|  楼主 | 2010-4-24 17:01 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1.RTU原始的结构是这样.
起始位|地址|命令|数据|crc|结束位
我看了协议,那么要判断一桢数据结束,不是要等3.5个字符的时间???
那我要有个定时器,不停的判断这个数据帧是否结束了??而且要等待3.5个字符的时间,才能知道一个数据帧是否结束??

2.我能不能这样改一下,在命令后加一个"长度",用来判断一个数据帧,是否结束。

起始位|地址|命令|长度|数据|crc|结束位

相关帖子

沙发
nightmara| | 2010-4-24 17:25 | 只看该作者
先给定时器定时大概3.5个字符(更大点也可以),然后在串口的接收中断服务程序中,先将定时器的计数寄存器清零,然后重新开始定时器,如果接收的不是最后一个字节,那么在下个字节来的时候定时器就会又从零开始计数,如果后面再没有数据进来的话,定时器就会因为定时时间到而进入定时器中断,就表示数据接收结束了。

使用特权

评论回复
评分
参与人数 1威望 +1 收起 理由
dogandog + 1 一语中的啊
板凳
wuaaa| | 2010-5-31 15:38 | 只看该作者
又学到点东西,谢谢楼上的

使用特权

评论回复
地板
chunyang| | 2010-5-31 18:29 | 只看该作者
如果要做可以夸厂家的兼容性产品,规范必须严格遵守,如果自成体系不考虑与标准兼容,那么可以自定格式,Modbus主要的是思想,只有具体应用的行业形成了严格的行业规范。

使用特权

评论回复
5
pqsh| | 2010-6-4 10:28 | 只看该作者
结束位?CRC?难道不是结束?

使用特权

评论回复
6
dogandog| | 2011-3-30 16:23 | 只看该作者
先给定时器定时大概3.5个字符(更大点也可以),然后在串口的接收中断服务程序中,先将定时器的计数寄存器清零,然后重新开始定时器,如果接收的不是最后一个字节,那么在下个字节来的时候定时器就会又从零开始计数 ...
nightmara 发表于 2010-4-24 17:25


太感谢你的回答了,这个问题困扰我一天了

使用特权

评论回复
7
ccitlad| | 2016-3-5 14:44 | 只看该作者
modbus 主要的是思想 ,~!  不错 学习了

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:提供500W线性 交流电源。0~300VAC,45~500Hz 提供10KW,0-330V直流电源,具体见http://blog.21ic.com/user1/3639/archives/2012/88528.html

547

主题

1910

帖子

8

粉丝