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

My CPU usage is very high and I am using string tags in my dynamic alarm descriptions.

e.g. Alarm Description "Level full in sector {StringTagX}

Normal polled alarms also poll the tags referenced in the Description string each alarm scan. Thus these descriptions place overhead on the system, even if no alarm states have changed. String tags are the most inefficient tag type in CitectHMI/SCADA as multiple strings cannot be blocked into a single request. As a result depending upon system resources a relatively small number of string tags may be requested every alarm scan time (default 500ms).


This problem may be overcome by

A. Reading the string tags from a Memory PLC as opposed to a real PLC or Disk PLC. If this solution is used then data synchronisation and persistence must be considered as Memory devices are per server and do not persist to disk.

B. Not using string tags at all, but to use numeric based tags if they are available.

Note: From CitectHMI/SCADA version 6, it is possible to have event-based digitals which only read the Description tags on alarm state change.


dynamic alarm descriptions performance string tag high CPU usage