[西门子] Modbus RTU 通信教程连载(4)-从站的配置及编程

[复制链接]
查看201 | 回复0 | 2024-8-10 21:13:20 | 显示全部楼层 |阅读模式
>摘要
针对有朋友在易维通匠说提问的S7-1200与S7-200的Modbus通信问题,高级自动化工程师【北岛李工】编写系列技术文章对Modbus RTU通讯进行说明,希望对大家有帮助。北岛李工有丰富的PLC应用经验,工程师朋友们可进入工匠圈和李工多多交流。
来源:方正智芯
点击阅读原文,进入北岛李工的主页


今天这篇文章,我们来介绍从站S7-200 Smart的配置及编程。
本例程从站使用S7-200 Smart的CPU ST40,通信端口使用CPU模块本体的RS485接口,modbus地址为2。
打开编程软件STEP 7-Micro/WIN SMART,在指令库中找到文件夹“Modbus_RTU_Slave”,里面有两个指令:MBUS_INIT和MBUS_SLAVE,如下图:



令INIT用来初始化从站的地址、通信的波特率、存储器地址等相关信息。选中该指令将其拖放到主程序MAIN中,如下图:




该指令的相关参数含义见下面的表格:




注意:
1)MaxIQ用于设置modbus参数地址0xxxx与1xxxx对应的PLC的输出Q与输入I的地址,在S7-200 Smart中,最大可设置为256(不同类型的PLC该值不同)。当设置为0时,将禁用输入及输出的读写操作;


2)MaxAI用于设置modbus参数地址3xxxx对应的PLC的字输入寄存器的地址,也就是模拟量输入(AI)的地址。对于S7-200 Smart紧凑型CPU(CR20s、CR30s、CR40s、CR60s)而言,建议设置为0;其它标准型CPU,建议设置为56;


3)MaxHold用于设置modbus地址4xxxx或4yyyyy对应的PLC的保持存储区的大小,以字为单位。例如,如果要允许modbus主站访问2000个字节的从站V存储区,则MaxHold应设置为1000;


4)MBUS_INIT仅在CPU启动后的第一个扫描周期执行一次即可;如果更改通信参数,则重新再执行一次;


MBUS_INIT指令的完整代码如下图:




接下来我们将MBUS_SLAVE指令添加到主程序块中,并设置其参数如下图:


调用STEP 7 - Mciro/WIN SMART Instruction Library(指令库)需要分配库指令数据区(Library Memory)。库指令数据区是相应库的子程序和中断程序所要用到的变量存储空间。


MBUS_SLAVE指令库需要一个781个字节的全局 V 存储区。 分配方法如下:


右键单击“程序块”,在弹出的菜单中单击“库存储器”,如下图:



在弹出的库存储器分配对话框中,选择“Modbus RTU Slave”,如下图:




点击“建议地址”,系统会自动分配可用的V存储区作为库存储区。


李工的个人介绍

— THE END —





目前,易维通正在积极构建虚拟团队,控制器、驱动器、执行机构、智能制造、配电系统、职业发展、心理学、外语等核心技术分享虚拟团队都已具雏形。能力出众的你,别再犹豫了,加入我们!






在易维通你可以实现知识收费

你可以发现机会
你可以结交技术大牛
你也可以打造个人品牌


推荐阅读

  • labview与plc的modbus通讯,你会吗?
  • 西门子PLC通讯方式你都知道吗 ?
  • 经验|PLC与触摸屏通讯故障处理方法
  • 技术丨PLC自由通讯口设置
  • 『视频』Wincc与S7200 OPC通讯培训
  • PLC通讯入门第一课,必懂的接口232、422、485
  • PC Access与西门子PLC通讯你会用吗?
  • 技术丨S7-200与S7-300之间的通讯方式你知道几种?

点阅读原文,更有料



免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册哦

x
您需要登录后才可以回帖 登录 | 注册哦

本版积分规则