故事作者:工控侠隐

最近创作

看看TA的故事

分享大家一个VBS子过程编写和调试的过程

已锁定

工控侠隐

  • 帖子

    377
  • 精华

    2
  • 被关注

    35

论坛等级:侠士

注册时间:2011-03-03

钻石 钻石 如何晋级?

分享大家一个VBS子过程编写和调试的过程

824

3

2021-11-02 22:02:12

     最近我在开发一个博图WINCC项目,用于VBS脚本用的特别多,所以,当中遇到很多个问题,也花费了我大量的精力,也学到了很多知识。借助这个平台我陆续把这些宝贵的经验知识分享出来,希望能当做大家平时的项目参考。

     上位机项目中,利用弹出窗口做对象的操作和监视是比较常用的做法。一方面是因为对象的数据量比较大且多,如果全部做在根画面上,显然太乱,另一方面也是为了组态方便和操作便利。

      通常,这种弹出窗口是用修改窗口中变量的前缀方式实现的。具体如下:在根画面中新建一个窗口,同时,新建一个画面。在画面中建立对象的各种数据和方法,比如IO域和按钮等,但是,链接的变量只保留前缀后面的内容。比如:一个按钮的变量A的结构为:对象名称.start,这里只保留".start"。但是,中间我遇到一个问题一直没解决,有种描述状态的变量“对象名称.status",第一个“s”必须是大写的“S”。接着,开始写对接窗口和画面脚本。

     脚本:  

  Dim HMIObject,ObjText

  Set HMIObject = HMIRuntime.Screens("Start screen").ScreenItems("Popup")  '//引用窗口对象

  HMIObject.TagPrefix = Prefix  '//前缀

  HMIObject.ScreenName = PopupName '//窗口的画面名称

  HMIObject.Visible=True '//显示画面

  HMIObject.Activate '//激活画面

  Set HMIObject = Nothing '//释放对象

  Set ObjText = HMIRuntime.Screens("Start screen.Popup:" &         PopupName).ScreenItems("Caption1")'//引用标题1对象

  ObjText.text=Caption1 '//赋值标题1

  Set ObjText = Nothing '//释放对象

  Set ObjText = HMIRuntime.Screens("Start screen.Popup:" &     PopupName).ScreenItems("Caption2")  '//引用标题2对象

  ObjText.text=Caption2 '//赋值标题2

 Set ObjText = Nothing '//释放对象

  当时,我遇到过一个问题,就是用了SmartTags("")做Start screen.Popup:" & PopupName,所以,一直没有成功。记住:字符串拼接只能在HMIRuntime的对象中使用。

  最后,在根画面中的对象上做事件,调用该Sub,并给参数实例化即可。



弹出窗口变量声明.jpg

调用子过程.jpg


分享大家一个VBS子过程编写和调试的过程 已锁定
编辑推荐: 关闭

请填写推广理由:

本版热门话题

网友专栏

共有3227条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

top
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。