Applies To:
  • CitectSCADA 5.xx

What is the maximum number of Tags I can have in a Citect project that communicates using the Citect OPC Client driver to a ControlLogix PLC? 

There are several factors to consider before putting a limit on this -

1 - RSLinx needs to optimise communications packets to the PLC. Adding more than a couple of thousand tags will require a lot of processing in RSLinx and may result in unacceptably slow response times, especially at startup.

Solution: Use OPC arrays as much as possible so data requests are pre-optimised.

2 - Accessing Controller Tags via OPC uses extra memory in the ControlLogix PLC at runtime. Tags in OPC arrays use as much memory as single Tags, so using OPC arrays does not help. Memory can be monitored by reading a controller tag of type LONG, called "@freemem" - be careful that the ControlLogix PLC does not start to run low on memory at runtime.

Solution: Use PLC5 message mapping and the Citect ABRSLINX5 driver to access any large arrays, as this method does not consume memory in the PLC. Use the OPC driver for all other Tags. Changing all large arrays to using the ABRSLINX5 driver will greatly improve OPC performance by reducing the processing load.

3 - Prior to RSLinx v2.2 the connection in RSLinx was configured as "Remote Devices via Linx Gateway" and was of type "TCP". This method is slower than Ethernet devices.

Solution: As of RSLinx 2.2 the ControlLogix PLC can be accessed as an "Ethernet device" with an "ETH" connection.

4 - With RSLinx and Citect running on the same PC, CPU usage may be high.

Solution: If average CPU is greater than 40% then the Citect project needs optimising. The OPC update rate set in the Citect Boards form is essential - start with a setting of 500ms and test before reducing. The IODevice CacheTime should be set to slightly less than the update rate. Page ScanTime and Alarm ScanTime should also be adjusted to be more than the Update Rate. If this does not help, then the OPC server could be moved to another PC and accessed from Citect via the network.

5 - The theoretical maximum for the Citect OPC Client driver is 32,000 tags per device. In most cases response times from RSLinx via the Windows DCOM interface will not be acceptable with this many items.

Solution: Use the RSLogix OPC Test Client to test with the number of tags required. It can be configured to import a CSV file containing Tag addresses so the estimated number of tags can easily be tested. Two major tests are -

(1) Add all tags as active or inactive and observe effect on startup of OPC server.

(2) If all tags are added inactive you can then highlight 200 tags and set all to active and observe time taken for each to become active and to have it's subscription value updated - this will roughly simulate the time taken to change pages in a Citect project if 200 different tags are required for the page.

If you think there could be too many tags, then: (a) Use PLC5 message mapping and the Citect ABRSLINX5 driver to access all large arrays; (b) Configure a second OPC server and Citect I/O Server to share the load.