Applies To:
  • CitectSCADA 1.00, 1.01, 1.10, 1.11, 1.20, 2.00, 2.01

Question: Exactly how does Citect handle I/O Server redundancy? 

Citect I/O Server redundancy operates at the Units (I/O Device) level. Each unit can be either a Primary or Standby unit. You can also have more than one Standby unit - for example 1 Primary and 2 Standby units.

You can use up to 255 I/O Servers on a single Citect project. The I/O Server is not a Primary or Standby server - they are all the same. One I/O Server can have a mixture of Primary and Standby units.

When both units are running, the I/Os are only processed on the Primary unit. This reduces the I/O load on the unit and PLC network, which is critical for the best performance. There is no need to synchronise any data between the Primary and Standby units.

Citect Clients talk to all the configured I/O Servers at the same time. On startup, they will try to connect to all the configured I/O Servers (if they cannot find one, a hardware error will be generated). This allows each I/O Server to have a mixture of Primary and Standby units. The Citect client will route the particular I/O Request to the active unit. For example if you have 3 I/O Servers,

Name Units on I/O Server
IOSer1 Unit1(primary), Unit2(standby), Unit3(primary)
IOSer2 Unit1(standby), Unit2(primary)
IOSer2 Unit1(standby), Unit2(standby), Unit3(standby)

If all units are communicating correctly, a Citect Client will create network sessions to all three I/O Servers. The client will then send requests for Unit1 and Unit3 to IOSer1, and requests for Unit2 to IOSer2. If Unit1 fails on IOSer1, the client will send requests for this unit to IOSer2, while it will still send requests for Unit3 to IOSer1. If Unit1 also fails on IOSer2, the client will send requests to IOSer3. When Unit1 on IOSer1 comes back online, the clients will begin sending their requests to IOSer1.

As you can place Primary and Standby units on various I/O Servers, it is better to share the Primary units between your I/O Servers - To balance the loading across all the I/O Servers. This may not be true for all PLC protocols, as the loading may be dependent on the PLC network, not the I/O Server CPU. In this case, more than one active I/O Server on the same PLC Network may degrade the PLC Network and so slow the total response.