在FactoryTalk View中在导航按钮上按所显示画面显示报警信息

往往在项目的实施过程中,有这样的需求:需要在导航按钮上显示该页面的报警状态,以提示操作人员,该页面有报警,需要操作人员注意或者消除故障,如下图所示。那Rockwell 的上位机软件FactoryTalk View该如何处理呢?

1.创建报警

创建报警时候应注意,每个报警需按照设备所在界面进行分组。如:

Alarm
├─L1Grp1
│    ├─L2Sub1
│    │    ├─L3Sub1
│    │    └─L3Sub2
│    ├─L2Sub2
│    ├─L2Sub3
│    └─L2Sub4
└─L1Grp2

2.函数调用

我们需要用到这几个函数:

2.1 AE_HighPriorityActive(AlarmName)

返回一个1—4的integer,以代表当前所指定的报警,处于”报警”状态的最高级值

1: 低
2: 中
3: 高
4: 紧急

如果返回值是0,表示指定的报警中没有处于报警状态。

2.2 AE_InAlmUnackedCount(AlarmName)

返回一个1—报警总数的integer,以代表当前所指定的报警,处于”报警”状态且未确认的数量。

2.3 AE_InAlmAckedCount(AlarmName)

返回一个1—报警总数的integer,以代表当前所指定的报警,处于”报警”状态且已确认的数量。

2.4 配置函数中的AlarmName

AlarmName有两种配置方式:
相对路径,类似以下的样子

•    /<AreaPath>::<AlarmName>
•    /<AreaPath>/<GroupPath>::<AlarmName>

AreaPath 包括应用程序和区域路径,但不包括应用程序名称。表示定义在警报服务器下的区域。它必须以前斜杠字符开始,并且不包含应用程序名称。
GroupPath 包括应用程序、区域路径、组路径,但不包括应用程序名称。表示定义在警报服务器的区域或应用程序下的组。它必须以前斜杠字符开始,并且不包含应用程序名称。

AlarmName 指定单个报警名称,或使用通配符 ? 和 *(问号和星号)指定多个警报。

示例

/Area1/SubArea1::[CLX]Program:LineProgram.MixingTank1        指定单个警报。
/Area1/SubArea1::[CLX]Program:LineProgram.MixingTank*        指定以 MixingTank 开始并在指定区域和子区域中的所有警报。
/Area1/SubArea1::*                        指定子区域 1 中包含的所有警报。
/Area/SubArea:NGServer::[CLX]Program:LineProgram.MixingTank*    指定以 MixingTank 开始且位于指定区域和组中的所有警报。
/Area/SubArea:TagServer:Group.Sub Group1::*            指定子组 1 中包含的所有警报。

绝对路径,类似以下的样子

•     [::]<AlarmName>

AlarmName 指定单个警报名称,或使用通配符 ? 和 *(问号和星号)指定与显示相同的区域中包含的多个警报。

示例

[CLX12]Program:Line1Program.MixingTank1                指定单个警报
[CLX12]Program:Line1Program.MixingTank1*              指定以 MixingTank1 开始的所有警报
*    指定与显示相同的区域中包含的所有警报

回到我们的例子,如果要展示L1Grp1下L2Sub1下L3Sub2内的所有报警,我们可以这么写:

*L1Grp1.L2Sub1.L3Sub2*::*

使用通配符,可以屏蔽各不确定的报警字符串。

3.配置画面

最后,参照PlantPAX的模板,我们可以做成全局画面进行调用

第一个画面按钮的背景色的动画加上:

再改一下1—9对应的颜色显示。按钮显示画面就正常制作即可。

同理其他按钮把1010改一下。如果是三级按钮,就在#1010后面继续扩展即可。

调用的时候如下图配置按钮。

您可能还喜欢...

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据