S7-1200 1212C Firmware V2.2 Update: Fix Wrong MMC and EXE Errors

David Krause12 min read
S7-1200SiemensTroubleshooting
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 SIMATIC S7-1200 CPU 6ES7 212-1HD30-0XB0 (1212C DC/DC/Relay) ships from the factory with firmware V1.0 and is field-upgradeable to V2.2.x via the front-panel SIMATIC Memory Card (SMC) slot. The update procedure is documented in the Siemens Industry Online Support portal and uses a self-extracting Windows executable (.EXE) whose output is written to the \SIMATIC\S7_1200\FWUPDATE directory on the SMC. The PLC bootloader reads this directory at the next power-up and applies the firmware, then signals completion with a specific LED pattern.

When the procedure terminates early — for example at V2.1 instead of V2.2 — the root cause is almost always one of three things:

  1. The memory card in use is not a SIMATIC SMC. The 6AV6671-1CB00-0AX2 is an MMC designed for S7-300 / ET 200S, not for the S7-1200.
  2. The firmware executable extracted to the card does not match the exact MLFB (order number) of the target CPU, including the I/O variant suffix (DC/DC/DC vs. DC/DC/Relay vs. AC/DC/Relay).
  3. The card contains multiple firmware .UP files in the FWUPDATE directory. The bootloader selects the first valid match and stops, leaving the remainder unprocessed.

This reference walks through identification of the correct SMC, the correct firmware file name pattern, the LED-based status decoding, the recovery procedure when V2.1 is reported as the active version, and a verification matrix that confirms a clean V2.2 install.

Affected Hardware and Required Components

Component Siemens MLFB / Catalog No. Notes
Target CPU 6ES7 212-1HD30-0XB0 1212C DC/DC/Relay; 8 DI / 6 DO relay / 2 AI onboard
Source firmware (PC side) 212-1HD30-0XB0_V220.EXE Self-extracting; produces S7_1200.WUP and supporting files in FWUPDATE
Required SMC (4 MB) 6ES7 954-8LE01-0AA0 Minimum for V2.2 update payload
Required SMC (12 MB) 6ES7 954-8LF01-0AA0 Recommended; works for any S7-1200 firmware up to V4.x
Programmer / Engineering STEP 7 V11 SP2 (TIA Portal) or later, or V13 for V2.2 project files Required to verify firmware level after update
Not supported for S7-1200 update 6AV6 671-1CB00-0AX2 SIMATIC MMC for S7-300 / ET 200S — will not initiate a valid update on an S7-1200
Critical: The SMC catalog number family is 6ES7 954-8L.... Any 6AV6 671 series card belongs to the S7-300/C7/ET 200S product line and is not a valid firmware-update medium for the S7-1200. If the card in use is from the 6AV6 671 family, the PLC will still attempt to read it, may report a maintenance (MAINT) flash, but the firmware level will not advance beyond the version already installed.

Firmware File Naming Convention

The Siemens .EXE firmware updater for the S7-1200 always uses the order number (MLFB) of the target module in the file name. The string between the underscores breaks down as follows:

212-1HD30-0XB0_V220.EXE
│   │       │    │
│   │       │    └── V2.2.0 firmware build
│   │       └─────── Hardware variant suffix (-0XB0 = DC/DC/Relay, -0XB1 = DC/DC/DC)
│   └─────────────── Product family / I/O group
└─────────────────── Module family code (2 = CPU 12xx)

Common 1212C variants and their matching update files:

CPU Order Number (MLFB) Variant Firmware File
6ES7 212-1AE31-0XB0 1212C AC/DC/Relay 212-1AE31-0XB0_V220.EXE
6ES7 212-1AE40-0XB0 1212C AC/DC/Relay (newer) 212-1AE40-0XB0_V220.EXE
6ES7 212-1BD30-0XB0 1212C DC/DC/DC (early) 212-1BD30-0XB0_V220.EXE
6ES7 212-1BD40-0XB0 1212C DC/DC/DC (later) 212-1BD40-0XB0_V220.EXE
6ES7 212-1HD30-0XB0 1212C DC/DC/Relay (this article) 212-1HD30-0XB0_V220.EXE
6ES7 212-1HD40-0XB0 1212C DC/DC/Relay (later) 212-1HD40-0XB0_V220.EXE

