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 V7.3 使用SQL的导出向导导出变量归档问题?

    根据官方提供的技术文档,但在实际操作过程中,出现如图问题,有没有大神指点下?(手动输入数据库名,但是在导出时没有数据),一直连接不上,sql2008我没有设置密码,用的是windo…

    2021年7月5日
  • Wincc flexible Smart V3 SP2 出现问题

    只要编辑文本域,就会出现这一段警告,并且连带着按钮,开关,I/O域也一并消失,(除了矩形、圆等图形不会消失)除了文本域,其他能选中,但是看不见。以下为报错信息:这是针对 …

    2020年11月1日
  • wincc的解包操作

    在plc300中建立了如下图的DB1数据块,plc与wincc建立通讯,将DB1的数据传送到wincc中建立的原始数据类型变量中(原始类型变量设置如下图),然后通过编写全局动作(周…

    2021年7月5日
  • 有关WINCC脚本方面的资料

    各位大侠,哪位有WINCC脚本方面的资料提供一下,谢谢了 最佳答案 给你邮箱wangchunyuan2005@163.com发了一些资料,注意查收! 提问者对于答案的评价:已收到,…

    SIMATIC WinCC 2019年6月11日
  • WINCC正版授权

    怎么知道安装的Wincc是正版授权? 问题补充:很老了,5.1的 最佳答案 你的WINCC的版本是多少?如果是7.0,那么是需要硬授权的(有一个U盘的,)根据上面的序列号,可以向西…

    SIMATIC WinCC 2021年7月5日
  • 全球技术资源库中的资源下载问题

    在全球技术资源库中下载某些资源,使用第三方软件(如:IDM、迅雷)下载,有时能下,有时不能下,但通过浏览器自带的下载功能能下,怎么回事?如:SIMATIC STEP&nb…

    SIMATIC WinCC 2020年11月1日
  • WINCC和414-5H通讯

    我有个项目用的414-5H冗余套站 编程软件为Step7 V5.5 SP2 HF1(中文)   上位机用WIN…

    SIMATIC WinCC 2017年12月7日
  • "项目路径是否有中文名",请问项目路径是否含有中文名怎么看出来啊?

    我的Wincc启动时加载报警记录运行或变量记录运行系统后Wincc启动很慢或启动一半停滞着,后来有大虾提出来"项目路径是否有中文名",请问怎么看出来项目路径中含…

    SIMATIC WinCC 2019年6月11日
  • WINCC中的变量问题

    1.在WINCC里创建了几个外部变量,但地址现在是随意写的,但是创建后,想对这些变量的地址进行修改,点击属性里的选择按钮重新修改地址,却改不了,怎么办?2.在WINCC里要导入ST…

    SIMATIC WinCC 2019年6月11日
  • wincc6.0激活出错

    我在使用WINCC6.0中文版时,在做完几个画面激活时,总是提示Text library runtime,进度条走到33左右就不动了,看控制中心里文本库运行系统…

    SIMATIC WinCC 2019年6月11日