Applies To:
  • CitectSCADA

The Allen Bradley ControlLogix PLC, has been known to lose its program memory when communicating to Citect via the ABLOGIX driver. 

Reviewing the latest release notes for ControlLogix firmware.

Rev 11 (Aug 2003) -

Rev 12 (Nov 2003) -

These list numerous different problems which can lead to "clearing the project from its memory"

Of particular interest are "bug" numbers Lgx00037557 & Logix00037864 which read;


Use of a Third-Party OPC Server Produced a Non-Recoverable Fault


If you monitored data using a third-party OPC server that by-passed RSLinx software, the controller might have experienced a non-recoverable fault (solid red OK LED) and cleared the project from its memory.


So it can be seen that this is a known issue for the ControlLogix and is not exclusive to Citect or the ABLOGIX driver.

In our limited experience with this issue it has been seen to occur under some circumstances when the PLC runs out of memory. This can happen as a result of simply executing logic code in the PLC or more commonly as a result of trying to service communication requests. Eg when Citect connects to the PLC.

The memory available in the PLC can be monitored via RSLinx and the OPC test client provided with RSLinx. Simply add tags with item names of



The best way to avoid this problem is to run with the latest revision of the firmware and also ensure there is a reasonable margin of free memory available. Memory modules of different capacities are available, but installing a different one may not be a trivial task. Upgrading of the controller firmware may also be a significant undertaking, requiring upgrading of other firmware in your system and upgrading of configuration software.

Another way to alleviate the potential outfall of such a problem (to a small degree) is to install and configure a non-volatile memory card to store the program in. These can be configure so that if when the processor starts up and there is no project in RAM that the project is copied back to RAM. However keep in mind that Data memory would be lost or set back to defaults and any sequences/ logic that is running would be initialised (potentially mid sequence). In other words this could still be a catastrophic failure.