以下以两台CPU ST40之间的Modbus现场总线通信为例介绍S7-200 SMART系列PLC之间的Modbus现场总线通信。
【例6-8】模块化生产线的主站为CPU ST40,从站为CPU ST40,主站发出开始信号(开始信号为高电平),从站接收信息,并控制从站的电动机的起停。
【解】
1.主要软硬件配置
1)1套STEP7-Micro/WIN SMART V1.0。
3)2台CPU ST40。
4)1根PROFIBUS网络电缆(含两个网络总线连接器)。
Modbus现场总线硬件配置如图6-64所示。
图6-64 Modbus现场总线硬件配置图
2.相关指令介绍
(1)主设备指令
初始化主设备指令MBUS_CTRL用于S7-200 SMART端口0(或用于端口1的MBUS_CTRL_P1指令)可初始化、监视或禁用Modbus通信。在使用MBUS_MSG指令之前,必须正确执行MBUS_CTRL指令,指令执行完成后,立即设定“完成”位,才能继续执行下一条指令。其各输入/输出参数见表6-12。
表6-12 MBUS_CTRL指令的参数表
MBUS_MSG指令(或用于端口1的MBUS_MSG_P1)用于启动对Modbus从站的请求,并处理应答。当EN输入和“首次”输入打开时,MBUS_MSG指令启动对Modbus从站的请求。发送请求、等待应答、并处理应答。EN输入必须打开,以启用请求的发送,并保持打开,直到“完成”位被置位。此指令在一个程序中可以执行多次。其各输入/输出参数见表6-13。
表6-13 MBUS_MSG指令的参数表
【关键点】指令MBUS_CTRL的EN要接通,在程序中只能调用一次,MBUS_MSG指令可以在程序中多次调用,要特别注意区分Addr、DataPtr和Slave三个参数。(www.daowen.com)
(2)从设备指令
MBUS_INIT指令用于启用、初始化或禁止Modbus通信。在使用MBUS_SLAVE指令之前,必须正确执行MBUS_INIT指令。指令完成后立即设定“完成”位,才能继续执行下一条指令。其各输入/输出参数见表6-14。
表6-14 MBUS_INIT指令的参数表
MBUS_SLAVE指令用于为Modbus主设备发出的请求服务,并且必须在每次扫描时执行,以便允许该指令检查和回答Modbus请求。在每次扫描且EN输入开启时,执行该指令。其各输入/输出参数见表6-15。
表6-15 MBUS_SLAVE指令的参数表
【关键点】MBUS_INIT指令只在首次扫描时执行一次,MBUS_SLAVE指令无输入参数。
3.编写程序
主站和从站的程序如图6-65和图6-66所示。
【关键点】使用Modbus指令库(USS指令库也一样),都要对库存储器的空间进行分配,这样可避免库存储器用了的V存储器让用户再次使用,以免出错。方法是选中“库”,单击鼠标右键弹出快捷菜单,单击“库存储器”,如图6-67所示,弹出如图6-68所示的界面,单击“建议地址”,再单击“确定”按钮。图中的地址VB570~VB853被Modbus通信占用,编写程序时不能使用。
图6-65 主站程序
图6-66 从站程序
图6-67 库存储器分配(1)
图6-68 库存储器分配(2)
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。