Applies To:
  • CitectSCADA 6.xx
  • CitectHMI 6.xx

Information as to how this function works with regards to the Internal Processing of information within CitectSCADA.

1. After the function is called, does it in the same process update the alarms, or is the update queued in some fashion for another process?

--> The notification is placed on a queue for a separate task to process.

2. The alarm is synchronized to the other server when this function is called, is that performed in the same process or again queued for another process?

--> The notification is sent to the standby server directly after it has been placed on the local queue regardless of whether or not it has been processed.

3. What tasks process this information

--> Client: -------
NotifyVarChangeTimeout - Every [Alarm]EventPushTimeout milliseconds, CitectSCADA checks the queue for late responses from the server.

Server: -------
Alarm Server processes any new notifications on the queue. [Alarm]ScanTime milliseconds checks all analogue and digital timestamped alarms against their "delay time.

4. What checks are made – this is related to see if the function is aware of what tags are used in the alarms and is optimized to not process tags that have no link to an alarm?

--> No checks are made before looking for a match in the alarm symbol table. The symbol table used to find tag/alarm matches is defined as a non-unique hash table. Searches on this type of structure iterate through each entry for a match. So performance is dependant on the number of alarms, and only tags associated with alarms should be used if speed is an issue.


Notify Change Alarm Server variable