PLC programs are the most valuable digital asset on many factory floors, yet they are frequently stored only in the controller's memory and one engineer's laptop. A failed memory card, a stolen laptop, or an interrupted upload can erase months of commissioning work.
The Minimum Standard
- Online compare first: always upload the running program before making changes, and store a baseline copy.
- Version with change notes: name backups with project, date, and revision; keep a one-line description of what changed and why.
- Three copies: one on the engineering workstation, one on a network file share, one off-site (encrypted).
Automation Without Over-Engineering
Modern controllers (Siemens S7-1500, Rockwell Logix, Codesys-based devices) support automated uploads via their engineering tools' command-line interfaces or vendor SDKs. A scheduled job that connects weekly, uploads changed projects, and commits them to version control gives you audit history with almost no human effort.
For older controllers without network interfaces, schedule a manual upload ritual: same day every month, same naming convention, reviewed by a second engineer. The process matters more than the tooling.
What to Store Alongside the Code
- Hardware configuration and module parameters
- Documented tag tables and aliases
- Safety program archives (keep them separate from standard logic)
- The exact firmware version and the upload tool version used
A backup you cannot restore is a placebo. Test a restore on a spare or virtual controller at least once a year.