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日 上午9:06
下一篇 2019年6月11日 上午9:07

相关推荐

  • wincc报表问题,咨询一下前辈

    看%ignore_a_1%图片。如图示问题1:为什么打印出来最右边列框线怎么没有?如图示问题2:时间为什么重复了一次?怎么做才能按间隔时间显示打印出来?如图示问题3:为什么这列数据…

    2020年11月1日
  • wincc与s7 300用以太网连接

    我用wincc7.3和 s7300用以太网通讯,PLC的IP已经设好,已经在电脑上ping通了,但是wincc就是通不上 钻石用户推荐最佳答案 1、先应用STEP7与S7…

    SIMATIC WinCC 2021年7月5日
  • WinCC每天自动发送归档数据到某个邮箱

    WinCC每天把归档的数据记录生成一个附件,譬如今天生成附件1、明天附件2、后天附件3,如此类推;WinCC今天自动在某个时间譬如08:00把附件1发送到某个邮箱,明天也是08:0…

    SIMATIC WinCC 2021年7月5日
  • VB或C函数库

    学习WINCC C脚本,有没全一点的资料,函数库之类的,最好各函数的应用和格式实例。 问题补充:有资料吗  想要资料 之类的 &n…

    SIMATIC WinCC 2019年6月11日
  • 西门子触摸屏自动断开又自动连接

    smart   700IE 在报警窗口里显示连接中断等几秒又显示连接建立。在连接建立的时候是可以控制plc  &nbsp…

    SIMATIC WinCC 2021年7月5日
  • wincc 脚本切换问题

    我用vbs脚本给变量赋值做的画面,在一个窗口画面中显示。但是我有20条产线,每条产线很多画面,在窗口画面的画面名称里的动态对话框做事件,这样有几百条表达式,填的时候慢,又容易出错,…

    SIMATIC WinCC 2021年7月5日
  • 如何学习wincc 7.4中的C脚本?

    如何学习wincc 7.4中的C脚本?新手C脚本一点都不会,求高手建议如何学习C脚本。有没有相关的学习资料? 最佳答案 1、见同类问题答案:、怎么学习wincc&nbsp…

    SIMATIC WinCC 2021年7月5日
  • TIA 触摸屏如何获取组合名

    如何能获取一个组合的名字,比如一个按钮和一个I/O组成一个group,当按下按钮时如何能得到这个group的名称。谢谢! 最佳答案 虽然在画面上将两个图元组合到一起,看起来是一个,…

    SIMATIC WinCC 2017年6月7日
  • 用变量记录和报警控件做的泵启停时间记录,报警控件问题

    我用变量记录和报警控件做的泵启停时间记录,现在的情况是在泵变量触发启动或停止的时候,报警控件会记录泵的 状态,这个没有问题,但是把控件关闭过一段时间以后,在打开控件的那个…

    2017年6月7日
  • wincc调用step7中的变量

    我的wincc是7.0 sp3,step7是V5.5 sp3能兼容么,怎么从step7中复制变量,希望大神能教我一下 问题补充:在step7符号表中能做标记,但…

    SIMATIC WinCC 2017年11月13日