搬家第三天-69.Wincc V7.3 同类设备交互控制处理-结构变量、画面窗口应用

在实际工程中,有时需要在上位机控制多台设备,这些设备有一致的功能、一致的信号,我们没必要为他们一个一个的建立变量和“控制面板”,利用结构变量和画面窗口控件可以省去我们很多工作量。

       假设我们有4个行车需要在wincc中控制,为了重点说明这种思路和方法,我们假设每台行车只有remote、auto、start、stop四个变量,为了说明wincc中结构变量的建立,本文不从下位机上载变量,而是在wincc中新建。

1. 打开wincc项目管理器的变量管理,点击“结构变量”在右侧新建一个结构类型“Hangche”,如下图所示

2. 在左侧结构变量下点击刚才新建的结构类型hangche,然后在右侧“结构类型元素”中新建remote、auto、start、stop四个元素,由于4个元素均来自PLC,因此都勾选外部变量,数据类型都是二进制变量。

3. 在Hangche这个结构类型下新建4个结构变量hangche1、hangche2、hangche3、hangche4.

4. 在结构元素变量下,可以看到刚才新建的4个结构变量自动的生成了下面的元素,现在给每一个元素分配地址如图所示。

这样,结构变量就全部建立完毕了,可以看到变量的名称是很规则的形式,这个为我们在画面窗口交互功能模板化的建立提供了便利。

5. WINCC中新建一个画面hangche,宽300,高350,用于行车的控制。在工艺画面添加一个画面窗口,空间名称修改为PW,设置不显示,变量前缀可以不填写,关闭窗口属性选“是”,允许关闭窗口,画面名称hangche。

也可以在画面打打开事件中写入以下脚本:

Sub OnOpen()
Dim PW
Set PW=ScreenItems("PW")
PW.Visible =False
End Sub

这样打开画面时,画面窗口就不会显示了。

6. 在画面上放置4个按钮,按钮分别用于4个行车的控制。

7. 在刚才新建的hangche画面,放入一个圆圈表示每个行车的remote信号,如果行车的remote为1,绿色;为0,红色。

注意“表达式/公式”中填写的'remote'实际上是去掉了前缀的变量,必须加上英文单引号,在检查的时候系统会提醒,不要理会保存退出就是了。

8. 在hangche画面再添加“Auto”、“Manual”、“Start”、“Stop”4个按钮。

9. Auto按钮鼠标点击事件-直接连接让1赋值给"Auto"

10. Manual按钮鼠标点击事件-直接连接让0赋值给“Auto”

注意里面的变量是去掉前缀的,没有加英文单引号。
11. Start按钮按鼠标按左键事件以下VBS代码:

Sub OnLButtonDown(ByVal Item, ByVal Flags, ByVal x, ByVal y)
Dim start
Set start=hmiruntime.Tags("Start")
start.Write 1
End Sub

释放鼠标左键以下vbs代码

Sub OnLButtonUp(ByVal Item, ByVal Flags, ByVal x, ByVal y)
Dim start
Set start=hmiruntime.Tags("Start")
start.Write 0
End Sub

注意里面的变量是去掉前缀的,没有加英文单引号。
12 Stop按钮按左键事件以下VBS代码:

Sub OnLButtonDown(ByVal Item, ByVal Flags, ByVal x, ByVal y)
Dim stop1
Set stop1=hmiruntime.Tags("Stop")
stop1.Write 1
End Sub

释放鼠标左键以下vbs代码

Sub OnLButtonUp(ByVal Item, ByVal Flags, ByVal x, ByVal y)
Dim stop1
Set stop1=hmiruntime.Tags("Stop")
stop1.Write 0
End Sub

注意里面的变量是去掉前缀的。

start和stop按钮鼠标左键操作时,都会产生一个脉冲的类似效果。

13 工艺画面上“行车1”按钮的鼠标点击事件以下VBS代码

Sub OnClick(ByVal Item)
Dim PW
Set PW=ScreenItems("PW")
PW.Visible =False
PW.CaptionText="行车1控制"
PW.TagPrefix="Hangche1."
PW.Visible=True
End Sub

.captiontext是在标题栏显示这个窗口的作用,.TagPrefix是表示窗体内的变量都加上一个前缀,这就是刚才编辑hangche窗体时变量都去掉前缀的原因,窗口先隐藏再显示就类似一个刷新的作用。

14. 工艺画面上“行车2”按钮的鼠标点击事件以下VBS代码

Sub OnClick(ByVal Item)
Dim PW
Set PW=ScreenItems("PW")
PW.Visible =False
PW.CaptionText="行车2控制"
PW.TagPrefix="Hangche2."
PW.Visible=True
End Sub

15.工艺画面上“行车3”按钮的鼠标点击事件以下VBS代码

Sub OnClick(ByVal Item)
Dim PW
Set PW=ScreenItems("PW")
PW.Visible =False
PW.CaptionText="行车3控制"
PW.TagPrefix="Hangche3."
PW.Visible=True
End Sub

16.工艺画面上“行车4”按钮的鼠标点击事件以下VBS代码

Sub OnClick(ByVal Item)
Dim PW
Set PW=ScreenItems("PW")
PW.Visible =False
PW.CaptionText="行车4控制"
PW.TagPrefix="Hangche4."
PW.Visible=True
End Sub

posted @ 2021-01-31 12:39  来自金沙江的小鱼  阅读(2578)  评论(0编辑  收藏  举报