回复:Modbus通讯说明

icegrave

  • 帖子

    249
  • 精华

    2
  • 被关注

    8

论坛等级:侠客

注册时间:2011-03-04

普通 普通 如何晋级?

发布于 2012-04-11 09:41:56

106楼

quote:以下是引用520yhlily在2012-04-09 13:44:20的发言:
quote:以下是引用wb210xa在2011-05-23 18:17:07的发言:
在坛子中看到很多弟兄们在做modbus通讯时遇到很多问题,包括modbus的请求或响应的基本知识,包括编程等等,现将我的一点拙见写出来,供大家参考和批评指正。
modbus协议最早有施耐德旗下的Modicon公司与1978年提出,目前已经称为国际标准和国家、行业标准。
该协议是典型的串行通讯协议,支持CRC或LRC校验。通讯速率支持2.4kbps~115.2kbps,更快也可以,但是误码率较高。支持RTU或ASCII通讯凡是,支持奇/偶/无校验。
RTU通讯时标准通讯参数为支持8个数据位、1个停止位、偶校验;
ASCII通讯时标准通讯参数为支持7个数据位、1个停止位、偶校验;
modbus总线理论上支持的从站个数可达248个(单条总线、不加中继时连接的设备个数与通讯端口和连接的设备有关,有的可连接16个设备,最大连接32个设备),不加中继双绞线距离可达1200米。
modbus通讯时最常用的是RTU通讯方式:
1.通讯时读请求格式如下:
从站地址(1个字节)、功能代码(1个字节)、从站数据起始地址(2个字节)、读数据长度(2个字节)、CRC校验(2个字节)。
2.读响应格式如下:
从站地址(1个字节)、功能代码(1个字节)、读数据长度(1个字节)、数据(长度与数据长度中的字节数相同)、CRC校验(2个字节)。
3. 写请求格式:
从站地址(1个字节)、功能代码(1个字节)、从站数据起始地址(2个字节)、写出数据长度(1个字节)、写出数据(长度与数据长度字节相同)、CRC校验(2个字节)。
4. 写响应格式:
从站地址(1个字节)、功能代码(1个字节)、从站数据起始地址(2个字节)、写数据长度(2个字节)、CRC校验(2个字节)。
如果为RTU通讯,校验方式为CRC校验;ASCII通讯时,校验方式为LRC校验方式。


谢谢楼主的精帖~~

这样的,我昨天调试了一下,给大家说下一完整设置:
MBUS_CTRL:波特率9600,无校验,超时时间1000ms
MBUS_MSG:Slave=1,RW=0,Addr=30001,Count=2,DataPtr=&VB500,Done=M0.1,
Error=MB1;
利用时间继电器,隔段时间触发MBUS_MSG去读仪表测量值,数据也能读上来,就是有点怪,比方说,我的测量值是100,我监控下的VB500=66,VB501=192(两个都是无符号的十进制数),这和测量值100完全扯不上关系啊~~~~
我尝试别的地址,例如40001、40002、30002, MBUS_MSG一触发就MB1=102,我一口气试了好多地址40003、40004·····40016、30002、30003·····30016,没有一个对的~~~
我还尝试了改变计数值,Count=1、Count=3、Count=4·····Count=8,也没有个对的,一如既往MB1=102~~~
我实在是没有办法了........
求大伙给支个招吧~~~~~~~~~~~~

请问你用PC串口调试助手或者其他modbus调试软件,跟仪表通讯上了吗?能正确读仪表里的数没有?
如果能,那就是已经得到正确的通讯参数和数据地址了。然后再考虑PLC跟仪表通讯。
而做这一切的前提就保证硬件(主要指通讯电缆如果是自己做的还要注意脚位S7-200的是3,8脚,不行的话就调换下)没问题。
生命就是次单程旅行
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-200

共有33257条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。