---
title: "PLC and SCADA Backup and Restore That Works | Citia"
description: "PLC backup and restore: a backup only counts if it matches the running code, includes configs, licences and software versions, and has been test-restored."
url: https://citia-engineering.com/en/knowledge/plc-scada-backup
language: en
updated: 2026-11-13
type: article
site: Citia Engineering Indonesia
---

# PLC and SCADA backups you can actually restore

A backup counts only if it matches the running system, includes configs, licences and software versions, and has passed a restore test. Checklist and schedule.

| Field | Value |
| --- | --- |
| Topic | Control systems |
| Author | Tim Engineering Citia |
| Updated | 2026-11-13 |

Key takeaways

A PLC or SCADA backup is only useful if the saved version matches what is running in the field, includes the network configuration, licences and engineering software version, and has been restored successfully in a test.

Most sites have backup files. Far fewer have backups they can restore at three in the morning when a CPU or a SCADA server dies. This guide covers what a complete backup contains, why restores fail, how to prove a copy matches the running system, how to test a restore and how often to save. It builds on the SCADA architecture guide , because every layer in that chain needs its own copy.

- A PLC or SCADA backup is only useful if it matches what is running in the field, includes network settings, licences and the engineering software version, and has been restored in a test.
- A complete backup covers PLC programs, HMI and SCADA projects, databases, gateway and network configuration, firmware versions, licences and the documents that tie them together.
- Back up after every change and on a fixed routine, and compare the saved copy with the online program so differences are found before they matter.
- Store copies away from the machines they protect, control who can change them, and test a restore on spare hardware or a test machine.

## What a complete backup contains

A control system backup is a set of files, not one file. Each layer of the system holds something the others cannot rebuild.

The PLC program is the obvious part. Just as important are the HMI and SCADA project, the tag database, the historian and any application database, the configuration of gateways and converters, and the network settings that let them find each other. Firmware versions, licences and the exact engineering software version decide whether those files can be opened at all. Documents such as the I/O list, topology drawing and change records explain how the pieces fit.

Citia's PLC/SCADA assessment material makes the same point: PLC programs, gateway configurations, databases, SCADA projects and engineering documents serve different roles, so one backup must not be assumed to cover every layer. The grid below is a practical checklist.

Do not forget the small devices. Protocol gateways, serial converters and managed switches each hold settings that took hours to get right, and they are often missing from backup sets because they have no project file of their own.

- PLC programs: Uploaded from the running controller, with its firmware version.
- HMI and SCADA project: Graphics, tags, alarms, scripts and drivers.
- Databases: Historian, recipes and application data.
- Gateway configuration: Protocol converters, serial settings and register maps.
- Network settings: IP addresses, switch configuration, routing.
- Software and licences: Installers, versions, licence files or keys.
- Documents: I/O list, topology, P&ID, change records.
- Backup register: Who saved what, when, from where, and the last restore test.

## Why backups fail at restore time

A backup usually fails for a dull reason: it is old, incomplete or cannot be opened. These problems stay hidden until the day the copy is needed.

The repair of the switchgear monitoring system at Petrokimia Gresik shows several at once. The existing backup could not be downloaded because the controller firmware had been upgraded, so a newer ABB Freelance version had to be installed on the engineering station. On top of that, the old engineering station hard disk had failed, so the last program was no longer available, and the system had to be reviewed and re-programmed. See the Petrokimia Gresik recovery .

Other common causes are just as ordinary:

At Mayora in Cianjur, the lessons recorded after a chiller SCADA repair included that backups of PLC and SCADA configuration help recovery. See the Mayora chiller SCADA repair .

- the saved copy is older than the program running in the field;
- the only copy sits on the engineering PC that just failed;
- nobody recorded which software version opens the file;
- the licence was tied to a dongle or PC that no longer exists;
- gateway and converter settings were never saved at all;
- the copy was taken while a forced value or test mode was still active.

## Proving the backup matches what is running

A backup is trustworthy only when it has been compared with the live system. Most engineering tools can compare an offline project with the program in the controller and list every difference.

Make that comparison part of each save. Upload from the controller, compare it with the last stored version, and record the result. If they differ and nobody can explain why, treat that as a finding: an undocumented change has happened, and it needs an owner before the next fault.

A backup register keeps the evidence in one place. Each entry names the asset, firmware, file, software version, licence, a checksum of the file, the comparison result and the last restore test. The example on the right shows one entry.

