Resolving FM458 Differing Software Error During Online Update

David Krause12 min read
PLC HardwareSiemensTroubleshooting
Licensed PE Working through this on a live machine? A Maine-licensed engineer can take it from here — included with IMD hardware, by the hour for everything else. Book an engineer

Overview

The FM 458-1 DP application module is a high-performance closed-loop controller that plugs into an S7-400 rack and is configured/programmed with SIMATIC D7-SYS (formerly D7-ES) using Continuous Function Chart (CFC) logic. The module is typically deployed in redundant S7-400H architectures with two CPU 417-4H controllers and two FM 458 modules.

When a maintenance engineer connects the engineering station to a running FM 458 and pushes Update, the system frequently returns a dialog titled "Differing Software — Configuration and module program differ (Unknown Online Change)". The error is the FM 458's way of telling the engineer that the compiled program on the PC no longer matches what is in the module's online-change EEPROM because somebody else (often a colleague with another laptop) inserted, deleted, or rewired CFC blocks online.

This article explains how to decode the chart/block/connector references that appear in the resulting error log, how to bring the offline project back into sync with the FM 458, and how to recover when the latest archived project is unavailable.

Affected Hardware and Software

Item Catalog Number / Designation Notes
FM 458-1 DP basic module 6DD1607-0AA2 Single-width, for S7-400
FM 458-1 DP application module 6DD1607-0CA2 / -0CB2 / -0CC2 Carries the user program
CPU 417-4H 6ES7417-4HT14-0AB0 Used in H-system redundant pair
Engineering software SIMATIC D7-SYS V8.x (D7-ES legacy) CFC + SCL, target FM 458
Legacy DOS tool IBS501 Not officially released for FM 458 but widely used

Refer to the Siemens Getting Started with FM 458-1 DP manual for the basic download flow (online vs. offline into the memory module).

Problem Details: The Differing Software Dialog

When you press Online → Update on an FM 458 whose compiled binary differs from the offline project, the loader compares:

  1. The CFC chart topology (chart count, instance block list, run sequence order).
  2. The compiled code (CRC) stored on the PC against the CRC in the FM 458's online-change EEPROM.
  3. The hardware configuration (signal assignment, sampling times, task configuration).

If any of these checks fail, the dialog "Differing Software — Configuration and module program differ (Unknown Online Change)" appears with two options:

  • Test Mode — lets you observe signals and force values without modifying the program. Useful for diagnosis only.
  • Update — attempts to merge offline and online changes. If the merge fails, the loader writes a log containing entries such as Chart 5, Block 23, Connector 4 for every conflict.

The Update step will fail outright when the engineering station's project is older than the in-module program. This is the situation that produces the cryptic chart/block/connector references described in the original case.

Why the project drifts: The compiled CFC binary is downloaded to the FM 458 as a flat image. Online changes (insertions, deletions, connection edits) are persisted into the module's onboard EEPROM but do not alter the original compiled image. If another station performs an online change while you keep editing offline, the two diverge permanently.

Root Cause Analysis

The mechanism behind the "Unknown Online Change" status is documented in the SIMATIC S7-1200 online/offline synchronization guide and applies equally to the FM 458 family:

"The online CPU includes program blocks that do not exist in the project. Data block tags or block attributes differ between the offline project and online CPU." — Synchronizing the online CPU and offline project

Translated to the FM 458 / CFC context, the typical root causes are:

  1. Out-of-date archive. The compiled project on the engineering PC is older than the binary in the FM 458 EEPROM.
  2. Multi-editor online work. Multiple engineers were connected to the same FM 458 simultaneously and inserted/deleted blocks online.
  3. Run-sequence renumbering. Block numbers in CFC are assigned by run-sequence order, not visual position. Any online insertion shifts every subsequent block number by +1.
  4. Hardware configuration drift. The signal/channel assignment or sampling time was changed online and not exported back to the offline project.

Decoding Chart / Block / Connector Numbers

The error log produced by the failed Update uses positional notation — for example, Chart 5 / Block 23 / Connector 4. Each position must be mapped back to the CFC source.

Chart numbering

Charts are numbered in the order they appear in the Chart folder after sorting alphabetically (case-insensitive). The first chart is index 0, the next is 1, and so on. To find chart "5" quickly:

  1. Open the chart container of the S7 program in D7-SYS.
  2. Right-click the chart folder and choose Sort alphabetically.
  3. Count down to index 5 — that is the chart named in the error.

Block numbering inside a chart

CFC assigns instance-block IDs in run-sequence order, beginning at 0. Blocks that are not placed in any runtime group, or that are disabled, still count. Two practical consequences:

  • Online insertions made by a second engineer are always appended at the end of the run sequence, even if they were visually inserted in the middle of the chart.
  • Online deletions leave gaps. The numbering does not shift down; a missing block number usually means the block was deleted online.

