Comfort Panel精智屏的脚本实现对象动态化的问题

已锁定

伊默

西门子1847工业学习平台

  • 帖子

    4271
  • 精华

    118
  • 被关注

    220

论坛等级:至圣

注册时间:2003-10-24

白金 白金 如何晋级?

Comfort Panel精智屏的脚本实现对象动态化的问题

1132

5

2019-11-10 15:33:05

其实这个问题发在找答案了,但是需要讨论添加一些信息,所以还是发到这里来吧。


问题的起因是在于 西门子触摸屏建立的 数组变量,不可设置上下限(范围那一栏不可用), 而我正好有180个数据。   客户需要这些数据在超过范围时对应的IO域背景色改变。 常规的做法是这180个数据不用数组,直接建立180个变量! 然后每个变量单独设置范围! 可是这做法太LOW了!而且万一客户需求变化呢?   


然而我建立数组后又遇到了数组不可设置范围的问题,所以打算采用脚本来实现,两个办法,其中之一就是用脚本判断每个变量超过上限就将它对应的IO域底色设置成红色,低于下限就将对应的IO域底色设置成黄色,在正常范围就将底色设为白色,以此来间接实现超范围变底色的功能。


假设我在一画面里(画面名称:数据画面),放置了这180个变量(是数组变量,对应的IO域名称为ac1~ac180),写了一个测试的简易脚本:

Dim i

i = 1

HmiRuntime.Screens("数据画面").ScreenItems.Item("ac" & CStr(i)).BackColor = vbGreen

运行结果提示画面找不到IO域ac1


可是改成直接指定的方式就可以

HmiRuntime.Screens("数据画面").ScreenItems.Item("ac1").BackColor = vbGreen


只有将IO域名称动态化指定,我才可能使用For Next循环改变i值轮询180次, 否则得同样的代码写180次!那还不如直接建立180个变量得了!


Comfort Panel精智屏的脚本实现对象动态化的问题 已锁定
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC WinCC / Panel

共有32765条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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