打印

关于MODBUS通信的问题

[复制链接]
2451|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
ningling_21|  楼主 | 2011-8-17 14:36 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
现象:用电脑给一个测量仪表发送数据,可以正确返回数据。
例如:发送-      01 01 00 00 00 06 BC 08 (含CRC校验码)
      仪表返回:-01 01 01 00 51 88    (含CRC校验码)

改用单片机给仪表发送数据,返回数据就不正确了。
例如:发送-      01 01 00 00 00 06 BC 08  (含CRC校验码)
     仪表返回: -C0 81 02 00 00 B9 B8  (含CRC校验码)

所用单片机:8051F340,波特率9600 ,8位数据。

判断通信数据正确错误方法:CRC校验
例如:C0 81 02 00 00 B9 B8  (CRC校验码:0XB8B9 )
这组数据的校验码不是 0XB8B9 按CRC16计算应该是:0XADED

相关帖子

沙发
受不了了| | 2011-8-17 15:44 | 只看该作者
有可能是你的波特率定时器初始值不准,由于C8051F速度快,定时器取附近很大范围的初始值都能通讯,但实际可能就几个值的成功率高些,仪表不可能返回C0这样的值的,那是站号,还轮不到去检查CRC,你收到的第一个字节就错了

使用特权

评论回复
板凳
福州观沧海| | 2011-8-17 16:39 | 只看该作者
多半是波特率不准

使用特权

评论回复
地板
hotpower| | 2011-8-17 16:50 | 只看该作者
哈哈,俺用hotwc3看了,不错。

http://www.hotpage.net.cn/HotPower_HotAjax.html

使用特权

评论回复
5
hotpower| | 2011-8-17 17:00 | 只看该作者
3楼正确!

正常应该返回6个字节。
而你错误的是7个字节。

即单片机发送速率低,pc接收速率高。

你可以用hotwc3分析数据流。

使用特权

评论回复
6
gx_huang| | 2011-8-17 21:02 | 只看该作者
其实就是调试的方法问题。
你可以用PC检测串口的数据,或者用示波器看波形。

使用特权

评论回复
7
hotpower| | 2011-8-17 21:10 | 只看该作者
实际将单片机与PC通讯测试即可。
估算单片机速度低了5~7倍之间,从数据可以分析。

使用特权

评论回复
8
ningling_21|  楼主 | 2011-8-17 21:18 | 只看该作者
当把单片机与PC相连的时候,PC收到的数据是正确无误的...

经过多次上下电和程序调试,这个问题又莫名其妙的消失了...
感觉,有可能是硬件接线收到外界干扰导致...
现在两种情况下,收到的数据一样的。

感谢楼上几位.

使用特权

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

本版积分规则

5013

主题

17744

帖子

51

粉丝