浔之漫智控技术(上海)有限公司
13713710315

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

  • 时间:2023-03-02 流量:323


    在较后一篇文章中,我们有三种方法可以更新变量:

    连续循环(默认)按命令循环。

    在本文中,我们将有一个实际案例:在执行启动过程中,有一个设备想要触摸自动跳到执行过程中的图片。

    如果PLC有执行变量M0.0,当M0.0为1时,自动切换图片。第一次想到这个应用很简单,就是用在变量管理器里。M0.当0值变事件,当M0.0变化时,触发VB脚本,当脚本判断M0.0为1时,激活图片。

    注意:

    只要触摸屏内存中的变量值发生变化,变量值就会发生变化。

    变量值事件

    VB脚本

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

    创建激活图片_将图片从左侧滑入并放置控件。

    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

    问题

    一切都是按照我们的想法完成的。M0.0触发在PLC中,但界面不会切换。如果怀疑是因为M0.0更改信号时触摸屏没有收到这种变化。我们做一个圆,通过背景颜色显示M0。您会发现0状态M0.0状态发生变化,界面可以正常切换。但是,如果删除引用的M0.0控件,界面将不会切换。

    这是怎么回事?这就是我们上一篇文章所说的。在默认情况下,西门子触摸屏的变量更新方法是回收的。它只能用于当前界面,因为它不能用于我们的主界面,所以触摸屏不会去PLC通信查询M0.0的状态。这样做是为了减少每个通信变量的数量,提高通信的质量和效率。当数据发生变化时,PLCM0。如果触摸屏内存中的值没有刷新(因为没有使用),就不会触发M0.0的值变化,导致VB脚本没有执行。

    引用每个界面M这个变量显然不是达到我们想要的效果的好方法。M0.将0变量采集模式改为循环连续。如下图所示:

    Demo效果如下:

    http://www.zhochang.com