Understanding Alarm Statuses
iFIX can process alarm status information from I/O drivers. This information complements the alarms generated by iFIX database blocks. When an alarm is returned from a driver, iFIX compares the driver alarm against the block alarm. The alarm with the higher severity is used as the block alarm and the other alarm is ignored.
NOTE: As of iFIX 4.5, only the alarm statuses IA_OK and IA_COMM are supported for use through the SM2 driver.
iFIX defines the following alarms with the following severity:
Severity |
Alarm Status |
Description |
16 (highest) |
IA_COMM |
Communication error ("BAD" value). |
16 (highest) |
IA_IOF |
General I/O failure. |
16 (highest) |
IA_OCD |
Open circuit. |
16 (highest) |
IA_URNG |
Under range (clamped at 0). |
16 (highest) |
IA_ORNG |
Over range (clamped at MAX). |
16 (highest) |
IA_RANG |
Out of range (value unknown). |
16 (highest) |
IA_DEVICE |
Device failure. |
16 (highest) |
IA_STATION |
Station failure. |
16 (highest) |
IA_ACCESS |
Access denied (privilege). |
16 (highest) |
IA_NODATA |
On poll, but no data yet. |
16 (highest) |
IA_NOXDATA |
Exception item, but no data yet. |
16 (highest) |
IA_MANL |
Special code for MANL/MAINT (for inputs). |
8 |
IA_FLT |
Floating point error. |
8 |
IA_ERROR |
General block error. |
8 |
IA_ANY |
Any block alarm. |
8 |
IA_NEW |
New block alarm. |
7 |
IA_HIHI |
The block is in the HIHI alarm state (High High). |
7 |
IA_LOLO |
The block is in the LOLO alarm state (Low Low). |
7 |
IA_COS |
Change of state. |
7 |
IA_CFN |
Change From Normal (Digital block only). |
7 |
IA_TIME |
Time-out alarm. |
7 |
IA_SQL_LOG |
Not connected to database. |
6 |
IA_HI |
The block is in the HI alarm state (High). |
6 |
IA_LO |
The block is in the LO alarm state (Low). |
6 |
IA_RATE |
Value exceeds rate of change setting since last scan period. |
6 |
IA_SQL_CMD |
SQL command not found or invalid. |
5 |
IA_DEV |
Deviation from the set point. |
5 |
IA_DATA_MATCH |
SQL command does not match data list. |
4 |
IA_FIELD_READ |
Error reading tag values. |
4 |
IA_FIELD_WRITE |
Error writing tag values. |
1 |
IA_DSAB |
Alarms disabled. |
0 (lowest) |
IA_OK |
The block is in normal state. |
Using the preceding table, you can see that if a driver returns a HIHI alarm to a block that is in HI alarm, iFIX changes the alarm state to HIHI because the driver alarm is more severe. However, if the alarms are of equal severity, iFIX does not change the alarm state of the block. For example, if the block is in HI alarm and the driver returns a LO alarm, the block's alarm state does not change because both alarms have equal severity. Once an operator acknowledges the HI alarm, iFIX changes the block's alarm state.
NOTE: If you set a communication error to the S register with the SetCommError function, then all SM2 registers show a COMM alarm status. When examining the alarm status of text, only the status of the first character (byte) is read. You can control the alarm status functions of the SM2 driver using its C API only. Refer more information about this API, refer to the Using the SM2 C API section.