Applies To:
  • CitectSCADA 5.xx, 6.00
  • CitectHMI 5.xx, 6.00

How do I optimise the performance of my ABCLX system? 

Step 1: Adjust the System Overhead Time Slice in the PLC to the highest value that does not interfere with the running of operations on the PLC. The System Overhead Time Slice in the PLC is adjusted from the Controllogix programming software by right clicking on the controller and navigating to the "Controller Properties" then click on the "Advanced" tab.

Step 2: Arrange your variable.dbf by IO Device then DataType. This is good engineering practice with any Citect project as it allows Citect to create requests by blocking the same data types within an IO Device together.

Step 3: Run the Citect system and enter the kernel. Select "View" then "Drivers" and navigate to the board using the ABCLX driver. Press "v" for verbose and expand the window to see its entire contents. Ensure that you do not have any "Bad Tags". If you have "Bad Tags" use the ABCLX logging to generate logs to find which tags are bad. Also ensure that you do not have any "Tag Config Warnings".

Step 4: Take note of the "Average Group Poll time" and multiply this value by 2. Enter this figure into the following citect.ini parameter: [ABCLX] ScanTime = value.

Step 5: Shut down the system and start it back up. Enter the driver page in the kernel once again and press "v" for verbose. Ensure that there are still no "Bad Tags" or "Tag Config Warnings". Check to see that the driver is polling correctly with the following values being present in the window:

Session Tread State = 2

Session State = 4

Socket Thread State = 2

Step 6: Increase the number of ForwardOpenPoolSize from the default of 4 upwards in small increments. With each successive increase in the parameter of ForwardOpenPoolSize the Group Average Poll Time will reduce in magnitude until further increases of the ForwardOpenPoolSize have a smaller effect on the Group Average Poll Time and the driver begins to find it difficult to get online.

Step 7: In order to make it quicker for the ABCLX driver to realise that it has become Offline, reduce the [ABCLX] Watchtime parameter. Doing this increases the frequency that the ABCLX driver checks to see if it is online and hence if it does become Offline, it attempts to create a new connection faster than it would if it waited for a larger Watchtime value.

Additional Note: If your ABCLX driver repeatedly fails at establishing a connection with the most "unoptimised" settings, you may choose to increase the [ABCLX] Timeout parameter and ConnTimeout parameter to allow more time for the PLC to allow a connection to be made before causing the ABCLX device to go Offline.