理解报警状态

iFIX 能处理来自 I/O 驱动程序的报警状态信息。这一信息补充由 iFIX 数据库块产生的报警。当从驱动程序返回报警时,iFIX 比较驱动程序报警与块报警。用严重性级别更高的报警作为块报警,而别的报警将被忽略。

注意:自 iFIX 4.5 开始,对于 SM2 驱动程序仅支持 IA_OK 和 IA_COMM 报警状态。

iFIX 用下列严重性定义以下报警:

严重性

报警状态

描述

16(最高)

IA_COMM

通讯错误(“BAD”值)。

16(最高)

IA_IOF

一般 I/O 故障。

16(最高)

IA_OCD

开路。

16(最高)

IA_URNG

超低限(钳位 0 处)。

16(最高)

IA_ORNG

超高限(钳位 MAX 处)。

16(最高)

IA_RANG

超出范围(值未知)。

16(最高)

IA_DEVICE

设备故障。

16(最高)

IA_STATION

站故障。

16(最高)

IA_ACCESS

拒绝访问(权限)。

16(最高)

IA_NODATA

轮询,但尚无数据。

16(最高)

IA_NOXDATA

例外项,但尚无数据。

16(最高)

IA_MANL

MAN/MAINT 的特殊代码(用于输入)。

8

IA_FLT

浮点错误。

8

IA_ERROR

一般块错误。

8

IA_ANY

任一块报警。

8

IA_NEW

新块报警。

7

IA_HIHI

块处于 HIHI 报警状态(高高)。

7

IA_LOLO

块处于 LOLO 报警状态(低低)。

7

IA_COS

状态变化。

7

IA_CFN

由正常状态改变(仅限于数字块)。

7

IA_TIME

超时报警。

7

IA_SQL_LOG

没有连接数据库。

6

IA_HI

块处于 HI 报警状态(高)。

6

IA_LO

块处于 LO 报警状态(低)。

6

IA_RATE

值超过上一扫描期以来的变化率设定。

6

IA_SQL_CMD

SQL 命令未找到或无效。

5

IA_DEV

与设定点的偏差。

5

IA_DATA_MATCH

SQL 命令与数据列表不匹配。

4

IA_FIELD_READ

读取标签值时出错。

4

IA_FIELD_WRITE

写入标签值时出错。

1

IA_DSAB

报警禁用。

0(最低)

IA_OK

块处于正常状态。

从上表可以看出,如果一个驱动程序向处于 HI 报警的块返回一个 HIHI 报警,iFIX 将使报警状态变为 HIHI 报警,因为驱动程序报警更为严重。然而,如果报警严重性相同,iFIX 将不会改变块的报警状态。例如,如果块在 HI 报警而驱动程序返回 LO 报警,块的报警状态将不改变,因为两种报警的严重性相同。一旦操作员确认了报警,iFIX 将改变块的报警状态。

注意:如果您用 SetCommError 功能为 S 寄存器设置通讯错误,则所有的 SM2 寄存器显示 COMM 报警状态。检查文本的报警状态时,只读取第一个字符(字节)的状态。只能用 SM2 驱动程序的 C API 来控制报警状态功能。有关此 API 的详细信息,请参阅使用 SM2 C API 章节。

 

另请参见

您最近了解过 iFIX 吗 ?

查看最新版 iFIX 的所有新功能。

让 iFIX 帮助您提高效率,降低成本。