If the chart contains blocks distributed across multiple runtime groups/tasks, expect the numbering to interleave task by task in the order D7-SYS enumerates them. To locate block "23" reliably:

  1. Open the chart referenced by the error.
  2. Use Edit → Find with the search target Block Index = 23, or activate the chart inspector view that exposes the run-sequence index of each block.
  3. Cross-check the block type against the error message text — the FB/FC catalog number (e.g. CTRL_PID, ADD_R, MOT_SPEED) is often quoted next to the index.

Connector numbering

Connectors are numbered first by input pins (left side), then output pins (right side), starting at 0 on each side. A block with four inputs and two outputs therefore exposes connectors 0..3 (inputs) followed by 4..5 (outputs). When the error log cites Connector 4 on a typical PID block, it usually points to the output (e.g. manipulated variable).

Element Numbering rule Starting index
Chart folder Alphabetical sort order 0
Block inside chart Run-sequence order (insertion order) 0
Connector on a block Inputs first (top-to-bottom), then outputs 0

Step-by-Step Resolution

Follow this sequence when the Update fails and the log contains chart/block/connector references that you cannot match against the offline project.

1. Confirm the engineering software version

Open D7-SYS on the engineering PC and compare its version (Help → About) with the project that was last downloaded. D7-SYS releases are not source-compatible across major versions, and mixing them is a primary cause of "Differing Software" events.

2. Read the current binary back from the FM 458

  1. Connect online and select Test Mode (the only mode that succeeds when project and module disagree).
  2. Use PLC → Download to PG to retrieve the running program into the project. This step pulls the live CFC configuration, including online changes, into the offline project.
  3. Save the recovered project immediately under a new archive name. This becomes your best-known reference.

3. Decode and reconcile the error log entries

  1. Sort the chart folder alphabetically and locate each Chart N cited in the log.
  2. Open the chart and use the run-sequence view to map Block M to its instance block.
  3. Inspect Connector K using the input/output rule above. Note whether the connector is currently connected, dangling, or shorted to a literal.
  4. Apply the manual correction (re-insert the missing block, repair the connection, restore the original parameter value).

4. Recompile and download the corrected binary

  1. From D7-SYS, choose Charts → Compile with the All charts scope. This regenerates the flat binary that the FM 458 expects.
  2. Connect to the FM 458 and select Update. The "Differing Software" dialog should now be replaced by a clean download status because the new compile CRC matches the EEPROM state.
  3. Confirm successful download with the green status bar; the FM 458 will perform a warm restart automatically.

5. Update the central archive

Once the download succeeds, export the project to the central archive under a new revision label. This prevents recurrence if another engineer goes online later.

Recovery Without the Latest Archive

If the original archive is missing and you cannot reconstruct the missing online changes, apply the following fallback procedure.

Option A — Read the configuration with legacy tool IBS501

The DOS-based utility IBS501 was the original commissioning tool for the FM/FM 458 family. It is not officially released for the FM 458-1 DP, but in practice it still connects to the module and dumps its running configuration. Used here, it lets you extract chart and block tables directly from the FM 458 without a CFC project on the PC.

  1. Copy IBS501.EXE and its parameter file onto a Windows/DOS machine with an MPI/Profibus CP.
  2. Establish an MPI link at 187.5 kbit/s (default FM 458 MPI address is 2; CPU is 2 — disconnect the CPU side to avoid contention).
  3. Start IBS501 and choose Read configuration. The tool will write a plain-text dump of every chart, every block, and every connector value currently in the EEPROM.
  4. Use this dump to rebuild the missing CFC project offline.
Risk: IBS501 was designed for the legacy FM 458 (pre-DP) firmware and may mis-decode proprietary blocks introduced in D7-SYS V6+. Treat its output as a hint set, not as an authoritative source. Always cross-check critical control loops against the I/O signals observed in Test Mode before going live.

Option B — Compare against the CPU 417-4H project

If the redundant CPU pair still holds a clean project in STEP 7, the FM 458 chart assignments are usually stored as comments or as DBs that the CPU references. Open the S7 project, search for the FM 458 DBs (default names start with FM_DB), and reconstruct the chart assignments from the DB structure. This is slow but reliable when no FM 458 archive exists.

Option C — Force a full offline download

If process interruption is acceptable, the fastest recovery is a complete re-download:

  1. Stop the plant section controlled by the FM 458.
  2. Open the best-known archive, recompile, and select PLC → Download with the option Delete all online changes enabled.
  3. The FM 458 will cold-start with the freshly compiled binary and the EEPROM online-change log will be wiped.