```yaml
# Example only: one entry in a backup register
asset: PLC-PUMP-01
location: pump house panel
controller: <vendor> <CPU model>
firmware: <version read online>
program_file: PLC-PUMP-01_<date>.zip
saved_from: online upload
engineering_software: <product> <version>
licence: <licence ID or dongle>
checksum: <file hash>
compared_with_online: yes, no differences
last_restore_test: <date>, spare CPU, passed
change_ref: <work order or change record>
copies: site server, offline drive, off-site
```

Example backup register entry. Field names are illustrative.

## How to run a restore test

A restore test proves that a copy can rebuild a working system. It does not need to touch the running plant.

Use a spare CPU, a test rack or a virtual machine for the SCADA server. Install the engineering software version recorded in the register, restore the files, and check that the program opens, compiles and matches the online version. For SCADA, confirm that graphics load, drivers start and tags resolve. Write down every gap, such as a missing licence or driver, and fix it in the backup set, not only on the test machine.

The US Cybersecurity and Infrastructure Security Agency (CISA) makes the same point in its 2025 guidance on operational technology: software backups and standby systems should be tested routinely, so that manual operation is possible and safe during an incident.

Schedule restore tests like any other maintenance task, at a fixed interval agreed for each critical system and after every major software upgrade. A test that is planned gets done; one that waits for a quiet week does not.

- Pick the target: Spare CPU, test rack or virtual machine, never the live system.
- Install the recorded software: Use the exact engineering software version and licence.
- Restore the files: Program, project, database and configuration from the backup set.
- Check it works: Opens, compiles and matches the online version; screens and tags load.
- Record the result: Date, target, outcome and gaps found, in the backup register.
- Close the gaps: Add missing files or licences to the backup set and retest.

## How often to back up

Back up whenever something changes, and on a fixed routine in case a change slipped through. The trigger matters more than the calendar.

The table links common events to what should be saved. The routine interval depends on how often the site changes; at the Padalarang fuel terminal, for example, the TAS maintenance team makes a database backup on the server during each monthly visit. See the Padalarang TAS lifecycle support .

- PLC program change: Uploaded program, change record, comparison result | Before and right after the change
- Firmware upgrade: Program, new firmware version, engineering software version | Before and after the upgrade
- SCADA graphic or tag change: SCADA project and tag database | After the change is accepted
- Network or IP change: Switch, gateway and device settings, updated topology | After the change
- Device or gateway replaced: New device configuration and register map | At commissioning
- Routine: Full set, compared with online versions | On a fixed interval agreed for the site

## Storing backups safely

A backup stored on the machine it protects disappears with that machine. Keep copies in more than one place, and keep at least one offline.

Control who can write to the backup store, so that a mistake or an attacker cannot replace good copies with bad ones. A checksum recorded in the register shows whether a file has changed since it was saved. Keep installers and licence files with the backups, because a vendor download page may not offer an old version years later.

Backups belong inside the site's wider OT security programme. ANSI/ISA-62443-2-1-2024, part of the ISA/IEC 62443 series, sets security programme requirements for asset owners of industrial automation and control systems. NIST SP 800-82 Rev. 3 gives guidance on securing operational technology while keeping its performance, reliability and safety needs in view.

## Who owns backups, and what comes next

Backups need a named owner on site, even when contractors do the work. Without one, each contractor keeps its own copy and nobody holds the complete set. When a contractor finishes a job, ask for the final program, the changed configuration and the comparison result as part of acceptance, before the work is signed off.

Put backup duties into maintenance contracts: what is saved, how often, where, and how restores are tested and reported. Citia's Condition Monitoring and Maintenance service includes backup and restore tests and delivers a backup register with updated configuration. The PLC/SCADA assessment guide explains why a backup needs its recovery context recorded alongside it.

Good backups also make other work safer. They are the first step in safe PLC troubleshooting , and they are the starting point for any plan to replace hardware that has reached the end of vendor support, covered in obsolete PLC and SCADA: repair or migrate .

## Terms to know

Name the file so a stranger can restore it: Put the asset tag, date and engineering software version in every backup file name or its register entry, and keep the matching installer next to it. The person who restores it may not be the person who saved it.

- Backup set: All files needed to rebuild one system: programs, projects, databases, configuration and licences.
- Restore test: Rebuilding a system from its backup on spare hardware to prove the copy works.
- Upload: Reading the program out of a controller into the engineering software.
- Firmware: The built-in software of a controller or module; its version must suit the program file.
- Engineering workstation: The computer with the software and licences used to program controllers and SCADA.
- Checksum: A short code calculated from a file that changes if the file changes.
- Backup register: A list of every backup with its version, date, source, storage and last restore test.

## Frequently asked questions