Do not assume that two CPUs with the same I/O count are interchangeable. The HD30 vs. HD40 difference, for example, reflects a hardware revision that requires its own firmware. Loading the wrong file appears to the user as a successful update (LEDs cycle, MAINT stops flashing), but the firmware level reported in TIA Portal is unchanged, or worse, the PLC enters a recurring reboot loop.

Root Cause Analysis: Why the Update Stops at V2.1

Three root causes produce the symptom "update appears to run, but firmware level remains at V2.1 (or any pre-V2.2 level)":

Root Cause 1 — Wrong SMC Catalog Number

The 6AV6 671-1CB00-0AX2 is a 4 MB MultiMediaCard intended for S7-300 CPUs. The S7-1200 SMC slot is electrically and mechanically compatible with the SD-card-form-factor SMCs in the 6ES7 954-8L family, but the bootloader requires a SIMATIC SMC with the correct filesystem structure. When a non-SIMATIC card or an S7-300 MMC is inserted, the PLC's update routine either:

  • Reads the card, finds no valid FWUPDATE directory, leaves the firmware untouched, but the operator may misread the LED pattern as a successful update; or
  • Partially processes the file and stops at the next non-matching point, leaving the previous firmware (e.g., V2.1) intact.

Root Cause 2 — Mismatched EXE in the Update Directory

If the extracted FWUPDATE folder contains a file for a different MLFB — e.g., 1214 firmware (214-1BD30-0XB0) copied to a 1212C, or DC/DC/DC firmware (212-1BD30-0XB0) on a DC/DC/Relay CPU (212-1HD30-0XB0) — the bootloader validates the order number against the CPU's hardware ID. On mismatch, the bootloader reports a "firmware not for this module" condition. The PLC remains in its previous state (often V2.1 after a prior good update from V2.0).

Root Cause 3 — Multiple Firmware Files in FWUPDATE

If two or more valid .UP files are present (for example, a V2.0 leftover plus a V2.2 fresh extract), the bootloader processes the first valid match alphabetically and stops. It does not iterate to the higher version automatically. The user sees what looks like a successful update, but the level reported is whichever file was processed first.

Pre-Update Verification

Before inserting the card, perform these checks. Any failure here saves an entire update cycle.

  1. Confirm CPU MLFB. Read the label on the front of the CPU. Confirm the exact string, including every character of the suffix. Photograph the label if needed. The PLC's own diagnostic buffer in TIA Portal also reports the order number under Online & Diagnostics > Diagnostics > Module Information > Identification.
  2. Inspect the SMC. Read the part number laser-etched on the card. Acceptable SMCs for S7-1200 firmware update begin with 6ES7 954-8L. Anything in the 6AV6 671-1 family is not an SMC.
  3. Verify file integrity on the PC. Right-click 212-1HD30-0XB0_V220.EXE > Properties > Digital Signatures. The signer should be "Siemens AG". If the file was repackaged or truncated, the bootloader will reject it at the CRC check and the PLC will not change state.
  4. Format the SMC. Use only the Siemens SIMATIC Automation Tool, the S7-1200 Program Card utility in TIA Portal, or a clean SD-formatter from the SD Association. Windows quick-format is acceptable provided the filesystem is FAT or FAT32 and a single primary partition is present. A card with an MBR from another tool may not be readable by the PLC.
  5. Extract to a known path. Run the .EXE and extract directly to the root of the SMC. The resulting tree should be:\pre>\\SMC\SIMATIC\S7_1200\FWUPDATE\S7_1200.WUP \\SMC\SIMATIC\S7_1200\FWUPDATE\ORDER.TXT (optional)
  6. Confirm a single firmware target. The FWUPDATE directory must contain exactly one .UP or .WUP payload. Any second file must be removed.