Working Code: Identifying a Block by Run-Sequence Index

For plants with many blocks per chart, the following SCL snippet reads the CFC chart dump that D7-SYS produces when "Compile → Generate diagnostic DB" is enabled. Use it to print a sorted list of blocks and their run-sequence indices.

// Print chart/block indices from a CFC diagnostic DB
FUNCTION_BLOCK FB_DiagPrint
VAR
    i : INT;
    n : INT;
    s : STRING[80];
END_VAR
BEGIN
    n := DBI_GET_INT(DiagDBNumber := 1000, Offset := 0);
    FOR i := 0 TO n - 1 DO
        s := CONCAT_STR(
                STR := DBI_GET_STRING(DiagDBNumber := 1000,
                                      Offset := 4 + i * 64),
                STR2 := CONCAT_STR(STR1 := ' idx=', STR2 := INT_TO_STRING(i)));
        LOG_STRING(s);
    END_FOR;
END_FUNCTION_BLOCK

Hook the FB into a slow cyclic task (e.g. 1 s) and call LOG_STRING via the project logging interface. The output gives one line per block in run-sequence order, which is the same order D7-SYS uses when emitting the error log.

Verification Checklist

After a successful Update, run the following checks before returning the system to production:

Check Expected result How to verify
CRC of compiled binary Matches CRC stored in FM 458 D7-SYS: Target system → Module information
Chart count Equal offline and online Compare with PLC → Compare
Block count per chart Equal offline and online D7-SYS: Charts → Statistics
Online change log Empty FM 458 web diagnostics page → "Online changes: 0"
Test-mode signal mirror All critical I/O stable Force-read PV/SP for 5 minutes
CPU 417-4H redundancy Both masters healthy, no FM-side errors H-system diagnostics buffer

Preventive Best Practices

  1. Lock the project. Enable D7-SYS project check-out / check-in so only one engineer can edit at a time.
  2. Disable parallel online sessions. Make sure no second laptop is left running D7-SYS in Test Mode against the same FM 458 — it can silently accept online insertions.
  3. Archive after every successful download. A 30-second ZIP of the compiled project is the difference between a five-minute fix and a full-day recovery.
  4. Centralize MPI/Profibus addresses. Default FM 458 MPI address is 2; the CPU 417-4H in H-mode also uses 2. Disconnect the CPU link cable when commissioning via IBS501 to avoid bus collisions.
  5. Document the chart/block numbering convention in the project header so anyone reading the error log can map positional notation back to engineering symbols without reverse-engineering the run sequence.

Troubleshooting Matrix

Symptom Likely cause Action
"Differing Software" at every Update Project binary older than EEPROM Use Download to PG first, then re-Update
Update fails on chart referenced as "N/A" Chart deleted online Restore from archive; recompile; full download
Connector number exceeds block's pin count Block type changed online Open chart, replace block with same FB/FC type
IBS501 cannot establish MPI link CPU 417-4H occupies MPI address 2 Disconnect CPU cable; retry with FM 458 only
Online change log never empties Compile target differs from download target Recompile with All charts; re-download
CPU 417-4H goes into STOP after FM 458 Update OB70/OB72 not loaded for FM 458 I/O faults Add error OBs to S7 program; re-download CPU

FAQ

What does the FM 458 error "Configuration and module program differ (Unknown Online Change)" actually mean?

It means the compiled binary on the engineering PC does not match the binary stored in the FM 458's online-change EEPROM. The most common cause is that another engineer performed online insertions or deletions on the FM 458 without exporting the result back to the offline project.

How are chart numbers assigned in the FM 458 CFC error log?

Charts are numbered in alphabetical order of the chart folder, starting at 0. To locate "Chart 5", sort the chart folder alphabetically and count down five entries (index 5).

How can I identify which CFC block corresponds to "Block N" in the error log?

CFC numbers blocks by run-sequence order, beginning at 0. Open the chart, activate the run-sequence view, and count down to index N. Online insertions are always appended last, even when visually inserted in the middle of the chart.

What is the legacy IBS501 tool and is it safe to use with the FM 458-1 DP?

IBS501 is a DOS commissioning utility for the older FM 458. It is not officially released for the FM 458-1 DP, but in practice it still reads the running configuration via MPI. Use it only as a hint set to reconstruct a missing project — cross-check critical loops against Test Mode signals before relying on it.

Can I recover without the latest archived CFC project?

Yes. Connect in Test Mode and use Download to PG to pull the live configuration back into the offline project, or use the IBS501 tool to read the FM 458 configuration directly. If neither is feasible, perform a full offline download with Delete all online changes after stopping the controlled process.

Back to blog