Q: What should be backed up besides the PLC program?

A: Besides the PLC program, back up the HMI and SCADA project, databases, gateway and converter configuration, network settings, firmware versions, licences, the engineering software installer and key documents such as the I/O list and topology.

Q: How often should a PLC be backed up?

A: A PLC should be backed up before and after every program or firmware change, and on a fixed routine agreed for the site. The routine catches changes that were made without a record.

Q: How do I know the program in the PLC matches my backup?

A: Compare them: upload the program from the controller and use the engineering software's compare function against the stored copy. Record the result and a checksum in the backup register, and investigate any difference nobody can explain.

Q: Where should PLC and SCADA backups be stored?

A: Store PLC and SCADA backups in at least two places away from the machines they protect, with one copy offline. Limit who can write to the store and keep the installers and licences with the files.

Q: Is a disk image of the SCADA server enough?

A: No, a disk image helps but is not enough on its own. It may not boot on different hardware, it can carry licence problems, and it does not include PLC programs or gateway settings, so keep project-level backups as well.

Q: Who is responsible for control system backups?

A: The site owner should name one person responsible for control system backups, even when contractors do the work. That person keeps the register, collects copies after every change and checks that restore tests happen.

## Sources and further reading

1. ISA/IEC 62443 Series of Standards, International Society of Automation (ISA) (https://www.isa.org/standards-and-publications/isa-standards/isa-iec-62443-series-of-standards)
2. NIST SP 800-82 Rev. 3: Guide to Operational Technology (OT) Security, National Institute of Standards and Technology (NIST), 2023-09 (https://csrc.nist.gov/pubs/sp/800/82/r3/final)
3. Primary Mitigations to Reduce Cyber Threats to Operational Technology, Cybersecurity and Infrastructure Security Agency (CISA), 2025-05-06 (https://www.cisa.gov/resources-tools/resources/primary-mitigations-reduce-cyber-threats-operational-technology)
4. Condition Monitoring & Maintenance, PT Citia Engineering Indonesia (https://citia-engineering.com/en/products/condition-monitoring-maintenance)
5. Petrokimia Gresik: ABB PLC repair, PT Citia Engineering Indonesia (https://citia-engineering.com/en/projects/petrokimia-gresik-abb-plc-repair)
6. Padalarang TAS lifecycle support, PT Citia Engineering Indonesia (https://citia-engineering.com/en/projects/padalarang-tas-lifecycle)
7. PLC/SCADA assessment: start with symptoms, topology and backups, PT Citia Engineering Indonesia (https://citia-engineering.com/en/knowledge/reliability-plc-scada)
8. Cover photo by NOIRLab/NSF/AURA/T. Slovinský, CC BY 4.0 (cropped and colour graded), Wikimedia Commons (https://commons.wikimedia.org/wiki/File:NOIRLab_HQ_Server_Racks_(6V6A0404-CC).jpg)

Not sure your backups would restore?: Tell siTia which controllers and SCADA you run, and a Citia engineer will follow up about a backup and restore check.

## Contact

- Company: PT Citia Engineering Indonesia
- siTia - Virtual Assistance: [WhatsApp +62 813-2206-507](https://wa.me/628132206507). siTia answers questions about our products, projects and enquiries on WhatsApp. Replies are automated, and a person from the Citia team follows up.
- Email: services@citiaengineering.com
- Phone / WhatsApp (siTia): +62 813-2206-507
- Location: Bandung, Indonesia

[Contact Citia](https://citia-engineering.com/en/contact.md)

## Structured data (JSON-LD)

```json
{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@type": "Organization",
      "@id": "https://citia-engineering.com/#organization",
      "name": "Citia Engineering Indonesia",
      "legalName": "PT Citia Engineering Indonesia",
      "alternateName": "Citia",
      "url": "https://citia-engineering.com",
      "logo": {
        "@type": "ImageObject",
        "url": "https://citia-engineering.com/media/citia-logo.png",
        "width": 950,
        "height": 328
      },
      "description": "Citia is an engineering and system integration company in Bandung, Indonesia. We connect field devices, PLC and SCADA, terminal software and enterprise systems, then install, test and maintain them.",
      "email": "services@citiaengineering.com",
      "telephone": "+62 813-2206-507",
      "address": {
        "@type": "PostalAddress",
        "addressLocality": "Bandung",
        "addressRegion": "Jawa Barat",
        "addressCountry": "ID"
      },
      "contactPoint": [
        {
          "@type": "ContactPoint",
          "contactType": "customer service",
          "email": "services@citiaengineering.com",
          "telephone": "+62 813-2206-507",
          "url": "https://citia-engineering.com/en/contact"
        },
        {
          "@type": "ContactPoint",
          "contactType": "customer support",
          "name": "siTia - Virtual Assistance",
          "telephone": "+62 813-2206-507",
          "url": "https://wa.me/628132206507",
          "areaServed": "ID",
          "availableLanguage": [
            "id",
            "en"
          ]
        }
      ],
      "areaServed": {
        "@type": "Country",
        "name": "Indonesia"
      },
      "knowsAbout": [
        "Terminal automation system",
        "Automatic tank gauging",
        "Tank management system",
        "SCADA",
        "Programmable logic controller",
        "Modbus",
        "Field instrumentation",
        "Weighbridge",
        "Pipeline pressure monitoring",
        "Industrial IoT"
      ],
      "brand": [
        {
          "@type": "Brand",
          "name": "INTEGRA"
        },
        {
          "@type": "Brand",
          "name": "CATALYST"
        }
      ],
      "sameAs": [
        "https://www.facebook.com/citiaengineering/",
        "https://www.instagram.com/citiaengineering/"
      ]
    },
    {
      "@type": "WebSite",
      "@id": "https://citia-engineering.com/#website",
      "url": "https://citia-engineering.com",
      "name": "Citia Engineering Indonesia",
      "inLanguage": [
        "en",
        "id"
      ],
      "publisher": {
        "@id": "https://citia-engineering.com/#organization"
      },
      "potentialAction": [
        {
          "@type": "SearchAction",
          "name": "Search Citia News",
          "target": {
            "@type": "EntryPoint",
            "urlTemplate": "https://citia-engineering.com/en/news?q={search_term_string}"
          },
          "query-input": "required name=search_term_string"
        },
        {
          "@type": "SearchAction",
          "name": "Cari di News Citia",
          "target": {
            "@type": "EntryPoint",
            "urlTemplate": "https://citia-engineering.com/id/news?q={search_term_string}"
          },
          "query-input": "required name=search_term_string"
        }
      ]
    },
    {
      "@type": "WebPage",
      "@id": "https://citia-engineering.com/en/knowledge/plc-scada-backup#webpage",
      "url": "https://citia-engineering.com/en/knowledge/plc-scada-backup",
      "name": "PLC and SCADA backups you can actually restore",
      "description": "PLC backup and restore: a backup only counts if it matches the running code, includes configs, licences and software versions, and has been test-restored.",
      "inLanguage": "en",
      "isPartOf": {
        "@id": "https://citia-engineering.com/#website"
      },
      "publisher": {
        "@id": "https://citia-engineering.com/#organization"
      },
      "about": {
        "@id": "https://citia-engineering.com/#organization"
      },
      "breadcrumb": {
        "@id": "https://citia-engineering.com/en/knowledge/plc-scada-backup#breadcrumb"
      },
      "dateModified": "2026-11-13",
      "mainEntity": {
        "@id": "https://citia-engineering.com/en/knowledge/plc-scada-backup#entity"
      }
    },
    {
      "@type": "BreadcrumbList",
      "@id": "https://citia-engineering.com/en/knowledge/plc-scada-backup#breadcrumb",
      "itemListElement": [
        {
          "@type": "ListItem",
          "position": 1,
          "name": "Citia",
          "item": "https://citia-engineering.com/en"
        },
        {
          "@type": "ListItem",
          "position": 2,
          "name": "Knowledge",
          "item": "https://citia-engineering.com/en/knowledge"
        },
        {
          "@type": "ListItem",
          "position": 3,
          "name": "PLC and SCADA backups you can actually restore",
          "item": "https://citia-engineering.com/en/knowledge/plc-scada-backup"
        }
      ]
    },
    {
      "@id": "https://citia-engineering.com/en/knowledge/plc-scada-backup#entity",
      "url": "https://citia-engineering.com/en/knowledge/plc-scada-backup",
      "mainEntityOfPage": {
        "@id": "https://citia-engineering.com/en/knowledge/plc-scada-backup#webpage"
      },
      "@type": "TechArticle",
      "headline": "PLC and SCADA backups you can actually restore",
      "description": "A backup counts only if it matches the running system, includes configs, licences and software versions, and has passed a restore test. Checklist and schedule.",
      "dateModified": "2026-11-13",
      "author": {
        "@id": "https://citia-engineering.com/#organization"
      },
      "publisher": {
        "@id": "https://citia-engineering.com/#organization"
      },
      "inLanguage": "en",
      "articleSection": "Control systems",
      "datePublished": "2026-11-13",
      "image": "https://citia-engineering.com/media/covers/plc-scada-backup.webp"
    },
    {
      "@type": "FAQPage",
      "@id": "https://citia-engineering.com/en/knowledge/plc-scada-backup#faq",
      "url": "https://citia-engineering.com/en/knowledge/plc-scada-backup",
      "inLanguage": "en",
      "isPartOf": {
        "@id": "https://citia-engineering.com/en/knowledge/plc-scada-backup#webpage"
      },
      "mainEntity": [
        {
          "@type": "Question",
          "name": "What should be backed up besides the PLC program?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Besides the PLC program, back up the HMI and SCADA project, databases, gateway and converter configuration, network settings, firmware versions, licences, the engineering software installer and key documents such as the I/O list and topology."
          }
        },
        {
          "@type": "Question",
          "name": "How often should a PLC be backed up?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "A PLC should be backed up before and after every program or firmware change, and on a fixed routine agreed for the site. The routine catches changes that were made without a record."
          }
        },
        {
          "@type": "Question",
          "name": "How do I know the program in the PLC matches my backup?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Compare them: upload the program from the controller and use the engineering software's compare function against the stored copy. Record the result and a checksum in the backup register, and investigate any difference nobody can explain."
          }
        },
        {
          "@type": "Question",
          "name": "Where should PLC and SCADA backups be stored?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Store PLC and SCADA backups in at least two places away from the machines they protect, with one copy offline. Limit who can write to the store and keep the installers and licences with the files."
          }
        },
        {
          "@type": "Question",
          "name": "Is a disk image of the SCADA server enough?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "No, a disk image helps but is not enough on its own. It may not boot on different hardware, it can carry licence problems, and it does not include PLC programs or gateway settings, so keep project-level backups as well."
          }
        },
        {
          "@type": "Question",
          "name": "Who is responsible for control system backups?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "The site owner should name one person responsible for control system backups, even when contractors do the work. That person keeps the register, collects copies after every change and checks that restore tests happen."
          }
        }
      ]
    },
    {
      "@type": "DefinedTermSet",
      "@id": "https://citia-engineering.com/en/knowledge/plc-scada-backup#glossary",
      "url": "https://citia-engineering.com/en/knowledge/plc-scada-backup",
      "inLanguage": "en",
      "isPartOf": {
        "@id": "https://citia-engineering.com/en/knowledge/plc-scada-backup#webpage"
      },
      "name": "Terms to know",
      "hasDefinedTerm": [
        {
          "@type": "DefinedTerm",
          "name": "Backup set",
          "description": "All files needed to rebuild one system: programs, projects, databases, configuration and licences.",
          "inDefinedTermSet": {
            "@id": "https://citia-engineering.com/en/knowledge/plc-scada-backup#glossary"
          }
        },
        {
          "@type": "DefinedTerm",
          "name": "Restore test",
          "description": "Rebuilding a system from its backup on spare hardware to prove the copy works.",
          "inDefinedTermSet": {
            "@id": "https://citia-engineering.com/en/knowledge/plc-scada-backup#glossary"
          }
        },
        {
          "@type": "DefinedTerm",
          "name": "Upload",
          "description": "Reading the program out of a controller into the engineering software.",
          "inDefinedTermSet": {
            "@id": "https://citia-engineering.com/en/knowledge/plc-scada-backup#glossary"
          }
        },
        {
          "@type": "DefinedTerm",
          "name": "Firmware",
          "description": "The built-in software of a controller or module; its version must suit the program file.",
          "inDefinedTermSet": {
            "@id": "https://citia-engineering.com/en/knowledge/plc-scada-backup#glossary"
          }
        },
        {
          "@type": "DefinedTerm",
          "name": "Engineering workstation",
          "description": "The computer with the software and licences used to program controllers and SCADA.",
          "inDefinedTermSet": {
            "@id": "https://citia-engineering.com/en/knowledge/plc-scada-backup#glossary"
          }
        },
        {
          "@type": "DefinedTerm",
          "name": "Checksum",
          "description": "A short code calculated from a file that changes if the file changes.",
          "inDefinedTermSet": {
            "@id": "https://citia-engineering.com/en/knowledge/plc-scada-backup#glossary"
          }
        },
        {
          "@type": "DefinedTerm",
          "name": "Backup register",
          "description": "A list of every backup with its version, date, source, storage and last restore test.",
          "inDefinedTermSet": {
            "@id": "https://citia-engineering.com/en/knowledge/plc-scada-backup#glossary"
          }
        }
      ]
    }
  ]
}
```
