Book a consultation

octoplant Version Control and Change Management: The Approved-Version Model

octoplant Smart Compare: What a Program Compare Tells You, and What It Cannot

octoplant Smart Compare explained: version against version, stored against live, graph, table and text views, and using compare at FAT, SAT and handover.

Vladimir Romanov


octoplant Smart Compare is the comparison engine in AMDT’s version control. It answers one question precisely: what is different? AMDT says Smart Compare “identifies the exact differences between versions and device states” (AMDT, change management and version control), and that a user can “see exactly what changed between versions or between the stored version and the live device state” (AMDT, About octoplant).

That sounds simple. It is also the step that separates a pile of backups from evidence. This page covers the two kinds of compare, the three views AMDT describes, what a compare cannot tell you, and how to use it at acceptance tests and after integrator work. It sits under octoplant version control and change management.

Two directions: version against version, stored against live

The two directions of an octoplant Smart Compare On the left, version 12 approved in March and version 13 approved today are compared with each other: version against version. Version 13 is also compared with the running device, whose program was uploaded by a job: stored against live. Both comparisons feed a Smart Compare result shown as a graph, table or text view. A note at the bottom says a compare answers what differs, while whether the difference is right remains a human decision. Two comparisons, one result format Version 12 approved in March Version 13 approved today version vs version Running device uploaded by a job stored vs live Smart Compare result shown as a graph, table or text view A compare answers what differs. Whether the difference is right is still a human decision.
Version against version explains how the reference evolved. Stored against live tells you whether the plant floor still matches it, and that is the compare most plants have never been able to run.

Version against version compares two stored versions: what changed between last month’s approved program and today’s. It is the compare an approver uses before releasing a new reference, and the one an engineer uses when a fault started “sometime after the March changes.”

Stored against live compares the approved version with what is actually running, uploaded from the device. It is the compare that finds online edits, a contractor’s unrecorded fix or an unauthorized change. Run on a schedule against the approved version, it becomes change detection.

An illustrative scenario. A filler starts rejecting bottles for underfill on Thursday. The version history shows no approved change since February. A stored-against-live compare on the filler controller shows two differences: a fill-time parameter and a disabled level-sensor check, both edited online. Without the compare, the team would troubleshoot valves and sensors for a shift. With it, the question becomes who made the edit, why, and whether to reverse it, and that conversation takes ten minutes.

Graph, table and text: the octoplant Smart Compare views

AMDT says users can “compare versions graphically and in tabular form” and get “change detection and analysis exactly how you need it: in graph, table, or text form” (octoplant.com). AMDT’s public pages do not describe each view in detail, so the following is how such views are generally used, not a specification:

  • Graphical view. Suits ladder logic and function block diagrams, where an engineer reads the logic visually and needs to see which rung or block changed.
  • Table view. Suits parameters, tag values, drive settings and configuration lists, where the question is “which of 400 values changed?”
  • Text view. Suits structured text, scripts and configuration files from network devices or PCs, where a line-by-line difference is the natural form.

Which view you get for a given device depends on AMDT’s support for that device and editor version. A deep, element-level compare for one controller family and a file-level “these bytes differ” result for another are very different tools. Ask for a demonstration on your own devices, and check the supported devices overview.

What a compare tells you, and what it cannot

Close-up of a monitor showing nested lines of source code in a dark editor theme
A compare shows exactly which lines changed. Whether the change was right for the process is a question only an engineer who knows the machine can answer.

It tells you:

  • Which logic elements, blocks, parameters or files differ
  • Whether the running device matches the approved version
  • When, through the version history, a difference first appeared

It cannot tell you:

  • Intent. A changed timer preset looks the same whether it was a careful fix or a mistake.
  • Semantics. A compare sees a changed contact. It does not know that the contact bypasses a guard interlock. Reading the consequence needs an engineer who knows the machine.
  • Process effect. Whether the change improves throughput or will cause scrap next week.
  • Who, on its own. Attribution comes from the version history and the audit trail, and for an online edit the device itself may not record who made it.

Noise matters too. Some engineering tools change metadata, timestamps or compile artefacts on every save, and some live values drift during normal operation. A compare that flags these as differences trains people to ignore it. Ask how octoplant filters them for your devices.

Using octoplant Smart Compare at FAT, SAT and after integrator work

Acceptance tests are where undocumented changes are born. The program passes the factory acceptance test, ships, and is then edited during installation, start-up and the first weeks of production. Our guide to the factory acceptance test for plant controls covers the test itself; compare is how the program state is held still across it.

  1. Capture at FAT. Check in the program that passed as a named version.
  2. Compare at SAT. Compare that version with what is installed. Every difference should map to a punch-list item or a documented field change.
  3. Compare at handover. The delivered program should match the documented, approved version. “As-left equals as-documented” becomes a checkable condition.
  4. Compare after warranty work. When the integrator or OEM returns, compare before and after.

