如何使用西门子触摸屏做一个弹窗

2023-03-15 浏览次数:82
根据命令循环连续循环使用(默认)

这篇我们将一个实际案例:现场有台设备想在执行开机过程时触摸自动跳到执行过程的画面。

假如PLC有个执行开机的变量M0.0,当M0.0为1的时候,自动切换画面。初次想这个应用很简单,就是使用在变量管理器中的M0.0的数值更改事件,当M0.0变化时,触发一个VB脚本,脚本中判断M0.0为1的时候,激活画面就可以了。

注意:

变量的数值更改事件——只要触摸屏内存中变量的值有变化则触发事件。

变量的数值事件


VB脚本

新的精智面板有弹出画面,侧滑,我这里做了三个不同类型画面的展示效果。

创建“激活画面”,“弹出画面_1”,以及启动从左侧滑入画面,并放置控件。

Sub PopupScript()

If S ** rtTags("%M0.0")=True Then

ActivateScreen "激活画面",0

End If


If S ** rtTags("%M0.1")=True Then

ShowPopupScreen "弹出画面_1",50,50,hmiOn, hmiBottom, hmiMedium

End If



If S ** rtTags("%M0.2")=True Then

ShowSlideInScreen "从左侧滑入画面",hmiOn

End If

End Sub

问题

一切都按照我们想的做好了后,在PLC中触发M0.0,但是界面并不会切换。假如怀疑是由于M0.0的更改信号时,触摸屏没有收到这个变化导致的,我们做一个圆,通过背景色来显示M0.0的状态,你会发现M0.0的状态是有变化的,且这时界面也能正常切换了。但是如果又删掉引用M0.0的控件后,界面又变成不会切换了。

这是怎么回事呢?这就是我们上篇文章讲到的,西门子触摸屏的变量更新方式默认是循环使用的,只有当前界面中有使用到时才会去读取,由于我们的主界面中没有使用到M0.0,因此触摸屏不会去与PLC通讯查询M0.0的状态。这样做是为了减少每次通讯变量的数量,提高通讯的质量和效率。PLC中数据改变时M0.0在触摸屏内存中的值并没有刷新(因为没有用到),就不会触发M0.0的数值更改事件,从而导致VB脚本并没有被执行。


13736019469.b2b168.com/m/
联系我们

在线客服: 2452394897

联系人:李工

联系电话: 13736019469