Applies To:
  • CitectSCADA 7.x

I have set up several alarms, and noticed that some of my alarms do not get triggered as they should.

For instance, I tried to manually trigger one of my digital alarms via TagDebug(), but the alarm does not seem to get triggered at all, as it is not displayed on my alarm page.

I do have all required privileges to view all alarms, and there is no alarm filter in place.

Also, I checked that my machine is actually running as an alarm server (because some alarms are processed, but I also checked from the kernel's "page table stats")


This problem may be due to the fact that you are running multi-process and have configured alarms based on local variables.

In Multi-process mode, if the value of a local variable changes on the IOserver, its value will NOT be updated in the Alarm server process.

The v7 help file states: "Local variables are useful when you need each process to have a separate copy of the data. Each process has its own copy of each local variable configured in the project, and the values in a local variable are available only to the process that wrote them."

If you wish to configure alarms that are based on "non-real" variables, you should define a disk device rather than local variables. Disk tags are shared by all processes, which means that if a value changes in the IOserver process, the update will also be passed on to the Alarm process.

Note: An easy way to confirm that the above is your problem is to try and run in single process, and see if the alarms are processed correctly. All alarms should be triggered and displayed properly.