Applies To:
  • CitectSCADA 5.42, 5.42A, 5.50, 5.50A
  • CitectHMI 5.42, 5.42A, 5.50, 5.50A

How can I set up a Proxy I/O server in CitectHMI/SCADA? 

A proxy I/O Server can be used for the optimisation of Citect network traffic for I/O requests. Any I/O server can be used as a proxy I/O server.

Using a proxy I/O server can have the following advantages:

all I/O requests are routed via the proxy, this allows you to make a very secure connection between the clients and the I/O Server, since all clients send their I/O request to the proxy, and only the proxy communicates with the actual I/O Servers.

A proxy I/O server will decrease the amount of requests that go to the I/O Servers. The proxy I/O Server does block requests from multiple clients and sends a single request to the (remote) I/O Server. It also caches the data in the proxy I/O Server so some requests from clients can be answered from cache without sending an actual request to the remote I/O Server

It allows you to connect an IDC to pre V5.20 I/O servers. An IDC uses a pure sockets method for Citect networking. However this type of Citect networking was only introduced in V520. All pre-V520 I/O servers only can use NetBIOS based networking. A proxy i/o server can receive pure sockets requests from an IDC, and the send them through via NetBIOS traffic to the older I/O servers. This will allow the IDC to get data from for example a V5.00 I/O server.

To be able to use a proxy I/O server you need to set [Lan]tcpip=1.

On the proxy I/O server itself you do not have to make any settings at all. Only on the clients you will have to make some settings in your citect.ini file.

For example if I want my display clients to send all I/O request to IOserver1, you will have to make the following setting on the clients. IOserver1 will then serve as proxy, and send the I/O requests further to the I/O Servers where the actual I/O Devices are running (so for example to IOserver2, IOserver3 and IOserver4).

[PROXI] All=IOserver1

Of course it only makes sense to use a proxy if you have more than one i/o server in your project.

You can also make a more advanced split up of the I/O requests. For example to route all I/O requests for I/O servers IOA and IOB via IOP1, and all requests for I/O server IOC via IOP2 you can make the following settings on the clients.


In this case you would have a total of 5 I/O Servers in your project, with names IOA, IOB, IOC, IOP1 and IOP2.

To get a faster start up of your clients please also set [IOServer]AsyncConnect=1. When the AsynConnect parameter is set to 1, CitectHMI/SCADA will not try to connect to all I/O servers on startup, but rather connects to an I/O Server only when data from that I/O Server is required.