Step-by-Step Firmware Update Procedure

  1. Bring the PLC to STOP. Either turn the mode switch to STOP, or stop the CPU from TIA Portal. Wait for the RUN LED to be off and the STOP LED to be solid yellow.
  2. Insert the SMC. With power applied, push the card into the slot on the underside of the CPU module until it clicks. Do not use excessive force — the card is keyed.
  3. Power-cycle the PLC. Remove and re-apply the 24 V supply. The PLC will boot into the firmware-update routine because it detects a valid FWUPDATE directory on the SMC.
  4. Observe the LED sequence. The expected pattern during a V2.2 update from V2.x takes 2 to 5 minutes. See the LED state diagram below.
  5. Wait for the MAINT LED to stop flashing and the RUN LED to be solid yellow. The PLC is in the post-update state but not yet running the user program.
  6. Remove the SMC. The card is no longer needed and the PLC will not boot normally with the FWUPDATE directory still present.
  7. Power-cycle the PLC. The PLC should boot into RUN (or remain in STOP per the mode switch position) with the new firmware active.
  8. Verify in TIA Portal. Go online, right-click the CPU, and read the firmware version under Online & Diagnostics > Diagnostics > Module Information. Confirm it shows 2.2.x, not 2.1.x.

LED Status Decoding During the Update

S7-1200 Firmware Update LED Sequence (1212C, V2.0 → V2.2) State RUN STOP MAINT ERROR Power-on, SMC present Erase + write flash (~3 min) Verify + reboot (yellow RUN / flashing MAINT) Update complete — pull SMC and reboot Legend: solid yellow = ON, dark = OFF, flashing = animated. If MAINT flashes red during state 2, the firmware file does not match this CPU's MLFB.

Troubleshooting Matrix

Symptom Most Likely Root Cause Action
MAINT flashes red during write phase Firmware file does not match the CPU MLFB (e.g., 1214 file on 1212, or DC/DC/DC file on DC/DC/Relay CPU) Re-extract the correct 212-1HD30-0XB0_V220.EXE to a freshly formatted SMC; remove any other .UP files
PLC reboots, no LED change, firmware still at V1.x Card is not a SIMATIC SMC (e.g., 6AV6 671-1CB00-0AX2) Replace with 6ES7 954-8LE01-0AA0 or 6ES7 954-8LF01-0AA0
Update appears to succeed but level still reports V2.1 Multiple firmware files in FWUPDATE; bootloader processed the lower version first Wipe SMC; extract only the V2.2 EXE; re-run the procedure
RUN LED stays off, MAINT solid red after power cycle Card was left inserted after a previous attempt; PLC keeps finding old payload Remove SMC, power cycle, confirm fault clears; then prepare a clean SMC
PLC remains in cyclic reboot with the SMC inserted Truncated or corrupt .EXE download — CRC mismatch Delete the SMC contents, re-download the EXE from Siemens support, verify digital signature, re-extract
STOP solid, MAINT solid yellow, ERROR flashing Hardware revision mismatch (e.g., HD30 file on a HD40 CPU) Identify the exact MLFB and download the matching V2.2 file

Verification Steps After a Successful Update

  1. In TIA Portal, go online with the CPU.
  2. Open Online & Diagnostics &em> Diagnostics > Module Information.
  3. Confirm the firmware version is reported as 2.2.x.
  4. Open the diagnostic buffer and look for the entry Firmware update successful with a corresponding timestamp.
  5. Cycle power to the PLC and confirm it boots into RUN (assuming a program is loaded) and that the user program executes without an I/O error storm.
  6. Re-download the project to confirm tool-to-PLC firmware compatibility — STEP 7 V11 SP2 supports V2.2 projects; older versions will reject the connection.

Recovery Procedure When the Update Has Been Performed with the Wrong File

If the firmware has been partially updated and the PLC is stuck at V2.1 or the bootloader is rejecting the file mid-write, perform the following recovery:

  1. Power down the PLC.
  2. Remove the SMC.
  3. On a Windows PC, use a card reader to wipe the SMC (full format, FAT32, default allocation size).
  4. Re-download 212-1HD30-0XB0_V220.EXE from the Siemens Industry Online Support portal. Verify the file size matches the published value on the download page.
  5. Run the EXE and extract to the SMC root.
  6. Confirm only one .UP/.WUP file exists in \SIMATIC\S7_1200\FWUPDATE.
  7. Insert the SMC into the PLC, power up, and observe the LED sequence described above.
  8. If the PLC still does not advance, perform a factory reset by writing an empty program card (SMC with a fresh S7_JOB\S7_1200 SIMATIC structure) and re-attempting the firmware update on a different SMC of the same catalog family.

Process Flow: Diagnostic Decision Tree

Firmware Update Diagnostic Decision Tree Update attempted; firmware level not V2.2 Is the SMC a 6ES7 954-8L... ? part number? NO — Replace SMC with 6ES7 954-8LE01-0AA0 (4 MB) or 8LF01-0AA0 (12 MB) YES — continue EXE matches MLFB exactly? NO YES NO YES Re-extract correct EXE; retry

