打印

请问一下MODBUS通讯丢数据一般是出现什么问题了?

[复制链接]
3409|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
pilibeibei|  楼主 | 2007-4-28 10:30 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
问一下,大家做通讯的时候丢数据一般都是出现在什么情况下?我的MODBUS通讯在特定数据时丢掉了一个byte的数据,本来有53个bytes结果只收到了52个,查了一下原来是其中一个丢了。问题应该是出在我写的上位机通讯软件上,因为我用MODSCAN的调试工具时那个字节就能收到,正常接收 。

相关帖子

沙发
xzl| | 2007-4-28 10:33 | 只看该作者

上位机软件采用什么语言写的?

使用特权

评论回复
板凳
pilibeibei|  楼主 | 2007-4-28 10:36 | 只看该作者

用什么语言写的应该不重要

Delphi,用的是spcomm 控件。什么语言写应该不重要,我估计SPCOMM有缺陷吧

使用特权

评论回复
地板
pilibeibei|  楼主 | 2007-4-28 11:04 | 只看该作者

比较奇怪的地方是他在特定的数据条件下丢掉。

只有在某一端数据时,那个字节就丢掉了,百思不得其解啊

使用特权

评论回复
5
tage| | 2007-4-28 16:00 | 只看该作者

是不是计算机认为的控制字符

比如什么 0D  0A  什么的

使用特权

评论回复
6
pilibeibei|  楼主 | 2007-4-28 16:32 | 只看该作者

不会的。不是一个数,是一段

我测了一下,大于0x10就丢了

使用特权

评论回复
7
冯广州| | 2007-7-4 22:03 | 只看该作者

可能当结束符了吧!

就是说你的最后一个数据的低四位是0的时候就丢失了数据。MODBUS 的一帧数据的结束符是3.5-4.5个空位作为一个字符。会不会是因为你下位单片机把这个字符当作结束符了呢?
我还很想请教这个问题:MODBUS RTU通讯协议?如何识别3.5-4.5的字符,作为起始字符.又如何实现这个3.5-4.5的字符作为结束符呢?

使用特权

评论回复
8
hotpower| | 2007-7-4 22:23 | 只看该作者

估计是SPCOMM没玩好~~~

使用特权

评论回复
9
wtfshxkj| | 2007-7-5 07:26 | 只看该作者

协议

建议仔细研读ModBus-IDA.ORG 及 国家标准提供的MODBUS资料。
   此外,可优先实现较为简单的ModBus-ASCII通讯,此后再进行ModBus-RTU的编写(暂时将起始、结束标志的标准放宽)。

使用特权

评论回复
10
冯广州| | 2007-7-5 10:07 | 只看该作者

想用RTU

MODBUS ASCII已经可以了 。只是这个效率比较低,所以想用RTU

使用特权

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

本版积分规则

4

主题

28

帖子

0

粉丝