广东湘恒智能科技有限公司
主营产品: 西门子PLC代理商,plc变频器,伺服电机,人机界面,触摸屏,线缆,DP接头
SIEMENS西门子广东省湛江市(授权)电机一级代理商——西门子华南总代理

变量的数值更改事件


图片



VB脚本



我们这里做了三个不同类型画面的展示效果:普通画面,弹出画面,侧滑。

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















Sub PopupScript()If SmartTags("%M0.0")=True Then    ActivateScreen "激活画面",0End If
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动画



图片


展开全文
相关产品
拨打电话 微信咨询 发送询价