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日

相关推荐

  • MP377与S7-300时间同步方法

    我想做个MP377与315-2DP的时钟同步  是用PLC的时间同步HMI的,在使用SFC1读取系统时间的时候  没读取出来,郁闷,大侠们给…

    SIMATIC WinCC 2018年12月5日
  • WINCC读ID卡卡号

    各位高手,我已经把12个字节的ID卡卡号读到M寄存器的MB25-MB36,现在想在静态文本中直接显示这12个字节的内容,请问怎么实现,有没有具体程序能提供 问题补充:WinCC添加…

    SIMATIC WinCC 2019年6月11日
  • WinCC消音

    对于WinCC警报的声音单独做一个按钮,只是用来静音的,怎么做?报警发声是用horn控件做的。 最佳答案 做1个按钮,属性-事件-鼠标动作-动作-常数:0 –变量:@H…

    SIMATIC WinCC 2017年7月30日
  • wincc 运行出错

    wincc运行一段时间后有对话框提示,并且点确定或取消都不能正常使用。如图。求高手指点。 问题补充:只运行wincc时才出现,其他软件没问题,打开后在运行画面过一段时间就出(30分…

    SIMATIC WinCC 2017年11月12日
  • 下载了wincc后点击了EXE文件但是无法找到wincc软件

    在帖子里找到的下载链接,共5个文件,下载后执行exe文件提示找不到要安装的文件 最佳答案 WINCC V7.5下载 :链接:https://pan.baidu.…

    SIMATIC WinCC 2021年7月5日
  • Wincc6.2的MSComm控件的应用

    请教高手,在Wincc6.2中是如何应用MSComm控件进行485通讯的,主要是如何去打开它的portopen属性,希望能有详细说明,谢谢。 问题补充:关键是怎么使控件的PortO…

    SIMATIC WinCC 2019年6月11日
  • 求助,wincc7.3 报警器的声音

    如题,我在7.2以下版本上设置可以,相同方去,7.3没有声音。求助 最佳答案 详细的可以看看《如何在SIMATIC PCS 7 V8.0 和…

    SIMATIC WinCC 2017年11月4日
  • WinCC 7.0 SP3 Asia K7.0.3.0 与CPU315-2的通讯连接

    版本的是WinCC 7.0 SP3 Asia: K7.0.3.0,我自己的笔记本XP系统,装好了 用TCPIP方式能通讯,在台式机…

    SIMATIC WinCC 2021年7月5日
  • Wincc程序如何压缩

    如何将有修改过画面的WINCC程序压缩,拷贝出来.具体步骤是什么? 如果在画面上做了修改,是不是要对其进行压缩保存,还是WINCC修改后就保存在程序文件夹项目下,如果要拷…

    SIMATIC WinCC 2019年6月11日
  • 触摸屏MP277连接打印机

    触摸屏MP277可不可以连接打印机,可以的话怎么操作,各位高手指点一下 最佳答案 1、MP277可以连接打印机。2、具体怎么操作,详见下面的说明——http://www2.ad.s…

    SIMATIC WinCC 2019年6月11日