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:
- The CFC chart topology (chart count, instance block list, run sequence order).
- The compiled code (CRC) stored on the PC against the CRC in the FM 458's online-change EEPROM.
- 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.
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:
- Out-of-date archive. The compiled project on the engineering PC is older than the binary in the FM 458 EEPROM.
- Multi-editor online work. Multiple engineers were connected to the same FM 458 simultaneously and inserted/deleted blocks online.
- 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.
- 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:
- Open the chart container of the S7 program in D7-SYS.
- Right-click the chart folder and choose Sort alphabetically.
- 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:
- Open the chart referenced by the error.
- 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.
- 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
- Connect online and select Test Mode (the only mode that succeeds when project and module disagree).
- 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.
- Save the recovered project immediately under a new archive name. This becomes your best-known reference.
3. Decode and reconcile the error log entries
- Sort the chart folder alphabetically and locate each Chart N cited in the log.
- Open the chart and use the run-sequence view to map Block M to its instance block.
- Inspect Connector K using the input/output rule above. Note whether the connector is currently connected, dangling, or shorted to a literal.
- Apply the manual correction (re-insert the missing block, repair the connection, restore the original parameter value).
4. Recompile and download the corrected binary
- From D7-SYS, choose Charts → Compile with the All charts scope. This regenerates the flat binary that the FM 458 expects.
- 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.
- 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.
- Copy
IBS501.EXEand its parameter file onto a Windows/DOS machine with an MPI/Profibus CP. - 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).
- 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.
- Use this dump to rebuild the missing CFC project offline.
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:
- Stop the plant section controlled by the FM 458.
- Open the best-known archive, recompile, and select PLC → Download with the option Delete all online changes enabled.
- 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
- Lock the project. Enable D7-SYS project check-out / check-in so only one engineer can edit at a time.
- 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.
- 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.
- 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.
- 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.