在某些工业应用中,我们会遇到需要通过PLC控制触摸屏画面切换的功能。比如,客户要求拍下急停按钮,HMI切换到"紧急页面"的画面,禁止操作。又比如,客户要求当系统切换到自动状态下时,画面会自动切换到"自动主页面",系统出现故障时,能自动切换到"报警页面"。那么,遇到这类需求时,我们应该怎么实现呢?
下面,我们介绍两种实现方法。
方法一:通过"区域指针"的"作业邮箱"实现;
在西门子全系列HMI的连接中,有个"区域指针"。通过此区域指针的作业邮箱,我们可以实现显示画面、设置日期和时间等功能,具体区域指针作业邮箱可实现功能,我们可以在编程软件的帮助中查询到。如下图所示。
从帮助中我们可以得到以下信息:
1、作业邮箱会占用PLC的连续4个字;
2、第一个字为作业号,决定通过作业邮箱可实现的功能,后三个字为3个不同作用的参数;
3、第一个字设置为51,为切换显示画面功能;
基于帮助中获取到的信息,我们可以进行如下编程组态以及测试:
步骤1、新建一个PLC,在PLC中添加一个全局DB块,并将DB块的优化块访问功能取消掉,新建4个Word类型的变量,如下图所示;
步骤2、新建HMI,在HMI连接中,添加步骤1中PLC对应的驱动,在"连接"-"区域指针"中,激活作业邮箱,并关联PLC中DB1.DBW0对应的作业邮箱控制第一个字;
步骤3、新建5个测试页面,注意属性中的画面编号;
其中,"主页面"画面编号为1;"编号10画面"画面编号为10;"编号11画面"画面编号为11;"编号12画面"画面编号为12;"编号13画面"画面编号为13;
步骤4、联机模拟测试;
分别将PLC和HMI下载至硬件中,在PLC的DB1数据块中,进行模拟测试,测试效果如下图动画演示;
方法二:通过变量事件直接切换;
步骤1、在PLC中新建一个WORD类型变量"画面切换",地址可任意关联,本案例中关联到MW10;
步骤2、在HMI的变量中添加步骤1中的"画面切换",并将此变量属性中的"采集模式"更改为"循环连续";
步骤3、在变量的属性-事件中,在数值更改事件中,添加函数"根据编号激活画面",并将函数画面号更改为变量本身,如下图所示;
步骤4、运行测试;