AlarmAck
- Last UpdatedSep 09, 2025
- 3 minute read
Acknowledges alarms. You can acknowledge the alarm where the cursor is positioned, one or more alarm lists on the active page, a whole category of alarms, or alarms of a particular priority.
This command takes the currently logged in user into account. In other words, only the alarms that the user can see are acknowledged.
You would normally call this function from a keyboard command. No action is taken if the specified alarms have already been acknowledged.
If this function is not called from a foreground task, it becomes a blocking function.
Note: For projects using StruxureWare templates, Mode 0 cannot be used, and Mode 1 is only supported when Value set to –1 (acknowledge all lists on the page).
Syntax
INT AlarmAck(INT Mode, INT Value [, STRING ClusterName])
Mode:
The type of acknowledgment:
0 - Acknowledge a single alarm.
• Set Value to the AN where the alarm is displayed.
• Set Value to 0 to acknowledge the alarm at the current cursor position.
1 - Acknowledge a page of alarms. An alarm page can contain more than one alarm list:
• Set Value to the AN where the alarm list is displayed.
• Set Value to 0 to acknowledge the (displayed) alarm list on the active page where the cursor is positioned.
• Set Value to -1 to acknowledge all (displayed) alarm lists on the active page. This only applies to alarm lists created using AlarmDsp (and not those created using AlarmDspLast).
2 - Acknowledge a category of alarms:
• Set Value to the alarm category (0 to 16375) of the alarms to be acknowledged. Please be aware that Alarm category 0 indicates all categories; alarm category 255 indicates hardware alarms.
• Set Value to the group handle to acknowledge a group of categories.
3 - Acknowledge alarms of a specific priority.
Hardware alarms are not affected by priority.
• Set Value to the alarm priority (0-255) of the alarms to be acknowledged. Alarm priority 0 indicates all priorities.
• Set Value to the group handle to acknowledge a group of alarms of different priorities.
Value:
Used to specify which alarms to acknowledge.
sClusterName:
Used with Mode 2 or 3 to specify the name of the cluster in which the alarms being acknowledged reside. This argument is optional if the client is connected to only one cluster containing an alarm server or are resolving the alarm server via the current cluster context.
This argument is not required where the mode is 2 and the value is 255 (hardware alarm category).
This argument is enclosed in quotation marks "".
Return Value
Alarm commands on single clusters will return either 0 if successful or an error code if unsuccessful.
Alarm commands across multiple clusters may also return a partial success result, whereby a command has been successful on 'at least' one cluster but unsuccessful on another cluster.
Note: In some cases, this function is non-blocking. Under these circumstances, any error that is detected when the alarm server processes the command will not be returned.
Related Functions
GrpOpen, AlarmAckRec, AlarmAckTag, AlarmClear, AlarmDisable, AlarmEnable
Example
|
System keyboard |
|
|
Key Sequence |
LeftButton |
|
Command |
AlarmAck(0, 0) |
|
Comment |
Acknowledge the alarm where the cursor is positioned |
|
System keyboard |
|
|
Key Sequence |
ShiftLeftButton |
|
Command |
AlarmAck(1, -1) |
|
Comment |
Acknowledge a page of alarms |
|
Comment |
Acknowledge the alarm where the cursor is positioned |
|
System keyboard |
|
|
Key Sequence |
AlarmAck ### Enter |
|
Command |
AlarmAck(2, Arg1, "clusterXYZ") |
|
Comment |
Acknowledge alarms of a specified category in cluster XYZ |
|
System keyboard |
|
|
Key Sequence |
AckPri ############# Enter |
|
Command |
AlarmAck(3,Arg1, "clusterXYZ") |
|
Comment |
Acknowledge alarms of a specific priority in cluster XYZ |
! Acknowledge alarms of the specified group of categories.
FUNCTION
AckGrp(STRING CategoryGroup)
INT hGrp;
hGrp=GrpOpen("CatGroup",1);
StrToGrp(hGrp,CategoryGroup);
AlarmAck(2,hGrp, "clusterXYZ");
GrpClose(hGrp);
END