SIEMENS西门子广东省湛江市(授权)电机一级代理商——西门子华南总代理
变量的数值更改事件
VB脚本
我们这里做了三个不同类型画面的展示效果:普通画面,弹出画面,侧滑。
创建“激活画面”,“弹出画面_1”,以及启动”从左侧滑入画面“,并放置控件。
If SmartTags("%M0.1")=True Then ShowPopupScreen "弹出画面_1",50,50,hmiOn, hmiBottom, hmiMediumEnd If
If SmartTags("%M0.2")=True Then ShowSlideInScreen "从左侧滑入画面",hmiOnEnd IfEnd 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变量的采集模式改成循环连续就可以了。如下图:
Demo动画
展开全文
相关产品