This is the kind of discipline a commissioning support engagement should enforce, whichever tool provides the compare.

Compare around upgrades and migrations

Firmware updates, engineering software upgrades and platform migrations are where compare earns its keep a second time. Opening a project in a newer editor version often converts it, and the converted file can differ from the original in ways nobody intended to change.

  1. Check in the pre-upgrade version as a named version before anyone touches it.
  2. Check in the converted project as a separate version, before any functional edits.
  3. Compare the two. Every difference should be explainable as conversion. Anything else is a change that slipped in and needs an owner.
  4. Only then make functional changes, each in its own checked-in version.

This is the practical form of a recommendation in NIST’s OT security guide: where automated configuration management tools are used, processes should be in place to validate configurations before deployment (NIST SP 800-82 Rev. 3, section 6.2.4.2).

Keeping conversion and functional change in separate versions means that when a line misbehaves after the upgrade, the team can tell in minutes whether the cause is the new firmware, the conversion or the edit, instead of reopening the whole project to find out.

Compare scenarios at a glance

ScenarioCompare typeWhat you are looking forWho reads the result
Approving a new versionVersion vs versionOnly the intended changes are presentApprover
Line fault after a recent changeVersion vs versionWhich change preceded the faultControls engineer
Scheduled check of the plant floorStored vs liveDrift from the approved versionControls lead, OT security
Integrator handoverStored vs liveDelivered program matches documentationProject engineer
FAT to SATVersion vs versionField changes, each with a reasonProject engineer, QA
Suspected unauthorized changeStored vs liveExact scope of the changeOT security, controls lead
Before a disaster recovery restoreVersion vs versionThat the restore target is the right oneMaintenance lead

The last row links to disaster recovery: restoring the wrong known-good version is a real risk when several look alike.

Where it gets hard

  • Coverage depth varies. The compare is only as detailed as AMDT’s support for each device and editor version, and the official matrix sits behind the myAMDT login.
  • Large projects. Comparing big projects takes time; AMDT has worked on compare speed for TIA Portal in past releases, so confirm current performance on your largest project.
  • Reading is a skill. A compare across a large program can return hundreds of differences after a firmware or editor upgrade. Someone has to separate the meaningful from the mechanical.
  • No judgement included. A clean compare proves the program matches the reference. It does not prove the reference was right.

Back to octoplant version control and change management, the AMDT hub, or across to check-in and check-out.

Frequently asked questions

What does octoplant Smart Compare do?

Smart Compare shows the differences between two versions of a device's program or configuration, or between a stored version and what is running in the live device. AMDT says it identifies the exact differences between versions and device states, and that results can be shown in graph, table or text form. It is the step that turns a backup into evidence of what changed.

Can octoplant compare a PLC program against what is running in the controller?

Yes. AMDT describes comparing either two stored versions or the stored version against the live device state. In practice the live side is obtained by uploading from the device, usually in a scheduled job. How deep the compare goes for a given controller, robot or HMI depends on AMDT's support for that device and engineering software version.

Does a compare tell you whether a PLC change is safe?

No. A compare shows what is different, not whether the difference is correct, intended or safe. It cannot judge the intent of an edit or its effect on the process. That judgement belongs to a qualified engineer, which is why compare results should feed an approval step rather than replace it.

Should we run a program compare after a factory acceptance test?

Yes. Capturing the program at FAT and comparing it with the version installed at site acceptance shows every change made between the two, which is when undocumented edits tend to appear. Repeating the compare at handover confirms the delivered program matches what was accepted and documented.

Is Smart Compare the same as change detection in octoplant?

They are related but not the same. Smart Compare is the comparison itself, which a person can run on demand. Change detection is the scheduled process that uploads from devices, runs the comparison against the approved version automatically and raises an alert when they differ.

References and further reading

  1. OT Change Management & Version Control · AMDTSmart Compare, drift detection and approval workflows.
  2. About Octoplant · AMDTThe check-out, edit, check-in cycle and scheduled compare jobs, in AMDT's words.
  3. Production Resilience Against Disruptions · AMDT (octoplant.com)Asset types covered, the 160-vendor claim, and the graph, table and text compare views.
  4. SP 800-82 Rev. 3, Guide to Operational Technology (OT) Security · NISTSection 6.2.4.2 covers configuration change control; 6.2.4.3 covers backups.

← Version Control

Have a project that needs technical ownership?

Send us the situation. If it is not something we should take on, we will say so.