Applies To:
  • CitectSCADA
  • CitectHMI

There is often confusion about point counts in CitectSCADA, how are points counted? 

CitectSCADA's licensing works on the basis of how many points you use. Every tag defined in your system (i.e. in the 'variable tags' form / variable.dbf) has the potential to add to your point count. It is important to remember this, and plan your system properly, otherwise you may exceed your point limit.

You should not just rely on the compiler to tell you if you have exceeded your point limit, because it only counts static points (this includes all tags used by alarms, trends, reports, events, and pages). When your system is running, any new use of tags through Super Genies, DDE, OPC, ODBC, CTAPI or TagRead() / TagWrite() functions can potentially add to your dynamic point count. This means that you may be within your point limit at compile time, but exceed it without warning at runtime because your project is set up to use points dynamically at runtime.

Dynamic point count is a common source of confusion. People often assume that it is only the points above the static count that are currently being used. I.e. if you open a Super Genie it may add 10 dynamic points to the count and people expect that it will reduce by 10 when you close the Super Genie. This is not the case. The count will never reduce, however the same tags will never be counted twice.


1) Points are counted only once, regardless of how many times they are used.

2) At runtime, the static and dynamic point counts are available through the Kernel / General window and the CitectInfo() Cicode function.

3) It is very important to plan your system and keep aware of your point count so that you do not exceed your point limit. This is particularly important at runtime when you can unexpectedly add to your point count by using tags that have not yet been included in the tally.

4) When you run Citect, the static point count is checked against your Hardware Key. If the point count is too large, Citect will not start up. At runtime, the dynamic point count is added to the static point count. Citect will not allow you to use a new dynamic point if (at runtime) it pushes the total point count above the point limit - any new references to tags through Super Genies, CTAPI etc, will fail.

See Also:

[General]PointLimitMsg Parameter