技成培训网 技成学习APP 技成工具箱 技成企业服务

欢迎回到技成培训网

技成培训网

电工题库宝典

技成电工课堂

PLC练习题

技成PLC课堂

变频器故障查询

技成PLC学吧

伺服驱动故障查询

技成PLC网校

当前位置:技成首页 > 文章中心 > 技成百科 > 关于WINCC的一段VB脚本

关于WINCC的一段VB脚本

刘玉蓉 发布于2014-09-18 17:19 187 0 标签:

脚本内容如下:Option Explicit
Function action
Dim flag
Dim step1
Dim flag1
flag1=HMIRuntime.Tags("gz_flag").Read
If flag1=1 Then
HMIRuntime.Tags("Instruction7").Write 7
flag=HMIRuntime.Tags("Instruction7").Read
If flag=7 Then


Do
 flag=HMIRuntime.Tags("Instruction7").Read

Loop While flag=0
End If
step1=HMIRuntime.Tags("A1_11_GZ").Read
If step1<>0 Then
HMIRuntime.Tags("A1_15_GZ").Write 1
End If
End If

End Function
哪位能逐行的给注释一下。

佳答案

Option Explicit
Function action
Dim flag
Dim step1
Dim flag1//dim 定义变量
flag1=HMIRuntime.Tags("gz_flag").Read//把gz_flag的值赋值给flag1
If flag1=1 Then
HMIRuntime.Tags("Instruction7").Write 7//如果flag1=1则Instruction7=7
flag=HMIRuntime.Tags("Instruction7").Read//把Instruction7赋值给flag
If flag=7 Then如果flag=7执行下面的do while loop循环语句


Do//当flag=0时一直执行do while loop循环
 flag=HMIRuntime.Tags("Instruction7").Read

Loop While flag=0
End If
step1=HMIRuntime.Tags("A1_11_GZ").Read//step1=A1_11_GZ
If step1<>0 Then//如果step1不等于0则A1_15_GZ=1
HMIRuntime.Tags("A1_15_GZ").Write 1
End If
End If

End Function

你的
flag1=HMIRuntime.Tags("gz_flag").Read
If flag1=1 Then
HMIRuntime.Tags("Instruction7").Write 7
flag=HMIRuntime.Tags("Instruction7").Read
If flag=7 Then


Do
 flag=HMIRuntime.Tags("Instruction7").Read

Loop While flag=0
End If

这段程序有问题,1、如果gz_flag=1那么Instruction7被你赋值为7则Instruction7肯定等于7,flag也等于7,下面的判断是否等于7就没有用了
2、如果flag=7那么do while loop只执行一次,而且还是读取Instruction7,flag还是=7,所以这个do while loop是没有用的,如果flag=0,那么if的条件不满足,do while loop也就不会执行。

若有收获,就点个赞吧!

文章来源于网络及文献如有侵权请联系站长
分享到:

微信扫一扫分享

阅读与本文标签相同的文章

相关推荐

最新文章 热门文章
最新课程 免费课程
PLC资料下载 电工电气资料下载
应用新秀
变频器故障代码查询APP
伺服故障代码查询APP
技成
手机APP
热门标签