Reference: SIMATIC SMC Family for S7-1200

MLFB Capacity Usable for S7-1200 Firmware Update
6ES7 954-8LB01-0AA0 2 MB Yes (smaller payloads only — V1.x to V2.0)
6ES7 954-8LC01-0AA0 2 MB Yes
6ES7 954-8LE01-0AA0 4 MB Yes — minimum for V2.2 update on 1212C
6ES7 954-8LF01-0AA0 12 MB Yes — recommended universal card
6ES7 954-8LF02-0AA0 12 MB Yes (newer revision)
6ES7 954-8LL02-0AA0 24 MB Yes (large programs + firmware)
6ES7 954-8LP02-0AA0 256 MB Yes (high-end S7-1200 only)
6ES7 954-8LP03-0AA0 2 GB Yes (S7-1200 G2 and later)
6AV6 671-1CB00-0AX2 4 MB No — S7-300 / ET 200S MMC, not an S7-1200 SMC

Safety and Operational Notes

  • Do not remove the SMC while the MAINT LED is flashing during the write phase. Interrupting the write can leave the PLC in a state that requires a factory reset via an empty program card.
  • Do not cycle power during the firmware update. The PLC's internal flash is being rewritten, and an interruption can cause an irrecoverable boot failure.
  • Update the project to a STEP 7 version that supports the target firmware (V2.2 requires STEP 7 V11 SP2 Update 2 / V12 SP1 / V13 or later). Older TIA Portal versions will refuse to connect to a V2.2 CPU.
  • If the CPU is part of a safety-related application (fail-safe variant -0XB0 F), confirm the F-firmware version is consistent. S7-1200F updates use a different SMC procedure and a different EXE name.
  • After the update, perform a complete backup of the project to the SMC using TIA Portal's Online > Backup from online device to a freshly formatted card, to provide a rollback point.

FAQ

Why does the S7-1200 firmware update appear to succeed but the firmware version still shows V2.1?

The bootloader validates the firmware file's order number against the CPU's hardware ID. If the file is for a different module — for example, 1214 firmware on a 1212C, or DC/DC/DC firmware on a DC/DC/Relay CPU — the bootloader rejects it. The PLC may also stop at an earlier version if two or more .UP files are present in \SIMATIC\S7_1200\FWUPDATE and the first alphabetical match is the older one. Re-extract the exact 212-1HD30-0XB0_V220.EXE to a freshly formatted SMC and remove all other firmware payloads.

Can the SIMATIC MMC 6AV6 671-1CB00-0AX2 be used to update an S7-1200 CPU?

No. The 6AV6 671-1CB00-0AX2 is a MultiMediaCard designed for the S7-300 and ET 200S families. The S7-1200 requires a SIMATIC Memory Card (SMC) from the 6ES7 954-8L family. For a V2.2 update of a 1212C, use 6ES7 954-8LE01-0AA0 (4 MB) or 6ES7 954-8LF01-0AA0 (12 MB).

How long does a V2.0 to V2.2 firmware update take on a 1212C?

From power-on with a valid SMC present, expect 2 to 5 minutes. The RUN LED is off and STOP is solid yellow during the erase and write phases. When the RUN LED turns solid yellow and the MAINT LED begins to flash, the bootloader is in the verify and reboot stage. Removing the SMC and power-cycling the PLC at this point finalizes the update.

What is the exact firmware file name for the 6ES7 212-1HD30-0XB0 V2.2 update?

The self-extracting firmware updater published by Siemens is 212-1HD30-0XB0_V220.EXE. The string HD30 in the file name must match the suffix on the CPU's order number label. Loading a HD40 or BD30 file on a HD30 CPU will be rejected at the hardware-ID check.

What should I do if the PLC is stuck in a reboot loop after a failed firmware update?

Power down the PLC, remove any SMC, then prepare a fresh SMC with a single, verified copy of the matching .EXE extracted to \SIMATIC\S7_1200\FWUPDATE. Reinsert the card and power up. If the loop persists, the internal flash may be corrupt; in that case an empty program card can be used to force the PLC back to a known state, after which the firmware update can be retried with a different SMC of the same catalog family.

Back to blog