一、调整列宽的代码
Dim ctrlAlarm,ctrlColumn
Set ctrlAlarm=ScreenItems("ctrlAlarm")
Set ctrlColumn=ctrlAlarm.GetMessageColumn(0)
ctrlColumn.width=100 '调整第一列宽度为100
二、消息组和状态变量
1. 新增3个内部变量,workshop1、workshop2、workshop3
2. 报警记录的消息组里新增3个组,1车间、2车间、3车间
3. 新增6个内部变量,alarm1、alarm2、alarm3、alarm4、alarm5、alarm6
4. 报警记录里面关联这6个二进制变量
5. WinCC画面上放一个报警控件、2个按钮(控制alarm1的置1置0,控制alarm2的置1置0)、32个圆(显示状态变量workshop1的32位变化情况)
“alarm1”按钮1的代码如下:
Sub OnClick(ByVal Item)
Dim alarm
alarm=HMIRuntime.Tags("alarm1").Read
If alarm=0 Then
alarm=1
Else
alarm=0
End If
HMIRuntime.Tags("alarm1").Write alarm
End Sub
6. 运行结果如下:
(1)alarm1或alarm2置1,或者两个变量同时置1时:
(2) 任意变量置1,然后两变量都置0时:
(3)两个变量都置0后,再按“组确认”按钮消除报警列表时:
总结:状态变量的0位表示是否有组报警存在;16位表示是否按了“组确认”按钮