sub onclick{byval item}
V_Dis "main.画面窗口2:main01","1#阴床 反洗进水阀",5, 1, "Anion_FJ2.",1
end sub
***************************************************************************
Sub V_Dis(Byval Pic,Byval Name,Byval Num, Byval V_Num, Byval Prefix,Byval Mode)
Dim a,b,c
HMIRuntime.Tags("Dev_Num").Write Num
HMIRuntime.Tags("Dev_V_Num").Write V_Num
Set a = HMIRuntime.Screens(Pic).ScreenItems("阀窗口")
a.CaptionText = Name
a.TagPrefix = Prefix
a.Visible = False
a.Visible = True
a.PictureName = "操作窗口-阀"
c = Pic & ".阀窗口:操作窗口-阀"
Set b = HMIRuntime.Screens(c).ScreenItems("Mode")
If Mode = 1 Then
b.Visible = True
Else
b.Visible = False
End If
End Sub希望大神能详细解释每一句,不胜感激
-
-
wangchen 发表于 2016/1/29 9:34:24
我试着解答一下吧:
sub onclick(byval item)这个是控件点击事件,执行一个自定义动作V_Dis 。
V_Dis 动作有六个参数:
1. 第一步先把wincc变量Dev_Num赋值5,
2.第二步把Wincc变量Dev_V_Num赋值1,
3.第三步令内部变量a为画面Pic的对象“阀窗口”
4.第四步令画面Pic的对象"阀窗口"的标题栏显示"1#阴床 反洗进水阀"
5.第五步令画面Pic的对象"阀窗口"的变量前缀为"Anion_FJ2."
6.第六步令画面Pic的对象"阀窗口"不可见(隐藏)
7.第七步令画面Pic的对象"阀窗口"可见
8.第八步令画面Pic的对象"阀窗口"装载的画面为"操作窗口-阀"
9.第九步令内部字符串变量c为"main.画面窗口2:main01.阀窗口:操作窗口-阀"
10.第十步令内部变量b为画面main的画面窗口对象中main01画面的画面窗口“mode”
11.控制mode控件是否可见。
wincc有一个主画面main,主画面上有一个"画面窗口对象2",这个窗口对象里面有画面main02,main02上有一个画面窗口对象,名字叫做"阀窗口",这个"阀窗口"就是用于人机交互操作控制阀门的,里面也有一个画面"操作窗口-阀",V_DIs传递了一个变量前缀"Anion_FJ2"过来,具体是控制哪个阀门通过参数Name传递,本例中是控制"1#阴床 反洗进水阀",画面"操作窗口-阀"上有一个控件“Mode”,这个控件是不是可见,就根据V_Dis 最后一个函数是不是可见来控制。
变量前缀使用基于同类型设备控制方式相通,变量名称类似,比如阀门统一命名为***_remote、***_Ready、***_Runing、***_Start等扽分,前面的***就作为前缀,本例中的“操作窗口阀”页面就可作为模板反复调用,每次只需要对画面窗体对象“阀窗口”传递不同的前缀即可。
希望可以帮到你。
引用 wangchen 2016/1/29 9:34:24 发表于2楼的内容
-
引用 qingsong 2016/1/29 12:05:19 发表于3楼的内容
-
-
xuwenbin 发表于 2016/1/31 8:49:34
由于看不到整个项目,我猜测dev_num是设备编号,赋值为5,dev_v_num我猜测是表示设备中阀门编号,编号为1,这两个编号,在面板控制的时候应该会引用到。最后一个1是控制mode控件是否可见的,我个人猜测这个mode是手自动或者正常/故障之类的文本显示,为1就显示出来,为0就隐藏起来。
引用 xuwenbin 2016/1/31 8:49:34 发表于4楼的内容