1. Problem Statement
An S7-300 MMC (Micro Memory Card) contains the entire project state of a CPU 31x, including the user program, system data (HW Config), and—for CPUs with FW ≥ V2.0—firmware updates. When the original CPU is missing, damaged, or unavailable, engineers are frequently asked to extract the project from a standalone MMC using only a different S7-300 CPU from stock, a Field PG, or a third-party prommer.
This article documents the engineering-proven procedure to:
- Read MMC contents without the matching CPU
- Recover the HW Config (station configuration, bus parameters, module parameters)
- Validate that the recovered project will download into a substitute CPU
- Clone a working MMC for backup or migration
2. S7-300 MMC Card Fundamentals
The MMC is a serial NAND flash card (not an SD card in older form factors) that plugs into the slot on the front of every CPU 31x. Siemens MMC catalog numbers include 6ES7 953-8LFxx-0AA0 (64 KB) through 6ES7 953-8LMxx-0AA0 (8 MB). The card is a passive storage medium: the CPU's loader firmware reads it during startup and writes to it during project download/online edits.
| Catalog Number | Capacity | Usable on CPUs (examples) |
|---|---|---|
| 6ES7 953-8LF20-0AA0 | 64 KB | CPU 312, 314 |
| 6ES7 953-8LG11-0AA0 | 128 KB | CPU 312, 314, 315-2 DP |
| 6ES7 953-8LJ11-0AA0 | 512 KB | CPU 315-2 DP/PN, 317-2 |
| 6ES7 953-8LL31-0AA0 | 2 MB | CPU 317-2 DP/PN, 319-3 PN/DP |
| 6ES7 953-8LM20-0AA0 | 4 MB | CPU 319-3 PN/DP |
The card is divided into three logical partitions visible only through the Siemens loader:
- System data partition – HW Config, CPU parameters, bus parameters for MPI/DP/PN interfaces, module parameter records
- User blocks partition – OB, FB, FC, DB, SFB, SFC, SDB containers (incl. SDB 0, SDB 1000–1099 for PG/PC assignment)
- Optional firmware partition – present on CPU 31x with FW ≥ V2.0 when FW updates were loaded to flash
3. Prerequisites
Before attempting MMC recovery, verify the following items are available:
| Item | Minimum Requirement | Notes |
|---|---|---|
| Programming device | SIMATIC Field PG M2/M3/M4/M5 with STEP 7 V5.4+ or TIA Portal V13+ | Internal MMC prommer built into the Field PG |
| STEP 7 version | V5.4 SP5 or higher (for legacy 300 projects); TIA V13+ for newer projects | Match version to original project |
| External prommer (optional) | Siemens PG 720/740/760 prommer or third-party MMC reader with STEP 7 prommer drivers | Third-party readers require Siemens MMC prommer drivers; not all consumer SD card readers work |
| Substitute CPU | Same family (e.g., CPU 315-2 DP) with FW version ≥ original if possible | Same MLFB family required for HW Config compatibility |
| MMC of equal or greater size | Same or larger capacity than source MMC | Smaller capacity MMC will reject the image |
| Target project archive (if any) | *.s7p, *.zip with original HW Config | Speeds up HW Config recreation if MMC image is incomplete |
4. Reading the MMC with a Field PG Internal Prommer
The Field PG family (M2, M3, M4, M5) ships with a built-in MMC/SD prommer slot on the right side of the chassis, accessible after opening the protective cover. STEP 7 V5.x and TIA Portal both detect the slot as a standard S7 prommer and expose the contents through the file system browser.
4.1 Procedure
- Power off the Field PG.
- Insert the source MMC into the prommer slot. The label faces up, contacts face down.
- Power on the Field PG and launch STEP 7 Manager (or TIA Portal).
- From the menu select PLC → Memory Card File Browser (STEP 7 V5.x) or Online → Card Reader/USB Prommer (TIA Portal).
- The browser shows two folders:
\S7_JOBand\SIMATIC. The user blocks and HW Config are stored under\SIMATIC\S7. - Right-click the project root and select Upload to PG. STEP 7 will reconstruct a project from the SDBs and blocks.
4.2 Expected Result
The recovered project will contain:
-
S7 Programfolder with all blocks - Source code comments (if symbol export was enabled)
- System data blocks (SDB) covering CPU parameters, MPI/DP/PN interface configuration, and module parameter records
5. Reading the MMC with an External Prommer
When no Field PG is available, a standalone MMC prommer (e.g., Siemens 6ES7 792-0AA00-0XA0 PCMCIA adapter, or the discontinued Siemens Prommer for S7 MMC) can be used. Third-party prommer vendors that support S7 MMC include:
- Softing S7/S5 Prommer
- IBH Softec S7-SoftPLC reader
- Helmholz S7-MMC USB Prommer (part number 700-972-0AA01)
5.1 Procedure
- Connect the prommer to the PC via USB or parallel port (driver installation per vendor manual).
- Launch STEP 7 and open PLC → Memory Card File Browser.
- Select the external prommer as the device.
- Browse to
\SIMATIC\S7and select the project root. - Choose Upload Station to PG to perform a full station upload, or Upload Blocks Only for a partial recovery.
5.2 Binary Image Capture
For forensic recovery when STEP 7 cannot parse the card (corrupted SDB, mismatched FW), capture the raw binary image:
- Use a vendor utility (e.g., Helmholz PrommerTool) to read the entire MMC to a
.binfile. - Open the image in a hex editor and look for the SDB signatures:
0A 00 70 00at the start of the system data partition. - Decode the SDBs manually using the SDB layout in the STEP 7 Online Help (Help → S7 Reference Help → System Data Blocks).
6. HW Config Recovery Procedure
Recovering the station configuration is the most failure-prone step. The forum discussion confirms that the system data blocks must accompany the user blocks for the substitute CPU to accept the download.
6.1 When Original HW Config Is Available
- Open the original STEP 7 project (offline archive).
- Open HW Config and verify the station matches the source CPU's MLFB.
- If the substitute CPU has a different MLFB (e.g., 6ES7 315-2EH14 instead of 6ES7 315-2AH14), right-click the CPU and select Replace Object → choose the new MLFB.
- Compile and save (Station → Save and Compile).
- Download only the HW Config to the substitute CPU: select the CPU in HW Config → PLC → Download to Target System.
6.2 When HW Config Is Not Available
Reconstruct the station by inspecting the SDBs extracted from the MMC:
- Open STEP 7 → PLC → Upload Station to PG against a powered substitute CPU that contains the source MMC.
- If upload succeeds, STEP 7 will reconstruct HW Config from the SDBs on the MMC.
- If upload fails with SF (System Fault) LED lit, clear the CPU first: PLC → Clear/Reset. Then reinsert the source MMC and attempt upload again.
When neither path works, manually reconstruct the station by examining the physical hardware: rack (UR/ER), CPU slot, IM, signal modules, function modules, and CP/IM interfaces. Use the device labels (MLFB stickers) to match modules in the STEP 7 hardware catalog.
7. Cloning an MMC for Backup or Migration
The simplest case is producing a backup MMC from a working card. The forum confirms that this can be done with a bit-for-bit copy when the destination card has equal or greater capacity.
7.1 Step-by-Step Cloning Procedure
- Insert the source MMC into the Field PG's prommer slot.
- Open Start → Programs → STEP 7 → Memory Card File Browser.
- Select the source MMC. Note the project name and size.
- Insert a destination MMC of equal or greater capacity.
- From the menu, select Card → Copy MMC to MMC (or use the right-click context menu on the source card).
- Confirm the operation. STEP 7 reads the source, formats the destination, and writes the image.
- Verify by reading the destination MMC back and comparing block checksums.
0x001F ("Memory card capacity insufficient"). If the source card uses a larger-capacity partition than the destination, the image must be rewritten via STEP 7 to fit.8. Uploading to a Substitute CPU
Once the project is recovered and HW Config is reconstructed, download to the substitute CPU:
- Connect the Field PG to the substitute CPU's MPI/DP/PN port (MPI for first download, PN/DP if MPI is configured for a different subnet).
- Set the PG/PC interface to PC Adapter (MPI) → Local (or appropriate interface).
- Open SIMATIC Manager and the recovered project.
- Select the CPU in the project tree → PLC → Download to Target System.
- If STEP 7 prompts "Do you want to overwrite the existing system data?", click Yes to load the recovered HW Config.
- Wait for the download to complete. The CPU will perform an overall reset and enter STOP.
8.1 Common Download Errors
| Error Code | Message | Cause | Resolution |
|---|---|---|---|
| 0x0019 | Online: The module does not exist | HW Config CPU MLFB differs from physical CPU | Use Replace Object in HW Config to match the actual CPU |
| 0x0023 | System error in module | SDB in MMC is corrupt or version mismatch | Reconstruct HW Config offline; download blocks only |
| 0x002D | Memory card capacity insufficient | Target MMC smaller than source | Use larger MMC or trim project size |
| 0x0033 | No license for this S7 block | Protected runtime block (e.g., F-library) without license | Install license on MMC or remove protected block |
| 0x00A1 | Connection to PLC broken | MPI/DP/PN cable or address mismatch | Verify PG/PC interface and baud rate (default MPI 187.5 kbps) |
9. STEP 7 V5.x vs TIA Portal Considerations
The project format on the MMC is the same regardless of which tool generated it. However, blocks generated in TIA Portal V15+ use SCL source format that STEP 7 V5.4 cannot parse. If the project was last saved in TIA Portal, you must use TIA Portal to upload from the MMC. The reverse is generally not true—V5.x projects upload cleanly into TIA Portal as legacy V5 projects.
| Source Tool | Upload Tool Required | Readback Tool | Block Format |
|---|---|---|---|
| STEP 7 V5.4 SP5 | STEP 7 V5.4 SP5+ | STEP 7 V5.x or TIA V13+ | Compiled STL blocks |
| STEP 7 V5.5 SP4 | STEP 7 V5.5 SP4+ | STEP 7 V5.5+ or TIA V13+ | Compiled STL blocks with extended SDBs |
| TIA Portal V13 | TIA Portal V13+ | TIA Portal V13+ | Compiled blocks, SCL sources included |
| TIA Portal V15.1 | TIA Portal V15.1+ | TIA Portal V15.1+ | Know-how-protected blocks require password on upload |
10. Verification Procedure
After download to the substitute CPU, perform the following verification steps before placing the system in RUN:
- Diagnostic buffer: Open PLC → Diagnostics/Settings → Diagnostic Buffer. Confirm no SDC errors or SDB generation errors.
- Module status: Right-click the CPU → PLC → Module Information. Verify all configured modules are detected and report OK.
- Force table: If the original project used force values, reapply them via PLC → Force only after confirming safe I/O states.
- Watch table: Open the original watch table and verify tag values match the original process state.
- Cross-reference: Run Options → Reference Data → Display and confirm all symbols resolve to the same addresses.
- Run/stop test: Switch the CPU to RUN. Monitor the BR LED and OB1 cycle time. Cycle time should match the original within ±5%.
11. Troubleshooting Matrix
| Symptom | Probable Root Cause | Corrective Action |
|---|---|---|
| Field PG cannot read MMC | Card inserted upside down or contacts dirty | Reinsert with label up; clean contacts with isopropyl alcohol |
| Card shows as unformatted | Consumer SD reader used; not Siemens MMC | Use only Siemens-compatible prommer |
| Upload returns only blocks, no HW Config | STEP 7 version too old to parse SDBs | Upgrade STEP 7 to V5.5 SP4 or TIA V15.1+ |
| Substitute CPU does not accept download | MLFB mismatch between HW Config and physical CPU | Use Replace Object in HW Config |
| DP slaves not coming up | Bus parameters lost during upload | Recompute DP bus parameters in HW Config; download station |
| PN devices not reachable | IP address/subnet in system data differs from physical network | Edit PN interface properties; reassign IP via PLC → Ethernet → Assign IP |
| SF LED lit, BF LED blinking | Distributed I/O fault due to wrong PROFIBUS address or baud rate | Verify DP slave addresses against the physical installation |
| Cycle time doubled | Substitute CPU is older FW; longer OB1 execution | Update substitute CPU to FW ≥ original |
| Know-how protected block cannot be opened | Password not in project archive | Customer must provide password; block code is unrecoverable otherwise |
| Card copy fails midway | Destination MMC worn or counterfeit | Use genuine Siemens MMC; replace with catalog-numbered part |
12. Field-Proven Caveats
Engineers who routinely recover S7-300 MMC projects should keep the following facts in mind:
- Bus parameters are not always inside the system data block set that the Field PG extracts. PROFIBUS bus parameters, in particular, are calculated at download time and are stored in SDB 1000–1099. If the upload tool fails to parse these, the substitute CPU will fall back to default DP bus parameters, which may not match the timing of the original network.
- Symbolic names are stored in the offline project, not on the MMC. The uploaded blocks reference absolute addresses only. To restore the symbol table, the offline project archive must be available.
-
Password protection for the CPU (CPU password, not block know-how protection) must be removed before the substitute CPU will accept a download. Default password is
CPU 300if not customized. - MMC wear: Siemens MMC cards have a write-cycle limit of approximately 100,000 cycles per block. Recovery operations that involve multiple read/write passes should use a sacrificial card, not the production card.
-
Firmware updates stored on MMC: CPU 31x with FW ≥ V2.0 may have a firmware image in the
\FIRMWAREdirectory. If the substitute CPU has older FW and the project expects features of the newer FW, the CPU will fault. Strip the firmware directory before download or update the substitute CPU's FW first.
FAQ
Can I read an S7-300 MMC with a regular SD card reader?
No. Consumer SD card readers will report the MMC as unformatted or corrupt. Use only a Siemens Field PG internal prommer, the Siemens 6ES7 792-0AA00-0XA0 PCMCIA adapter, or a vendor prommer that ships with the Siemens MMC driver (e.g., Helmholz 700-972-0AA01).
Why does my Field PG upload return blocks but no HW Config?
The upload only succeeded for the user blocks. The system data blocks (SDBs) failed to parse, usually because the STEP 7 version on the PG is older than the project. Upgrade to STEP 7 V5.5 SP4 or TIA Portal V15.1+ and re-upload. If the SDBs are physically corrupted, you must reconstruct HW Config from the physical hardware layout.
Can I clone an MMC to a smaller-capacity card?
No. STEP 7 will reject the operation with error 0x002D. The destination MMC must have equal or greater capacity. To shrink a project, open it in STEP 7, remove unused blocks, and download the trimmed project to the new MMC.
Will a CPU 315-2 DP program run on a CPU 315-2 PN/DP if I just swap the MMC?
Yes, if the HW Config on the MMC was originally generated for the target CPU's MLFB or if you perform a Replace Object in HW Config before download. The MMC contents are evaluated against the CPU's MLFB at startup; mismatches trigger an SDC fault and prevent RUN.
How do I get a STEP 7 project back from a CPU that is missing or dead?
Power the CPU down, remove the MMC, and read it with a Field PG prommer or compatible external prommer. Use PLC → Upload Station to PG for a full station upload, or Memory Card File Browser to manually extract the \SIMATIC\S7 folder. If the CPU is also dead but you still have the MMC, the same procedure applies—the MMC is a passive storage device and does not require the CPU to be functional for reading.