Applies To:
  • CitectSCADA 7.0, 7.10
  • CitectHMI 7.0, 7.10


With version 7.0, CitectSCADA introduced a "pub-sub" (publisher / subscriber) architecture model for I/O communications between I/O server and clients. This has enabled features such as client side online changes and removed the need for tag based drivers to sync OID's on all clients and servers.

Since the pub-sub communications paradigm is "report by exception", it may seem that an expected feature is reduced network traffic as data is only sent to a subscribed client when its value changes. However, since the protocol and data structures are more complicated, there is more overhead per message and an increase in network traffic could be observed for a project. This may present an issue for WAN based systems. In addition there is an associated CPU cost with processing the update events etc. So a V7.x system will have an increased usage of Network, CPU and other system resources when compared to an equivalent V6.x system.

For these reasons it is important to consider making use of one of the features of the pub-sub communications model, which is the ability to apply deadbands to variable tags. Using deadbands can reduce the CPU loading on the I/O server and control the network loading through less frequent updates.

Defining variable tag deadbands is going to be specific for each project. Field data points should be reviewed. Data that is changing greater than the resolution needed by operators and historical logging should have a deadband applied. Deadbands should be avoided on some data points, such as counters, as all the value changes for this type of data are expected to flow through the system.

Note: With analog variable tags that have no engineering scale defined, the range that will be used when a percentage deadband is specified is the full range for the relevant data type, e.g. an integer has a range of -32768 to 32767 and if a percentage deadband of 0.05% was used, it would translate into a true deadband of 32 for that point.

To monitor the rate of events the I/O Server is generating, a performance counter is available. The following process can be used to observe the counter.

(Windows XP)
START menu -> Run.
perfmon -> ENTER
right click in the legend area of the System Monitor chart -> add counters
Select the performance object 'Citect.Platform.PSI.PSIConnector'
Select the 'SubscriptionNotifyRate' counter.
Select the 'psiconnector' instance, Click 'Add' then 'Close'

As an example, while observing the menu page in the CSV_Example project an average of around 400 Notifications per second is seen.

At this point there is no method to monitor the notify rate of individual tags.