网站大量收购闲置独家精品文档,联系QQ:2885784924

MODBUS闲说MODBUS闲说.doc

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
MODBUS闲说MODBUS闲说

关于Modbus是什么东东就无须多言了,因为这个协议实在是应用太广泛了,究其原因恐怕在于:1协议内容完全透明公开;2实现起来所需的硬件和软件都比较简单;所以在工作中经常碰到什么电度表、流量计需要和plc进行modbus通讯,或者两个厂家的产品之间需要交换数据也会想到用modbus。 这次想认真深入研究下,于是百度了半天,最后发现还是英文原版的modbus协议文本最好,毕竟是最正宗的啊。当然我是先看中文的,不明白了再翻英文的。另外还有一个就是安装了step7的modbus驱动(包括master和slave)后会有一个master和slave的pdf文件,其中讲述master的pdf文件还是不错的。举个例子我开始想当然的认为主站发给从站的电文中,地址就是如实写的,比如00001在电文中就是00 01,我用commix软件做master,发送报文过去,然后监控串口,我自以为返回的报文是“正确”的。然后换了一个专用的modbus模拟器发命令下去,却不对了,监控报文发现对方返回的内容偏移了一个bit,奇怪啊,后来查阅文档才发现,西门子网上课堂关于串口通讯的教程其中有个常见问题“如何计算modbus地址”,里面说可以参考modbus master 1.3节。 ――――――――――――――――――――――――――――――――― 在西门子的Modbus_master第1.3节有如下描述: In the transmission messages on the serial transmission line, the address esused in the MODBUS user system are referenced to 0.In the MODBUS user system itself, these addresses are counted beginning with 1. Example: The first holding register in the user system is represented asregister 40001. In the transmission message, the value 0000 Hex is transmitted as the register address when FC 03, 06, or 16 is used.The 127th coil is represented as coil 00127 in the user system and is assigned the coil address 007E Hex in the transmission message. 即Modbus规定的地址是从1开始的,例如输出位(COIL STATUS)的地址范围是从00001-09999,但是主站发给从站的报文中却是从00000开始的,即若要读取第127个输出位,则报文中该地址应为126即00 7E。 现在很多人都有这个共识:用plc和现场的设备做modbus通讯的话,先用pc机测试下。于是pc上的串口调试软件就成为必备的利器了。我在百度上找了不少相关软件,有通用的串口调试软件如commix,也有专用的modbus调试仿真软件: l COMMIX V1.4 只有一个可执行文件,可以自动生成modbus的crc校验码,但是毕竟不是专门的modbus调试仿真软件,用commix必须十分熟悉modbus报文格式; l MODBUS V3.16 开始我觉得这软件挺复杂的,不知道咋用。用着用着就上手了,觉得相当的好啊。加拿大的一个叫做Calta计算机公司的东东,功能很全,用起来也很方便,我觉得最好用的一个modbus专用仿真软件。支持master和slave模式(还支持monitor模式即只监控串口),支持1-6,15,16功能码(但是对于15,16只能一次写一个变量下去),支持串口的报文监视; l MODSCAN 只能做master,且不支持15,16功能码,界面还不错; l Modbus调试精灵V1.024 找了好几个网站下载都是一个可执行文件,偏偏报告缺少什么dll文件,看上去是因为软件是用mfc写的,没办法只好去网上下了几个mfc的dll文件才运行起来。界面过于简陋,只能做master但是居然支持写多寄存器也考虑得不错了。 关于MODBUS RTU的crc校验,在百度上居然发现某些网页给出的算法有误,真是晕,还好找到了两段程序,一个是lad写的(就是亿万论坛上有网友发的340做slave的例程)另外一个是scl写的,模拟了下发现结果是相

文档评论(0)

cduutang + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档