Applies To:
  • CitectSCADA
  • CitectHMI

When redundant OPC swaps from Standby back to Primary IODevice, showing 0 or incorrect data, this could lead to false alarms etc.

The reason for this is that to setup redundancy with OPC usually requires the use of status tags.

The status tags condition is monitored and the quality used to determine if the IODevice is to be online or offline. This is so that a loss of comms between the OPC server and PLC will cause bad quality and hence cause the IODevice to be put offline. Without the status tag the device would stay online (but may show #COM) since Citect still has a connection to the OPC server. This is fine for a standalone IO server, but with redundant IO servers (where there is an OPC server per IO server) the I/O device needs to be put offline so that clients know to swap to the Standby IODevice.

Now since the status tags quality is used to put the device offline, it is also used to put it online. In the case where the system is using the standby server, this is because the primary server is off. When you start the Primary it will put its iodevice online as soon as it has verified the quality of the status tag. This may be well before the rest of the tags have been added to the OPC server. Due to the way Citect redundancy works. All the clients will use the primary IOdevice if they can, so they will use the primary even though all the data is not ready.

With no additional parameters set, the values will show zero or some random value until all the tags are added. This may in the worst case cause some alarms to false trigger.

To avoid this you can set the following parameters


This will cause the values to show #COM in this period of swap over and will also ensure that no alarms will be triggered.

An alternate solution is not using status tags and using GoOfflineForBadTag=1 which would need all tags to be good quality before swapping back to the primary but this configuration may be unsuitable since there may be a situation of a tag being mis-configured causing the unit not to come online. This configuration is also inherently less stable as any tag which has a transient bad quality state can put the IOdevice offline unnecessarily.

Another consideration is that you can use status tags which have a value as the condition rather than the quality. You can set a different status tag for the primary device and the standby device. This way you can modify the value of the status tag and manually control the online/offline state of the IO Devices.

OPC, Redundancy, Status Tag, Swap