Applies To:
  • CitectSCADA 3.xx, 4.xx, 5.xx, 6.xx, 7.0, 7.1

I have setup a redundant disk PLC and have found that data can become out of sync if a network failure occurs between the two I/O Servers handling the redundant disk PLC.  How can this happen?

Take the scenario of disk PLC Primary.cdk on IOServer1 and disk PLC Standby.cdk on IOServer2 as detailed in Knowledge Base article Q2228.  Under normal circumstances when a write request is made over the network, both I/O Servers will perform this write to the individual local disk PLC files and hence keep them in sync.  If however the network connection between these two I/O Servers is severed while Citect is running, then when a write request is made on IOServer1 (or any clients connected only to IOServer1) it will only write to the file Primary.cdk.  The same applies for IOServer2.

If the network is restored while Citect is still running, then all read requests will revert back to the IOServer1.  If during the network failure values were written to the Standby.cdk file, then these values will remain in this disk PLC file, but will not be visible when the network is restored due to all read requests coming from the Primary I/O Server.  Any new write requests will write to both files and re-sync the value.

CIT has confirmed this to be a problem in Citect for Windows version 3.xx to 5.xx. We are researching this problem and will post new information here as it becomes available.

Update: This problem is occurring in all versions up to and including v7.1. Citect is working on a potential solution in v7.2. Further information will be posted when available.