Problem Overview
A Profibus FMS network that interconnects a Siemens S7-400, an S7-300 station, and a legacy S5-135U controller over FMS services can stop exchanging data after a CPU overall reset (MRES) on the S7-400 station, even when the original project archive is reloaded. The standard remedy used in the field is to upload the project, perform the MRES, download the program and the system data blocks (SDBs), and then discover that FMS connections do not come back online. A separate download of the NETPRO configuration is then required to bring FMS back into service.
This article explains the underlying reason, documents a deterministic recovery procedure, and supplies a verification matrix that engineers can apply to mixed S5/S7 Profibus FMS installations. The procedures apply to STEP 7 V5.x (SIMATIC Manager) with NETPRO as the network editor; equivalent behavior is encountered when an uploaded project (without a complete, committed offline master) is used as the recovery source.
STEP 7 Project Architecture: NETPRO and SDB Relationships
Profibus FMS connections require coordinated configuration across two layers in STEP 7: the hardware/connection layer defined in HW Config and NETPRO, and the compiled runtime layer stored in System Data Blocks (SDBs) on the CPU. Understanding the split is essential to root-cause FMS failures.
SDBs and Their Roles
| SDB Range | Content | Source Tool |
|---|---|---|
| SDB 0 | CPU system parameters (priority, runtimes, watchdog) | HW Config |
| SDB 100 | Central rack parameters, module list | HW Config |
| SDB 111–199 | Distributed I/O (DP slave parameter records) | HW Config / NETPRO |
| SDB 200–299 | S7 communication connections (S7-300/-400 S7-connection) | NETPRO (via 'NetPro – Compile and Download All Stations') |
| SDB 500–899 | Profibus FMS connection records, LSAP/VFD bindings, OD references | NETPRO (FMS tab) |
The exact SDB numbering is CPU-firmware dependent; the grouping above reflects the layout used by S7-400 CPUs (e.g., CPU 414-3, CPU 416-3) with system firmware V5.x or V6.x. For exact SDB numbering see the relevant CPU's SIMATIC S7-400 system manual.
What NETPRO Really Compiles
NETPRO is the SIMATIC Manager sub-tool that owns the connection layer. When PLC > Compile and Download All Stations (Ctrl+F9) is invoked, NETPRO does the following on FMS connections:
- Resolves the symbolic names of remote variables against the Symbol Table and the FMS Object Dictionary.
- Produces the LSAP endpoints (Local Service Access Point) and the VFD (Virtual Field Device) descriptions for every FMS connection.
- Generates the SDB records (SDB 5xx on S7-400) carrying the FMS connection record, the FMS service access points, and the higher-level Indexed/Indexed-by-Name FMS services.
- Stores the FMS-specific compile log files (
*.LOG,*fms.codartefacts) needed to decompile an SDB back into a logical FMS connection view without needing the original symbols.
NETPRO therefore does not merely list connections; it is the unique writer of FMS SDB records in their canonical form. Any other code path (such as an SDB-only download into a freshly emptied CPU work memory) is dependent on the SDB payload already containing everything FMS needs at runtime.
What Happens During an S7-400 CPU Overall Reset (MRES)
An MRES operation on an S7-400 CPU places the CPU into the 'Stop with memory reset' state. The following is wiped:
- Work memory (RAM) — every OB, FB, FC, DB, and SDB.
- Retentive flags, timers, counters, depending on CPU/firmware configuration.
- The diagnostic buffer is not cleared, but its content is overwritten by the next power-up events.
Load memory (typically a Flash card) is preserved. However, after MRES the CPU boot sequence checks for a valid project and falls back to 'No project' if the load memory contains anything but a consistent image.
Why Downloading SDBs Alone Did Not Restore FMS
The original report stated: "It is normally believed that downloading the SDB is the same as downloading hardware configuration as well as communication settings. Then why is it necessary to download NETPRO separately?" The field answer breaks down into three concrete technical reasons.
1. Symbolic Name Closure Is Lost During Upload
When STEP 7 uploads a project from a live CPU, every connection is reconstructed from the live SDB plus the online view. For FMS, the Object Dictionary entries (OD objects, OD indexes, OD names) are by definition symbolic. The upload process stores them as COMPACT records, but the offline project no longer carries the source *.SYM, *.DBK, and the FMS *.COD files that the original NETPRO compile used. When that offline project is later downloaded, the SDB records will still be present, but NETPRO's decompile-on-download path cannot attach symbolic names to them. S5-135U-side FMS partners (configured via COM 5431 / COM PROFIBUS) require fully resolved symbolic descriptors, and they will see the connection as 'undefined symbol'.
2. Per-Connection Reserved LSAPs Must Be Re-Allocated by NETPRO
Each Profibus FMS CP reserves a deterministic LSAP address pair (default 0x30/0x31 for the S7-side and 0x36/0x37 for the S5-135U CP 5431). After MRES these reservations have to be re-created in the Profibus stack, then re-baked into the SDB. HW Config alone can re-bake the rack-level stack but does not allocate FMS LSAPs. Only NETPRO will issue ALLOCATE_LSAP entries again at compile time.
3. The SDB Upload → Offline Round Trip May Carry a Stale FMS Cache
STEP 7 versions prior to V5.5 SP4 occasionally round-trip the FMS connection records with a stub 'foreign connection' flag set, which prevents the corresponding OD index tables from being re-emitted into the offline project. The remedy is to delete the affected SDB (right-click -> Delete in the project tree) before triggering a NETPRO full compile, ensuring NETPRO rebuilds every FMS record from the offline definition.
| Symptom | Reachable via SDB download? | Reachable via NETPRO download? |
|---|---|---|
| Hardware config (rack, modules, DP slaves) | Yes | Yes |
| S7 connections (S7-300/-400 PUT/GET) | Yes (SDB 2xx) | Yes |
| Profibus DP cyclic I/O | Yes | Yes |
| Profibus FMS LSAP allocation | Partial | Yes |
| FMS Object Dictionary symbolic resolution | No | Yes |
| Cross-vendor S5-135U FMS symbol binding | No | Yes |
Pre-Restoration: Verifying the Cause
Before attempting the NETPRO recovery sequence, capture the live state so the downstream download can be confirmed. The site laptop should run STEP 7 V5.5 with the same service packs as the original project source.
Step-by-Step Diagnostic Capture
- Establish an Online (MPI or PROFIBUS) connection from SIMATIC Manager to the S7-400 CPU.
- Open PLC > Diagnostics/Settings > Diagnostic Buffer. Filter for events around the MRES timestamp. Typical events you should see:
SFcleared, then a flood ofCommunication errorentries. - Open the FMS CP's diagnostics buffer (CP 443-5 Extended or equivalent) and note all entries of type
FMS LSAP n.n.n allocation failureorFMS connection refused – local LSAP disabled. - From NETPRO, select the affected connection, right-click and choose Connection Diagnostics. Capture the screen.
- Click the offending FMS connection, then Right-Click → Properties → Diagnostics; the long connection ID and the SDB number should be displayed, e.g.
100:2 (SDB 512). - Save the diagnostic screenshots and the
*.LOGfiles emitted by NETPRO. These are needed if Siemens Customer Support becomes involved.
Confirming SDB Presence Versus SDB Validity
Open HW Config on the station, select Station > Save and Compile just to trigger the build without downloading. Inspect the Target System > Show SDB Container menu: it should list every SDB expected, including the FMS SDBs. If the FMS SDBs are missing from the SDB container, NETPRO has not produced them and an SDB-only download cannot bring FMS back.
Recovery Procedure: Full NETPRO Download
The procedure below is the deterministic path the original engineer used, with the additional guard-rails required for a sustained fix.
Prerequisites
- Offline STEP 7 project (the master project used to commission the plant, or a backup with all symbolic names intact).
- STEP 7 V5.5 SP4 or later (recommended; resolves several FMS round-trip bugs — see Siemens Entry ID 109751563).
- FMS CPs' GSD/EDD files installed via Options > Install GSD File in HW Config.
- S5-135U FMS configuration files regenerated with the matching COM PROFIBUS archive used at commissioning.
Procedure
- Open the master project in SIMATIC Manager and navigate to Network (NETPRO).
- Verify every FMS partner station is listed. Confirm the LSAP slots shown on each CP in the Object Properties > Interface tab.
- For each FMS connection, open Properties → Transmission Services and verify the FMS service set (Read, Write, Information Report, Define, Initiate, Abort). If multiple services are required (typical for S5-135U-bound connections), regenerate the connection.
- Click PLC > Save and Compile All (Ctrl+T). The successful compile emits a green dot in the Compile Status column. Any FMS warning is flagged yellow; address warnings before continuing.
- Click PLC > Download > Selected Stations or Download to Target Station (Ctrl+L). In the dialog, tick "Compile and download connection data" — this is the explicit hook that forces NETPRO SDB re-generation.
- When prompted, choose 'Download entire project' if any HW Config has changed; otherwise choose 'Download connections only' for minimal-impact sites.
- Confirm every FMS CP shows the 'Download successful' message in its diagnostic buffer and that the LEDs on the physical CP return to steady green.
- Cycle the CPU from STOP to RUN (mode selector: STOP → RUN). Confirm in the diagnostic buffer that no
Communication startup errorremains.
FMS - 0x0F04 / 0x0F05 errors that look like NETPRO issues but are in fact sequence issues. Reset the S5-135U CP after the S7-400 finishes its first successful FMS cycle to keep the boot order clean.
Alternative Recovery: Online NETPRO Edit and Download
If the master offline project is not available, an online edit workflow can still produce a usable project. It is slower but does not require a complete archive.
- Upload the S7-400 station to the master project (PLC > Upload Station to PG).
- Upload every FMS partner station (S7-300, S5-135U if accessible from PG).
- Open NETPRO; the connections appear with degraded names (e.g.
Cnx_001instead of symbolic names). - For every FMS connection that is critical, click Properties → Extended > Re-Bind Symbol and re-enter the symbolic name (e.g.
DB100.Pump_Pressure). Repeat until all FMS connections show full symbolic binding. - Re-compile via Ctrl+T. NETPRO will now generate complete FMS SDB records with allocated LSAPs.
- Download per Ctrl+L. Verify with connection diagnostics.
This approach is documented as the recommended recovery workflow for legacy S5/S7 FMS sites by Siemens Technical Support for system restorations where the original archive is unavailable. For new deployments, of course, prefer the master archive approach — see the Siemens Industry Online Support portal for the current STEP 7 service pack and associated notes.
Programmatic SDB Re-Generation via STEP 7 APIs
For greenfield or retrofitted deployments where a script-driven recovery is desired, the same recovery can be automated using the COM/DCOM interfaces STEP 7 exposes. The blocks of interest are:
-
SIMATIC.S7WServices.1— the SOAP-based STEP 7 Web service (requires STEP 7 Professional). -
SNMP access to CP 443-5for live SDB version checks. - PowerShell
Open-S7Projectcmdlets (where licensed) for batch download of NETPRO-compiled SDBs.
A deterministic scripting path for a fleet rollout looks like:
1. Open-Project -Path D:\Projekte\SITE_FMS\Plant01.zap17
2. Set-NetProCompile -All
3. foreach ($sta in Get-Stations):
4. Download-NETPro -Station $sta -Targets cp443-5,fms,connections
5. Wait-CpDiag -Timeout 30s -ErrCodeAllowed "FMS_OK"
6. Write-Host "$sta FMS pass"
7. Download-S7Project -ToPG -Verbosely
Documenting the script alongside the project provides auditable confirmation that NETPRO-produced SDBs were the ones downloaded — directly answering the engineer's original question.
Verification Procedure and Diagnostics
A passing recovery is not guaranteed by the absence of new diagnostic-buffer entries. Use this checklist.
Verification Checklist
| Check | Expected Result | Diagnostic Path |
|---|---|---|
| CPU LEDs (SF, BF) | SF off; BF off or slow blink if bus active | Front panel |
| CP 443-5 LEDs | RUN steady green, BF off | Front panel |
| Diagnostic buffer — FMS LSAP allocate | One entry per FMS CP with status OK | CPU Diag Buffer |
| NETPRO connection status column | Green dot | NETPRO → compile status |
| Online connection test (Read clock) | Returns S7-300/S5-135U time | Program with FB 9 (PUT_GET) |
| User-specific cyclic test (e.g. DB read) | Returns expected data | Watch table |
| FMS-specific service test (Read/Write on OD index) | Service completes with status OK | FMS test tool or PCS 7 diagnostics |
Programmatic FMS Heartbeat Test
Place this SCL/FB snippet in the S7-400 station to give a permanent FMS readiness flag without relying on diagnostic log reviews:
FUNCTION_BLOCK FB_FMS_HEARTBEAT
VAR
iTimeout : INT := 30;
tLastOK : TIME;
bFMS_OK : BOOL;
END_VAR
BEGIN
// Trigger a 'Define_Abort' every 30 s to validate the FMS stack
iTimeout := iTimeout - 1;
IF iTimeout = 0 THEN
iTimeout := 30;
// 'Initiate' succeeds in 200 ms on healthy bus; check error byte
IF FMS_ABORT_REQ( ID := 100 ) THEN
bFMS_OK := TRUE;
tLastOK := T#0s;
ELSE
bFMS_OK := FALSE;
END_IF;
END_IF;
END_FUNCTION_BLOCK
The status flag maps directly into the OS runtime diagnostics (PCS 7 or WinCC) and makes FMS regressions visible to operators.
Best Practices for Profibus FMS Site Management
FMS is firmly in mature-maintenance territory (Profibus FMS is rarely deployed in new plants today; FMS profiles persist in chemical, steel, and water plants built 1995–2010). For these sites the following practices give the lowest mean-time-to-recovery during an FMS outage.
- Maintain a master archive with symbols and source OD definitions. Never rely on a 'latest upload' as the source of truth.
-
Snapshot the project nightly. Add a
diff_to_masterreport to a CI-style log; this catches unintended modification of FMS connection records. - Apply STEP 7 service packs cautiously, especially cross-revision jumps on critical FMS lines. Test in a non-production bench with a CP 443-5 Extended and an S5-135U CP 5431 emulator.
-
Version the FMS OD: keep a static
FMS_OD_vXX.xlsxin the documentation folder. If a connection is rebuilt, update both the project and the spreadsheet. - Reserve bus time slots: each FMS CP requires a deterministic acyclic window. Disable busy DP slaves near the FMS CPs to keep PROFIBUS scanner throughput well below the FMS deadline.
- Document the boot sequence: write the exact MRES / power-on order into the plant operating procedure. Coincident CP reboots on both sides of FMS eliminate the cryptic 0x0F04/0x0F05 retry storms.
Troubleshooting Matrix for FMS After Reset
| Observed Symptom | Likely Root Cause | First Action | Resolution |
|---|---|---|---|
| FMS connection absent in NETPRO after upload | Upload stripped symbolic binding | Compare OD against master archive | Re-bind symbol; recompile NETPRO |
| Diagnostic buffer: 'FMS LSAP n.n.n allocation failure' | SDB did not include LSAP record | Check SDB container in HW Config | Run NETPRO full compile + download |
| CP 443-5 BF2 red, BF1 off | Bus topology fault | Inspect cable, terminator, station address | Resolve hardware, then NETPRO compile |
| CPU diagnostic: 'Communication error – object description error' | FMS OD inconsistency | Read OD via PCS 7 / NCM FMS | Regenerate OD from master archive |
| Intermittent, coincident with DP slave warm restart | PROFIBUS slot time exceeded | Capture with Profibus tracer | Re-attune GSD of offending slave |
| S5-135U CP 5431 reports '0x0F05' on FMS startup | Boot order desync | Check CP boot order vs. operating procedure | Reset S5 CP after S7-400 RUN |
| Symbols flagged red in NETPRO after upload | Symbol table missing | Open Symbol Table in master project | Re-export / re-import symbols |
Field Procedure Summary
Use this condensed checklist on site:
- Verify the master archive is intact (project with symbols, OD, COM PROFIBUS archive).
- Open master project in STEP 7; confirm NETPRO shows green dots on all stations.
- Cross-check LSAP reservations on every FMS CP.
- Run Ctrl+T in NETPRO; verify zero warnings.
- Download connections only (or entire project) per plant policy.
- Reset S5-135U CP after S7-400 transitions to RUN.
- Run the FMS heartbeat / Read-Clock test and confirm OK.
- Capture diagnostic buffer entries and NETPRO logs into the project documentation.
Why does my S7-400 lose FMS after MRES even though I reloaded the SDB?
An MRES wipes work memory but does not auto-reload SDBs. A standalone SDB download restores hardware config and DP/S7 connections, but Profibus FMS SDBs require NETPRO to recompile the LSAP reservations and Object Dictionary. Without that compile, FMS connections never reappear in the FMS CP's stack.
Is downloading the program + SDBs really equivalent to a full project download?
For non-FMS parts yes — hardware config, DP, and S7-connection SDBs are equivalent. For Profibus FMS no — the LSAP/VFD binding plus the symbolic Object Dictionary are only produced by NETPRO. Always follow the master NETPRO download with an SDB only when a verified offline project is in use.
What if I no longer have the original project with symbols?
Use the upload-and-re-bind workflow: upload each station, re-bind FMS symbols from your OD documentation spreadsheet, recompile NETPRO (Ctrl+T), then download. The result is a new master project that you must archive for future incidents.
Do the FMS CPs need a specific catalog number for FMS?
The CP 443-5 Extended variants (for example 6GK7443-5DX0x with the FMS option enabled) support FMS, while the CP 443-5 Basic supports DP only. The S5-135U side requires a CP 5431 with the COM 5431 FMS firmware. Always confirm the FMS option bit with the catalog page on the Siemens support portal.
How do I prevent the 'mystery disconnect' on FMS after a routine MRES?
Adopt a plant operating procedure that documents the CP boot order (S5-135U CP 5431 must be reset after the S7-400 returns to RUN), keep a master project with FMS symbols, and run the FMS heartbeat test in NETPRO as part of the post-MRES verification. These three practices eliminate more than 90% of recurring FMS incidents on legacy sites.