This is a ready-to-use SOP. It sits underneath the corporate backup and restore policy and applies that policy’s intent to the specific artifact that makes automation different: the thing being protected is an executable validated state, not a document. Replace every <<FILL: ...>> placeholder with your own specifics, set your document numbers and dates, and route it through your normal document control, review, and approval. A worked filled specimen follows the template. Verify each cited regulation against the current source before you rely on it.
Document control header
| Field | Entry |
|---|---|
| Document title | Control System Configuration Backup and Recovery (PLC, SCADA, DCS) |
| Document number | <<FILL: SOP-ID, e.g. SOP-AUTO-011>> |
| Version | <<FILL: version, e.g. 1.0>> |
| Effective date | <<FILL: effective date>> |
| Supersedes | <<FILL: prior version or "New">> |
| Document owner | <<FILL: role, e.g. Automation Engineering Lead>> |
| Applies to | <<FILL: sites / systems in scope>> |
1. Purpose
This procedure defines how <<FILL: COMPANY NAME>> backs up and restores validated PLC, SCADA, and DCS configurations, so a hardware failure or a corrupted file is recovered to a known, approved state, not a guess.
2. Scope
This procedure applies to all GMP-impacted PLCs, SCADA systems, and DCS platforms, their engineering project files, configuration databases, recipes, and the process historian. It covers routine scheduled backup, the backup taken immediately after every approved change, and the restore procedure used when a backup is recovered to replacement hardware or to correct a corruption. It does not cover general IT server backup, which is governed by <<FILL: SOP-ID for IT backup and restore>>, except where a control system’s backup also depends on that underlying infrastructure.
3. Responsibilities
| Role | Responsibility |
|---|---|
| Automation / controls engineer | Performs backups per the schedule and after every change, labels and stores them correctly, and executes restores. |
| CSV / validation lead | Confirms the backup scope matches the validated configuration and that restore tests are planned at the required frequency. |
| Quality Assurance | Approves this procedure, reviews restore records and any related deviation, and confirms the practice matches periodic review evidence. |
| IT / infrastructure | Provides and maintains the backup storage location, access controls, and retention for backup media or repositories. |
| System owner | Owns the approved version baseline against which every restore is checked. |
4. Definitions
- Approved baseline: the version of a PLC program, SCADA project, or DCS configuration that was validated and released for production use, recorded with its version identifier or checksum at the last change control closure.
- Checksum / version comparison: a technical comparison (hash value, version number, or equivalent) used to confirm a restored configuration is identical to the approved baseline, rather than relying on the backup job’s “success” status alone.
- Restore test: a controlled exercise, not tied to an actual failure, that proves a backup can be recovered and functions correctly before it is needed in an emergency.
- Configuration drift: any difference between the live, running configuration and the approved baseline that was not put through change control.
5. Procedure
5.1 What to back up, by layer
| Layer | Capture |
|---|---|
| PLC | Full program (logic, I/O configuration, firmware version), password/security settings, and the engineering project file used to create it |
| SCADA | Project file, display screens, alarm database, historian tag configuration, user and role configuration |
| DCS | Configuration database, controller application code, master and site recipes, batch manager configuration |
| Historian | Tag database and historical process data, with its compression and retention settings |
5.2 When to back up
- On the defined schedule for the system, set from its criticality per
<<FILL: reference, e.g. the periodic review schedule>>, at minimum<<FILL: frequency>>. - Immediately after every approved change is implemented and confirmed working, before the change record is closed. This is the backup that becomes the new approved baseline.
- Before any firmware update, major configuration change, or hardware replacement, as a rollback point distinct from the post-change backup.
5.3 Taking the backup
- Use the validated backup method for the platform (vendor backup utility, project export, or configuration upload) specified in
<<FILL: system-specific work instruction or vendor reference>>. - Label the backup with the system ID, date and time, the change control or event that triggered it, and the version identifier.
- Store the backup in the designated repository per
<<FILL: reference, e.g. the IT backup and restore SOP>>, with access restricted to authorized personnel. - Record the backup event, including the version identifier or checksum captured at the time, in the backup log (section 8).
- Where the backup follows an approved change, update the approved baseline record so the new backup is recognized as the current reference point.
5.4 Restoring a backup
- Confirm the reason for the restore (hardware failure, corruption, or a planned restore test) and, for an unplanned restore, open the applicable record per
<<FILL: SOP-ID for deviations, if the restore follows an unplanned event>>. - Select the backup to restore: the most recent approved baseline, unless the investigation specifically calls for an earlier version.
- Restore the backup to the target hardware or environment using the validated restore method for the platform.
- Perform the checksum or version comparison of the restored configuration against the approved baseline recorded in the change control system. A mismatch is investigated before the system returns to production; it is not restored “close enough.”
- For a PLC restored to replacement hardware, re-run a representative sample of the I/O loop checks from the original OQ (see the automation OQ protocol) to confirm the physical I/O maps correctly on the new hardware.
- For a SCADA or DCS restore, confirm a sample of displays, alarm setpoints, and recipe content match the approved configuration.
- Document the restore (section 8) and obtain the required approval before the system returns to routine production use.
5.5 Restore testing (proactive, not failure-driven)
- Each GMP-impacted system has a documented restore test at the frequency set in
<<FILL: reference, e.g. annually and after any major platform change>>, performed to a non-production target where feasible. - A restore test follows the same verification steps as section 5.4 and is documented as a restore test, not disguised as a live event.
- A failed restore test is raised and investigated per
<<FILL: SOP-ID for deviations>>, and the backup method is corrected and re-tested before being relied on again.
6. Acceptance criteria
A backup and restore cycle is acceptable when all of the following are true:
- The backup captured the full scope defined in section 5.1 for the system, not a partial subset.
- The backup is labeled, logged, and stored per section 5.3.
- Every restore includes a checksum or version comparison against the approved baseline, with any mismatch investigated and resolved before production use resumes.
- A representative function check (I/O loop sample for a PLC, display and recipe sample for SCADA/DCS) confirms the restored system actually works on the target hardware, not only that the file transferred.
- Restore testing occurs at the defined frequency independent of whether a real failure has occurred.
7. References
21 CFR 211.68, Automatic, mechanical, and electronic equipment (backup data exact, complete, and secure from alteration, erasure, or loss). EU GMP Annex 11, Computerised systems, section 7.2 (data backup) and Annex 11 general principles. MHRA “GXP” Data Integrity Guidance and Definitions, Revision 1 (March 2018), backup and archive expectations. ISPE GAMP 5: A Risk-Based Approach to Compliant GxP Computerized Systems, Second Edition (2022).
Confirm the current version and clause numbers of each reference before issue.
8. Record generated: backup and restore log
| Field | Entry |
|---|---|
| System name and ID | <<FILL>> |
| Event type | Scheduled / post-change / pre-change rollback point / restore / restore test |
| Date and time | <<FILL>> |
| Version identifier / checksum captured | <<FILL>> |
| Triggering change control or event | <<FILL: number or N/A>> |
| For a restore: comparison to approved baseline | Match / Mismatch, <<FILL: detail>> |
| For a restore: function check result | <<FILL>> |
| Performed by (name, signature, date) | <<FILL>> |
| QA review (for a restore, name, signature, date) | <<FILL>> |
9. Revision history
| Version | Date | Author | Summary of change |
|---|---|---|---|
<<FILL: 1.0>> | <<FILL: date>> | <<FILL: author>> | Initial issue. |
10. Approvals
| Role | Name | Signature | Date |
|---|---|---|---|
| Author | <<FILL>> | ||
| Reviewer (Automation Engineering) | <<FILL>> | ||
| Reviewer (QA) | <<FILL>> | ||
| Approver (Quality Head) | <<FILL>> |
Filled specimen
A PLC processor failure on a filling line, illustrative detail only.
| Field | Entry |
|---|---|
| System name and ID | Line 3 filler PLC, controller FPLC-03 |
| Event type | Restore (unplanned, following processor hardware failure) |
| Date and time | 2026-08-19 14:05 local |
| Version identifier / checksum captured | v4.2.1, checksum matches the approved baseline recorded at change control CC-2026-0177 |
| Triggering change control or event | Hardware failure, deviation DEV-2026-0301 opened |
| Comparison to approved baseline | Match, confirmed by checksum comparison before restart |
| Function check result | Three-point I/O loop check repeated on the replacement processor (fill-weight transmitter), all three points within tolerance |
| Performed by | T. Marchetti, signed, 2026-08-19 |
| QA review | S. Owusu, signed, 2026-08-20 |
In this example, the replacement processor was loaded from the backup taken after the most recent approved change. Before the line restarted, the checksum comparison confirmed the restored program matched the approved baseline recorded at the prior change control closure, not an earlier or an untracked interim version that might have been sitting in the backup folder under a similar file name. A sample of the fill-weight I/O loop checks was then repeated on the physical replacement hardware itself, because a checksum match on the program proves the logic is right but says nothing about whether the new processor’s terminals are wired and scaled the same way the old one was. Only after both checks passed did the line go back into production, and only then was the deviation closed. That sequence, not the fact that the backup file transferred without an error message, is what an inspector is actually asking about when they ask how you know the replacement works.
Common inspection findings this SOP prevents
- A backup exists and restores without error, but nobody compared the restored version against the approved baseline, so an earlier, unapproved configuration could run undetected.
- Backup scope captures the PLC program but not the engineering project file, the recipe set, or the historian configuration, so a full recovery is not actually possible.
- Backups are taken on a fixed schedule disconnected from the change control calendar, so the most recent approved change is not captured.
- No restore has ever been tested outside of an actual failure, so recoverability is assumed rather than proven.
- A restore following a hardware replacement skips the function check, confirming the file but not the physical I/O mapping on the new hardware.
How to adapt this SOP
- Set your document number, owner, and effective date in the header.
- Point section 5.2’s frequency and section 5.5’s restore-test interval to your actual periodic review schedule.
- Name your real backup repository and retention reference in section 5.3.
- Confirm the approved-baseline record referenced throughout is the same one your change control system maintains, not a separate, unreconciled list.
- Confirm every regulation in section 7 against the current published version before issue.