The CitectSCADA computer that directly connects to an I/O Device is an I/O Server. I/O Servers are responsible for servicing the read, write and subscription requests from clients. A project can have many I/O Servers, with each cluster able to include multiple I/O Servers.
An I/O Server keeps up-to-date information on its connected I/O Devices by regularly retrieving data from each and storing it in a cache (I/O Device data cache). Whenever a CitectSCADA client requires data from an I/O Device, it will use the information stored in the I/O Server cache. Clients do not retrieve data directly from an I/O Device.
An I/O Server will read the necessary data from the I/O Device to execute a requested Cicode task or process. For example, when you schedule a report, CitectSCADA reads the I/O Device data that the report might need before the first line of the report starts running.
CitectSCADA performs writes to the I/O Device asynchronously, allowing other operations to continue while a write is taking place.