在STEP 7中创建一个项目(见随书光盘中的例程PB_CTRL),生成两个站,CPU模块均为CPU 413-2(见图4-25)。
图4-25 SIMATIC管理器
新建一条DP网络,设置其配置文件为“标准”。点击SIMATIC管理器工具栏上的按钮,打开网络组态工具NetPro,将两个站连接到DP网络上,设置它们的MPI和DP站地址分别为2和3(见图4-26),“工作模式”均为DP主站。
图4-26 网络与连接的组态
选中2号站的CPU,双击下面的连接表的第1行,生成一个双向的S7连接。
S7-400可以通过SFB改变远程设备的运行状态,属于单边编程方式。
1.调用SFB19“START”使远程设备热启动或冷启动
在SFB 19“START”的请求信号REQ的上升沿,激活由S7连接ID寻址的远程设备的热启动或冷启动。远程设备应满足下列条件:
1)S7-300/400或C7-300的CPU处于STOP模式。
2)CPU的模式选择开关在RUN或RUN-P位置。
完成暖启动或冷启动后,远程设备切换到RUN模式,并发送一个执行成功的肯定应答。
远程的S7-400CPU处于STOP模式时,调用SFB 21“RESUME”,可以使它热启动。
2.调用SFB20“STOP”将远程设备切换到STOP模式
如果远程S7/M7-300/400或C7-300的CPU处于RUN、HALT或STARTUP模式,且CPU的模式选择开关在RUN或RUN-P位置,在SFB 20“STOP”的请求信号REQ的上升沿,由S7连接ID寻址的远程设备将切换到STOP模式。
下面是3号站的OB1调用SFB19和SFB20的程序。
程序段1:将远程设备切换到RUN模式
程序段2:将远程设备切换到STOP模式
3.SFB 19和SFB 20的公用参数
SFB 19和SFB 20的参数PI_NAME是指向存储要启动的程序的名称(ASCII代码)的数据区。对于S7PLC,参数PI_NAME应为字符串‘P_PROGRAM’。符号名为data的DB 2中定义了一个有5个字元素的数组pi_name。下面是OB100中的程序,用于将字符串“P_PROGRAM”写入该数组。值得注意的是,最后一个字的字符“M”后面有一个空格。
如果通信伙伴是S7系列PLC,不给参数IO_STATE分配任何数值,其默认值为B#16#0。
完成SFB指定的操作后,远程设备切换到指定的运行模式,并发送一个肯定的执行应答。接收到肯定应答之后,SFB的状态参数DONE被置位为1。
如果没有给SFB 19的参数ARG分配数值,则在远程设备上执行热启动。如果远程设备支持冷启动,且为ARG分配数值“C”,则在远程设备上执行冷启动。
4.调用SFB22“STATUS”来查询远程伙伴的状态
SFB22用于按用户的请求提供通信伙伴(S7-400CPU/M7-300/400)的运行状态。
在输入信号REQ的上升沿,将任务发送到远程伙伴。通过判断响应信息,确定是否有错误。如果没有出错,在下一次调用SFB时,将接收到的远程设备的状态复制到变量PHYS、LOG和LOCAL。下面是3号站的OB1调用SFB22的程序。
程序段3:查询远程伙伴的运行模式
变量LOCAL的最小长度为2B,用高字节来表示伙伴设备(S7 CPU)的状态标识符(见表4-3)。
表4-3 设备状态标识符LOCAL(www.xing528.com)
5.调用SFB23“USTATUS”接收远程通信伙伴操作模式变化的信息
在组态被读取操作模式状态的2号站的S7连接时,应选中复选框“发送操作模式消息”(见图4-27)。2号站的操作模式变化时,将会主动发送它的状态消息给调用SFB 23的3号站的CPU。
如果SFB 23的使能输入EN_R为1,并且有来自通信伙伴的数据帧,在下一次调用SFB时,将状态信息输入到变量PHYS、LOG和LOCAL中。状态参数NDR为1表示操作完成。
下面是3号站的OB1调用SFB23的程序:
程序段4:接收远程设备的状态变化
图4-27 2号站的S7连接属性对话框
6.实验结果
(1)将远程设备切换到RUN模式
图4-28和图4-29是3号站的变量表,其中DB 1的DBB34、DBB36和DBW38分别是SFB 22的PHYS(物理状态)、LOG(逻辑状态)和LOCAL(通信伙伴的当前状态),DBB44、DBB46和DBW48分别是SFB 23的PHYS、LOG和LOCAL。
2号站在STOP模式时,用3号站的变量表将1(true)写入SFC 19的使能信号M20.6,将0(false)写入SFC 20的使能信号M20.7,在M20.6的上升沿激活SFB 19,将2号站切换到RUN模式(见图4-28)。
SFB 22和SFB 23的PHYS(物理状态)为16#10,表示正在执行功能。SFB 23的EN_R信号M21.2一直为1状态,3号站进入RUN模式后,SFB 23的输出参数LOCAL(DB1.DBW48)的高字节自动变为16#02(见图4-28和表4-3),表示通信伙伴为RUN模式。
SFB 22和SFB 23的区别如下:
远程伙伴(2号站)的状态改变后,SFB 22的状态数据不会自动改变,需要用SFC 22的使能信号M21.1的上升沿来读取远程伙伴的当前状态。
如果SFB23的EN_R为1,远程伙伴的状态改变时,它的LOCAL的值马上随之而变。
(2)将远程设备切换到STOP模式
2号站在RUN模式时,用3号站的变量表将0写入M20.6,将1写入M20.7(见图4-29),在M20.7的上升沿,激活SFB20,将2号站切换到STOP模式。SFB23的输出参数LOCAL(DB1.DBW48)的高字节自动变为16#00(见图4-29),表示通信伙伴为STOP模式。
图4-28 3号站的变量表
图4-29 3号站的变量表
7.用S7-400远程控制S7-300的运行模式
随书光盘中的项目“PB_CTRL2”的硬件结构和组态方法与项目“PB_CTROL”的基本相同,二者的区别仅在于前者被控制的是CPU 313C-2DP,建立的是S7单向连接。两个项目的程序、变量表和调试方法完全相同,具体情况见随书光盘的项目。经实验验证,CPU 413-2DP可以用SFB19和SFB20切换CPU 313C-2DP的RUN/STOP运行模式,但是不能用SFB22、SFB 23查询和接收CPU 313C-2DP的运行模式。
8.远程站点的监控功能在MPI网络上的应用
SFB 19~SFB 23可以用于MPI、PROFIBUS-DP和工业以太网,组态和编程的方法相同。
(1)S7-400用MPI远程监控S7-400的运行模式
随书光盘中的项目“\Project\MPI_S7\MPI_CTRL”的硬件结构和组态方法与项目“PB_CTROL”的完全相同,二者的区别仅在于前者建立的是MPI网络上的连接。具体的情况见随书光盘上的项目。两个项目的变量表和调试方法、实验结果也完全相同。
(2)S7-400用MPI远程控制S7-300的运行模式
随书光盘中的项目“\Project\MPI_S7\MpiCtrl2”的硬件结构和程序与项目“PB_CTRL2”的完全相同,二者的区别仅在于前者建立的是MPI网络上的连接。具体的情况见随书光盘的该项目。两个项目的变量表和调试方法、实验结果也完全相同。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。