• {{item.name}}
SIMATIC WinCC {{item.name}}
{{item2.name}}
更多

获取报警控件中报警行信息

star star star star star
0 分
发布时间:2025年11月23日
  • 0
  • 25
针对某些应用需求,需要实现实时获取报警控件中选中的报警行中的内容,以下以 WinCC V8.1 为例,介绍实现动态输出选中的报警行内容进行文本显示的操作方法。

针对某些应用需求,需要实现实时获取报警控件中选中的报警行中的内容,以下以 WinCC V8.1 为例,介绍实现动态输出选中的报警行内容进行文本显示的操作方法。

打开画面时,禁用报警控件的自动滚动属性(只有在禁用“自动滚动”的情况下,才能选择消息行)。

(1) 、定义报警控件的名称为“Alarm1”

A screenshot of a computer

AI-generated content may be incorrect.


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

A screenshot of a computer

AI-generated content may be incorrect.


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

A computer code with black text

AI-generated content may be incorrect.

具体代码如下:

Dim ctrl

Dim lCellIndex

Dim lCellCount

Dim headingRow

Dim selectedRow

Set ctrl = ScreenItems("Alarm1")

ctrl.AutoScroll=False


画面中添加静态文本,定义文本对象的名称

(1)、定义静态文本的名称为“txt1”

A screenshot of a computer

AI-generated content may be incorrect.

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

A screenshot of a computer

AI-generated content may be incorrect.

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

A screenshot of a computer

AI-generated content may be incorrect.

脚本的主要功能是将所选行每个单元格中的内容及对应的标题连接成字符输出到画面中事先添加的静态文本“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


项目运行后,当选中报警控件的某一行后,会自动在静态文本中显示所选行的报警控件中的内容

A screenshot of a computer

AI-generated content may be incorrect.


  • 评论
更多
  • 分享

    扫码分享

信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。