Applies To:
  • CitectSCADA 1.xx, 2.xx, 3.xx, 4.xx, 5.xx

Summary:
What is (roughly) the fastest rate at which the Citect Application layer can request data from a driver assuming there is: only one driver and one instance of the driver in use; no cache on the unit; and no cache on the display page.  

Solution:
There is no lower level limit on how fast the I/O server can request data from a driver. Whenever a request for data arrives at the I/O server from a Citect client or server, the I/O server will pass it to the driver - as long as there are some free pending commands. Normally the driver will be busy, so as soon as the driver replies with the result, the I/O server will pass the next DCB to the driver. How fast this will occur will depend on the CPU loading of the computer, but typically it will be sub 1ms.

Normally the limit with very fast drivers is that the Citect client will not make request for data fast enough or it will be limited by network bandwidth when getting requests to the I/O Server. So as a quick test, I created a small Citect project with a DISK PLC and 1 tag called INT1. I then executed this Cicode function:

FUNCTION
Test()
    INT temp;
   
    WHILE 1 DO
        temp = int1;
        ReRead(1); // force a read of int1 from disk PLC.
    END
END

This Cicode function will run flat out requesting to read the int1 tag. The disk PLC has an artificial delay so you must also set the parameter [DISKDRV]Delay=0. On my Pentium Pro 200, this caused 4317 reads per second. So Citect was replying in roughly 0.2316423 ms on a PP200. As this is totally CPU bound, the faster the CPU the shorter the time.

 

Keywords:
 

Attachments