Applies To:

  • CitectSCADA v7.10 and earlier
  • Vijeo Citect v7.10 and earlier
  • PowerLogic SCADA v7.10

 The original implementation of Accumulator server redundancy in CitectSCADA v7.10 and prior did not attempt synchronisation between servers. This meant that on switchover, accumulation cycles were not kept in phase and counter values lost some accuracy.

 An update has been made for Accumulator servers to synchronise and maintain phasing on switchover. Contact customer support regarding the availability of a fix for this issue.
Fix details

The Accumulator subsystem runs on the Report Server and in the past would assume the same active or inactive status as the Report Server it ran on. In this fix, the Accumumulator gains its own switchover logic. The primary (configured via Report Server Mode) will attempt to take over as the active as soon as it has initialised IO and is ready to begin accumulating. This may take in the order of minutes, and presently can only be conclusively determined by turning on logging ([Accumulator]Debug=1) and scanning the Report Server syslog for lines with "Promoted to active" or "Demoted to inactive". For example:

2010/07/06-17:37:17.179 Accumulators: AccStop Demoted to inactive (stopping)
2010/07/06-17:37:17.179 Accumulators: AccReadyToAccumulate Promoted to active (no redundant server connection)
Environment Requirements

Certain environmental constraints must be met for this fix to operate correctly:

1. Redundant servers must be time synchronised
2. Network comms between redundant servers is fast and reliable (otherwise there is a chance of missed accumulations on switchover).
3. [Accumulator]WatchTime >= 2 x max (trigger and counter read response times)


The following changes have been made to citect.ini parameters in this fix:

Debug ! setting of 1 logs to syslog.dat (default=0)
UpdateTime ! new default of 0, keeps IO Device up-to-date with cache
WaitForPrimaryTimeout ! time in seconds for standby to wait for reconnection
! with the primary server before assuming active role
! and writing counter updates to the IO Device
! (default=0)
SyncRetryPeriod ! time in seconds to retry redundant server
! synchronisation if it fails (default=3600)

 accumulator redundancy synchronisation switchover