西门子触摸屏弹窗在哪改(如何使用西门子触摸屏做一个弹窗)

上篇文章我们讲到《西门子触摸屏变量的三种更新方式》:

  1. 根据命令
  2. 循环连续
  3. 循环使用(默认)

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

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

注意:

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

变量的数值事件

西门子触摸屏弹窗在哪改(如何使用西门子触摸屏做一个弹窗)(1)

VB脚本

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

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

Sub PopupScript()

If SmartTags("%M0.0")=True Then

ActivateScreen "激活画面",0

End If

If SmartTags("%M0.1")=True Then

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

End If

If SmartTags("%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脚本并没有被执行。

如何实现我们想要的效果呢,在每个界面上都引用M0.0这个变量显然不是个好的办法。这就需要将M0.0变量的采集模式改成循环连续就可以了。如下图:

西门子触摸屏弹窗在哪改(如何使用西门子触摸屏做一个弹窗)(2)

Demo效果如下:

西门子触摸屏弹窗在哪改(如何使用西门子触摸屏做一个弹窗)(3)

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页