西门子200SMARTModbusRTU通讯实例,附程序详解.pdf

西门子200SMARTModbusRTU通讯实例,附程序详解.pdf

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
通讯材料: 1 )、 PLC2 台,分别是 200SMART 的 CR60 和 SR20;2 )、 2 个 DP 插头 (6ES7972-0BX12-0XA0)3)、连接导线若干( plc 电源及通讯) 验证内容: 令:CR60 PLC为主站, 发送 PLC系统时钟 (8 个字节的信息) 给 SR20 从站; SR20 从站发送一个双字的循环移位数据给主站,并由通讯数据 VD100 接收输出到 QD0。 主站程序: 在验证过程中曾经出现一个错误,使 MSG 指令始终显示为 6,表示从站无响应。我验证时, 由于连接 2 台 plc 之间的 3+、8-没有确认,造成接线错误,使 MSG 的 error 错误信息为 6 , 检查后找到原因,重新接线后仍然报警 6 。最后检查为控制程序不完整,主要原因是没有给 MB0 一个初始化操作,造成错误值没有得到有效的刷新。于是,在程序段 1 中加入初始化 操作得到解决。 主站 MSG 指令主要理解 Addr 地址的应用,下面有描述。 从站程序:从站通讯地址设置为 1# 从站自 VB31 开始为读取主站 VB11 开始的 8 个字节主站系统时钟数据, 指定 VB31 的起始地 址是由 Addr 地址 40011 定义的, 从站循环指令 VD11 运行结果, 将由 Mbus_init 的 Holdstart 定义的起始地址发送和接收。 编写小结:自简而深进行编写 Modbus RTU 通讯程序,相对从站通讯程序比较简单,仅仅只 是指定通讯种类由 Mbus_init 管脚指定 maxIQ/maxAI/maxHOLD/Holdstart 定义,其它管脚根据主站定义匹配进行,相对主 站需要根据从站地址偏移量来确定。 通讯数据: Modbus 通讯程序相对的难点是通讯映射的地址关系。 主站读取从站的数据,起始地址是根据从站 Holdstart 管脚定义的起始地址开始算,而不是 指从站的 V 区物理地址。在验证程序中,从站的 Mbus_init 起始地址为 VB11,那么,主站 MSG 指令的 Addr 40001 ,应该是指从站的 VB11 地址。 同理,从站读取主站系统时钟,主站的 MSG 指令的 Addr 40011 ,对应到从站的地址相当于 偏移了 10 个字(偏移量 10word + 11byte = 31byte ) ,即为 VB31 开始的 8 个字节中存放, Modbus 通讯地址计算是 40001 开始的。

文档评论(0)

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

至若春和景明,波澜不惊,上下天光,一碧万顷,沙鸥翔集,锦鳞游泳,岸芷汀兰,郁郁青青。

1亿VIP精品文档

相关文档