- {{item.name}}
获取报警控件中报警行信息
- 0
- 25
针对某些应用需求,需要实现实时获取报警控件中选中的报警行中的内容,以下以 WinCC V8.1 为例,介绍实现动态输出选中的报警行内容进行文本显示的操作方法。
打开画面时,禁用报警控件的自动滚动属性(只有在禁用“自动滚动”的情况下,才能选择消息行)。
(1) 、定义报警控件的名称为“Alarm1”

(2) 、在画面对象的“打开画面”事件中添加 VBS 脚本

(3) 、脚本设置报警控件的“自动滚动”属性为“False”

具体代码如下:
Dim ctrl
Dim lCellIndex
Dim lCellCount
Dim headingRow
Dim selectedRow
Set ctrl = ScreenItems("Alarm1")
ctrl.AutoScroll=False
画面中添加静态文本,定义文本对象的名称
(1)、定义静态文本的名称为“txt1”

在报警控件的“OnSelectedMsgChanged” 事件(实现当选中报警行后便会触发脚本执行)下创建VBS 脚本。

在“OnSelectedMsgChanged”事件中添加以下 VBS 脚本内容:

脚本的主要功能是将所选行每个单元格中的内容及对应的标题连接成字符输出到画面中事先添加的静态文本“txt1”中。
具体代码如下:
Dim ctrl
Dim lCellIndex
Dim lCellCount
Dim headingRow
Dim selectedRow
Dim txt
'定义静态文本
Set txt=ScreenItems("txt1")
'清空静态文本中的内容
txt.Text=""
Set ctrl = ScreenItems("Alarm1")
'选中报警控件的标题行
Set headingRow = ctrl.GetRow(0)
'返回基于报警控件的所选行
Set selectedRow = ctrl.GetSelectedRow
'获得标题行的列数
lCellCount = headingRow.CellCount
'枚举出列标题及对应的单元格内容并通过输出到静态文本中进行显示
For lCellIndex = 1 To lCellCount
txt.Text= txt.Text + headingRow.CellText(lCellIndex) & ": " & selectedRow.CellText(lCellIndex) & vbNewLine
Next
项目运行后,当选中报警控件的某一行后,会自动在静态文本中显示所选行的报警控件中的内容

- 评论
-
分享
扫码分享
- 收藏 收藏
- 点赞 点赞
- 纠错 纠错


西门子官方商城


{{item.nickName}}