回复:如何实现最佳答案的做法

mayvzhe

  • 帖子

    111
  • 精华

    1
  • 被关注

    18

论坛等级:侠客

注册时间:2015-08-24

普通 普通 如何晋级?

发布于 2016-05-24 09:25:16

1楼

同一个运转设备的状态,运行/停止是一个外部二进制变量,故障是一个外部二进制变量。假设画面中有10台运转设备,都是泵,其外部变量名称是:

Pump1_Running表示1#泵运行/停止状态,Pump1_Fault表示1#泵故障

Pump2_Running表示2#泵运行/停止状态,Pump2_Fault表示2#泵故障

Pump3_Running表示3#泵运行/停止状态,Pump3_Fault表示3#泵故障

Pump4_Running表示4#泵运行/停止状态,Pump4_Fault表示4#泵故障

Pump5_Running表示5#泵运行/停止状态,Pump5_Fault表示5#泵故障

Pump6_Running表示6#泵运行/停止状态,Pump6_Fault表示6#泵故障

Pump7_Running表示7#泵运行/停止状态,Pump7_Fault表示7#泵故障

Pump8_Running表示8#泵运行/停止状态,Pump8_Fault表示8#泵故障

Pump9_Running表示9#泵运行/停止状态,Pump9_Fault表示9#泵故障

Pump10_Running表示10#泵运行/停止状态,Pump10_Fault表示10#泵故障

最佳答案建议脚本中使用一维数组,数组有3个元素,分别计算运行、停止、故障设备的台数。写VBS脚本:

dim Status(3),i,Pump_Running(10),Pump_Fault(10)

for i=1 to 10

   set Pump_Running(i)=HMIRuntime.tags("Pump" & Cstr(i) & "_Running")

   set Pump_Fault(i)=HMIRuntime.tags("Pump" & Cstr(i) & "_Fault")

next


for i=1 to 10

   if Pump_Running(i).read then

      Status(1)=Status(1)+1

  else

      Status(2)=Status(2)+1

  end if

  if  Pump_Fault(i).read then

     Status(3)=Status(3)+1

  end if

next

msgbox "10台泵当中,正在运行的泵数量是" & cstr(Status(1))

msgbox "10台泵当中,停止的泵数量是" & cstr(Status(2))

msgbox "10台泵当中,故障的泵数量是" & cstr(Status(3))

评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC WinCC / Panel

共有32771条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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