VBS编程执行顺序问题

我用VBS编些脚本,出现一个问题,就是在执行一个事件的时候,为什么只有执行完当前事件才能执行其他事件。譬如说,我定义两个按钮,对应画面上不同对象的动作,我点击第一个按钮,执行相应脚本编写的动作,接着按第二个按钮,没有立即执行,当第一个执行完了后,才执行第二次按钮的动作。不知道这是为什么。我再在另一按钮定义HMIRuntime.stop.当我点击按钮的时候,也是等其他动作执行完毕后才退出运行系统。请问这是为什么,如何解决?

最佳答案

请参考:
 在WinCC V6.x里通过VBS 读写变量
 问题:  
 我把一个值写入一个变量,然后把一个值写入另一个变量。有时这不能工作。是否有更好的方法完成这个功能? 

 解答:  
 有,例如,下面的VBS代码并不总能工作。 

 HMIRuntime.Tags("NewTag_2").Write HMIRuntime.Tags("NewTag_1").Read
 HMIRuntime.Tags("NewTag_3").Write HMIRuntime.Tags("NewTag_2").Read
 HMIRuntime.Tags("NewTag_4").Write HMIRuntime.Tags("NewTag_3").Read
 HMIRuntime.Tags("NewTag_5").Write HMIRuntime.Tags("NewTag_4").Read 

 上面的例子中,值通过变量镜像被读写。为保证读变量先于写变量,你可以使用同步读写任务。因此改变读任务"Read" 为 "Read(1)-如下面的例子: 

 HMIRuntime.Tags("NewTag_2").Write HMIRuntime.Tags("NewTag_1").Read(1) ,1
 HMIRuntime.Tags("NewTag_3").Write HMIRuntime.Tags("NewTag_2").Read(1) ,1
 HMIRuntime.Tags("NewTag_4").Write HMIRuntime.Tags("NewTag_3").Read(1) ,1
 HMIRuntime.Tags("NewTag_5").Write HMIRuntime.Tags("NewTag_4").Read(1) ,1 

 备注:
 同步读写任务等同于 ANSI C的GetTagxxxWait 和 SetTagxxxWait。这些功能的缺点在于,他们的持续时间依赖于与AS的配合。脚本的后续过程将在收到AS响应后才能继续。那么,他们导致了性能损失,因此,它们只用于异常情况。异步读写任务因为通过镜像处理,更加有效。这里变量的读取和刷新过程分开运行。< br>同步任务仅仅被用于脚本的进一步处理必须确保变量读写次序的情况。 

 注意:
 关于这个内容请看在线帮助的 "Index > GetTagWait > GetTagBitWait > Functioning of Function GetTag" 。那里两种通讯类型被详细描述并图形化显示。 
 http://support.automation.siemens.com/CN/llisapi.dll?func=cslib.csinfo&lang=zh&siteid=cseus&objid=19478679

 
 

提问者对于答案的评价:
谢谢
 

原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc272381.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2019年6月11日
下一篇 2019年6月11日

相关推荐

  • wincc如何显示自定义数据库数据

    在sql中自己定义了一个数据库,希望通过按钮的方式将数据库中的数据查询,但是发现数据不知道如何显示,将数据显示按照数据库中的列表形式显示出来,不知道大神们有没有好的建议? 钻石用户…

    SIMATIC WinCC 2021年7月5日
  • wincc smart V3 字偏了

    框的大小,位置,字体大小都没有问题,下载进去以后,只有中轴2个字是偏的,还有哪里是我没注意的吗 图片说明:        &nbs…

    2021年7月5日
  • 旋转角度函数

    WINCC V6.2中需要把某个对象比如矩形在置位某一点时旋转一个角度,应该调用哪个函数、如何使用? 最佳答案 如果是画面简单的旋转,你还可以将画面提前使用图形编辑器:P…

    SIMATIC WinCC 2019年6月11日
  • WINCC6.2和STEP7 5.4SP3

    安装了 STEP7后装WINCC6.2无法安装AS-0S是什么原因啊  我的系统是 XP SP2 最佳答案 我也遇到同样的问题,什…

    SIMATIC WinCC 2019年6月11日
  • 求助!关于PLC1500与触摸屏仿真的问题

    之前用的博途V14,PLC用1500和触摸屏仿真时触摸屏怎么都没反应,显示数据无法写入PLC,程序监控正常仿真,我试了下PLC300/400和触摸屏都可以正常仿真,我在网上搜索有的…

    2021年7月5日
  • WINCC API函数怎么调用啊?

    在用C脚本的时候,所有的函数都可以在窗口的左边用鼠标选择,但是API函数我要在哪选呢,难道必须用键盘敲吗??? 最佳答案 可参考:《WINCC的C脚本调用WINDOWS …

    SIMATIC WinCC 2018年12月9日
  • op177b与电脑连接

    op177b  mono   dp 与电脑连接能用USB/PPI电缆吗?用USB/MPI电缆可以吗。 最佳答案 不可以用…

    SIMATIC WinCC 2019年6月11日
  • 博图WINCC画面路径

    博图WINCC是否和经典WINCC一样,可以把单张画面拷到其它项目,路径是啥? 最佳答案 路径:项目名称\IM\HMI\R\1\D\HMI_AASW\GRACS直接复制不大可行,可…

    SIMATIC WinCC 2021年7月5日
  • WINCC700IE 非V3 触摸屏读三菱FX PLC时钟时间

    具体如何操作呢 程序里面我已经读了,wincc里面区域指针,日期时间域如何设置,求详细!! 图片说明:        &…

    2021年7月5日
  • WINCC 7.0 安装不上 SQL Sever Database Srvices 错误!

    SQL Sever Database Srvices 错误!弹出:不能安装下列程序:N:\InstData\SQLStandard\Setu…

    SIMATIC WinCC 2017年11月18日