Skip to main content
Call Eric:863-698-8266
CURRYCONTROLS.COMControls & Automation Knowledge Hub
ReferencePLCDesignDocumentationCybersecurityEngineering

Legacy Systems

Keeping older controllers running and planning a migration: the families still found in water plants, the risks that grow each year, software to keep alive, batteries and memory, tested spares, the security problem, and a migration the plant can survive.

9 min readUpdated Sep 5, 2026Published Sep 5, 2026By Eric Sullivan

The short answer

Legacy Systems

Every utility has controllers older than the people maintaining them: SLC 500 and PLC-5 systems, MicroLogix stations, Modicon 984 and Quantum racks, GE 90-30 systems, DirectLOGIC bricks, and others, running processes that have not needed to change. They fail in predictable ways: a battery dies and the program goes with it, a module fails and the spare turns out to be dead too, the software will not install on a current laptop, the network they use has no modern equivalent, and nobody left knows how they work. Keeping them running is a program of backups, spares that are tested, software kept alive on virtual machines, batteries on a schedule, and documentation recovered while it can be; migrating them is a project planned around the process, phased by area, with the I/O wiring preserved wherever a conversion system exists. The controllers also predate any idea of security, which makes isolation the only protection they have.

Key points

  • Back up every legacy program now, with the software that can read it, and store the software and its license with the backup.
  • Batteries hold the program on many legacy controllers; a schedule and a spare battery beat a rewrite.
  • A spare that has never been tested is a hope; test spares in a bench rack and keep the test record.
  • Legacy controllers have no security; isolate them behind a firewall and do not connect them to anything they do not need.
  • Migrate by area, preserve the field wiring with conversion systems where they exist, and run old and new in parallel where the process allows.

What is still out there

FamilySoftwareNetworkTypical risk
PLC-5RSLogix 5Data Highway Plus, remote I/OSoftware and operating system compatibility; module spares; battery
SLC 500RSLogix 500DH-485, Data Highway Plus, Ethernet on some processorsBattery; software licensing; processor spares
MicroLogixRSLogix 500 or MicroSerial, Ethernet on someVery common at remote sites; battery on some; end of life announced
Modicon 984, QuantumModsoft, ProWORX, Concept, UnityModbus Plus, Modbus, EthernetSoftware generations; Modbus Plus hardware; conversion to M580
GE 90-30, 90-70Logicmaster, Proficy Machine EditionGenius, SNP, EthernetSoftware lineage; module spares; migration to newer families
DirectLOGICDirectSOFTSerial, Ethernet on someRetiring; migration to Do-more or Productivity
Siemens S5, S7-300STEP 5, STEP 7 classicPROFIBUSSoftware on old operating systems; phase-out

The ways they fail

The battery
Most legacy processors hold the program and retentive data in battery-backed memory. The battery lasts a few years, the low battery indicator is ignored or never wired to an alarm, and a power outage erases the program. Some processors have an EEPROM or a memory module that restores the program on power-up if it was written; many never were.
The spare
A processor bought as a spare fifteen years ago has its own dead battery and possibly a failed component. A spare that was never powered has never been tested.
The software
The programming software was licensed to a computer that no longer exists, runs on an operating system that no longer installs, and communicates through a serial or proprietary interface that no current laptop has.
The network
A proprietary network with no new hardware; a failed interface card is a plant with no SCADA.
The knowledge
The integrator is gone, the documentation is a printout in a drawer, and the program has no comments.

Keeping them running

  1. 1

    Inventory

    Every legacy controller, its family, its firmware, its software version, its network, its battery type, and the date of the last backup, in the asset inventory.

  2. 2

    Back up

    Upload every program with the correct software and save it with the software installer, the license information, and a description of the communication cable and driver. Print the program too; a printout is the backup that survives every format change.

  3. 3

    Batteries

    Replace on the manufacturer interval, with power applied where the procedure allows, and wire the low battery output to a SCADA alarm.

  4. 4

    Non-volatile copies

    Where the processor supports an EEPROM, a memory module, or a card, write the program to it and set the processor to load from it on power-up.

  5. 5

    Spares

    Test every spare in a bench rack once a year: power it, load the program, exercise the I/O. Replace the battery in the spare.

  6. 6

    Software machines

    A virtual machine per software generation, with the operating system, the software, the license, and the communication driver, plus the physical interface it needs, kept with the engineering records.

  7. 7

    Isolate

    A firewall between any legacy controller and anything it does not need to talk to; no direct internet, no direct business network, remote access only through a jump host.

  8. 8

    Document

    While the people who know the system are still available: a narrative, an I/O list, and comments recovered from the printout into the program.

Security

A legacy controller trusts every message it receives. It has no accounts, no password on its network services worth the name, no signed firmware, and a network stack that can be crashed by malformed packets. The only protection is not to let anything reach it: a firewall that permits exactly the SCADA server and the engineering jump host, a network with nothing else on it, and physical control of the panel. A legacy controller found with a direct path to the business network or a cellular router with a public address is the first remediation item in any security assessment.

Planning the migration

  • Start with the risk: the controllers whose failure stops treatment or causes an overflow, whose spares are gone, or whose software cannot be run, go first.
  • Choose the target platform for the whole utility, not per site; the site library, the spares, and the training follow from it.
  • Preserve the field wiring where a conversion system exists: swing-arm and cable conversion systems for several legacy I/O families land the old terminal blocks on the new I/O without rewiring the field.
  • Convert the logic with the vendor tool where one exists, then review every routine; a conversion is a starting point, not a result.
  • Build the SCADA changes with it: tag names, drivers, and graphics change with the controller.
  • Phase by process area; run old and new in parallel with the field wiring switched over area by area, and keep the old controller in place until the new one has run through a full operating cycle.
  • Write the narrative and the I/O list as part of the migration; the new system starts documented.

Frequently asked questions

The processor lost its program. What now?
Load the backup with the correct software, if one exists, and replace the battery. If no backup exists, the printout is typed back in, or the process is run manually while a new program is written from the narrative. This is why the backup comes first on every visit.
Can I keep the old controller and just add a gateway to modern SCADA?
Yes, for a time; a protocol gateway or a driver for the legacy network gives SCADA access without touching the controller. It does not fix the battery, the spares, or the software, and it should be a step in a migration plan, not a substitute for one.
How do I justify replacing a controller that works?
With the consequences and the cost of the day it stops: the overflow, the boil notice, the manual operation for weeks while a replacement is engineered under pressure. A planned migration costs less than an emergency one and can be scheduled around the process.
Is a virtual machine with old software really necessary?
Until the last controller of that generation is gone, yes. The alternative is discovering on the day of a failure that nothing on the shelf can talk to the processor. The virtual machine, the license, and the cable are the insurance.

Direct contact

Have a controls question?

Reach Eric Sullivan directly about anything on this site, a controls or automation topic, or one of his personal projects.