Problem Overview
\nEngineers migrating STEP 7 projects from S7-300 to S7-1200 frequently hit a blocking problem: PLCSIM, the bundled offline simulator in STEP 7 / TIA Portal, does not transparently accept S7-1200 program code. The "Start Simulation" toolbar button is greyed out, the project refuses to launch a simulator instance, or the online connection to PLCSIM drops immediately against an S7-1200 CPU target. This guide covers the architectural reasons, the version-dependent PLCSIM behavior, the instruction-level portability exceptions, and the field-proven workarounds that allow offline simulation of S7-1200 logic without rewriting the entire program.
\nThe root cause is architectural: the S7-1200 uses a different firmware-boot contract, a different execution model, and a different instruction set profile than S7-300. The original PLCSIM (STEP 7 V5.x and early TIA Portal) was written to emulate the S7-300 / S7-400 instruction-execution engine. Native S7-1200 simulation arrived later in the TIA Portal product line (commonly referenced in field reports as released roughly in the 2013 timeframe). Before that release, no native S7-1200 PLCSIM target existed.
\nThree failure modes present themselves repeatedly in field support logs:
\n- \n
- Symptom A — Inactive simulation control. The "Simulation" toolbar icon in TIA Portal is disabled when the active project target is an S7-1200 CPU and the installed TIA Portal / PLCSIM predates the S7-1200 simulation release. \n
- Symptom B — Compile-time rejection. PLCSIM launches, but the project compilation against the S7-300 target profile flags CALCULATE, multi-input math, and variant-aware MOVE blocks as unsupported instructions. \n
- Symptom C — Online-bind failure. PLCSIM loads, but the engineering station cannot establish an online connection to the simulated CPU. Diagnostic buffer shows "Connection aborted (code 0x80C)". \n
Resolution depends on identifying which symptom applies and matching the TIA Portal, PLCSIM, and CPU firmware versions correctly. The matrix and procedure below cover each path.
\nS7-300 vs S7-1200 Execution Architecture
\nThe S7-300 family derives from a 1990s instruction set tightly integrated with the SIMATIC S7-300 firmware (CPU 312 through CPU 319). The S7-1200 family is a separate, post-2009 controller family with a different firmware image, work-memory layout, and operand addressing for some instruction types. The PLCSIM runtime was developed against the older execution contract; emulating the newer family requires a separate runtime engine.
\n| Attribute | S7-300 | S7-1200 |
|---|---|---|
| First release | 1994 | 2009 (V1.0 firmware) |
| Firmware generation | Classic (V3.x baseline) | Generation 1 (V1.x–V3.x) / Generation 2 (V4.x+) |
| Instruction set profile | STEP 7 V5.x / TIA Portal subset | TIA Portal extended set |
| Multi-input math | Two operands per block (cascaded) | Up to four operands, CALCULATE for typed expressions |
| MOVE variants | Single-source / single-destination MOVE | Multi-output MOVE, variant-aware MOVE, Serialize/Deserialize |
| PLCSIM target | Original S7-PLCSIM | S7-PLCSIM V13 SP1+ with TIA Portal |
| Online interface | MPI / PROFIBUS / PROFINET | PROFINET only |
| Cycle OB organization | OB1, OB10–OB17 time-of-day, OB30–OB38 cyclic interrupts, OB40–OB42 hardware interrupts | OB1 cyclic, OB30–OB38 cyclic interrupts, OB100 warm restart, OB82 diagnostic error |
| I/O configuration | Central rack + distributed IM/CP modules | Local signal board + PROFINET I/O only (no central rack) |
| Programming languages | LAD/FBD/STL (STEP 7 V5.x), LAD/FBD/SCL (TIA Portal) | LAD/FBD/SCL/GRAPH (TIA Portal) — STL not supported |
| Web server | Optional via CP | Built-in, configurable |
Engineers working in mixed-vintage systems routinely develop and commission S7-300 logic on PLCSIM and then attempt a direct project conversion to S7-1200. That pathway is precisely where the simulator mismatch surfaces: PLCSIM for S7-300 cannot load the converted S7-1200 blocks, and PLCSIM for S7-1200 did not exist in pre-V13 TIA Portal installations.
\nPLCSIM Version Compatibility Matrix
\nNative S7-1200 simulation requires both the TIA Portal programming environment and the PLCSIM runtime to come from the same V13 SP1 (or later) generation. Mismatched versions display the "Simulation button is not active" symptom and refuse to bind to the PLC.
\n| TIA Portal Version | PLCSIM Build / Catalog | S7-1200 Support | S7-300/400 Support |
|---|---|---|---|
| V10.5 / V11.0 | S7-PLCSIM V11 | No | Yes |
| V11 SP2 | S7-PLCSIM V11 SP2 | No | Yes |
| V12 SP1 | S7-PLCSIM V12 | No | Yes |
| V13 SP1 | S7-PLCSIM V13 SP1 | Yes (initial release) | Yes |
| V14 SP1 | S7-PLCSIM V14 SP1 | Yes (extended) | Yes |
| V15 / V15.1 | S7-PLCSIM V15 | Yes | Yes |
| V16 | S7-PLCSIM V16 | Yes | Yes |
| V17 | S7-PLCSIM V17 | Yes | Yes |
The V13 SP1 line is widely cited as the inflection point; field reports place "S7-1200 Simulation" capability at "2013 I think", consistent with the TIA Portal V13 SP1 release cycle. Versions older than V13 SP1 are functionally incapable of native S7-1200 simulation regardless of CPU firmware installed on the target hardware. The Siemens Industry Online Support entry for S7-PLCSIM V13 SP1 release notes is the canonical reference for upgrading from earlier TIA Portal installations.
\nCatalog Installation Order
\nWhen upgrading a multi-engineer workstation, install TIA Portal first, then the matching PLCSIM DVD / image, in that order. Installing PLCSIM before TIA Portal leaves PLCSIM looking for an engineering environment it cannot find; installing them out of order (e.g., V14 SP1 PLCSIM with V13 SP1 TIA Portal) is a common source of "internal library version mismatch" startup errors.
\nIdentifying Non-Portable S7-1200 Instructions
\nEven with TIA Portal V13 SP1+ installed, certain S7-1200 instructions do not exist in the S7-300 instruction database. Cross-compilation yields unsupported references that PLCSIM cannot resolve. The most common offenders are documented below.
\n| Instruction | Function | S7-300 Equivalent | PLCSIM S7-300 Behavior |
|---|---|---|---|
| CALCULATE | Math expression (typed formula, e.g. (a+b)*c-d) | None (must be expanded to arithmetic blocks) | "Instruction not supported" compile error |
| ADD (3 or 4 inputs) | Multi-operand addition (firmware ≥ V4.0) | Cascaded ADD (2 inputs each) | "Instruction not supported" |
| MUL (3 or 4 inputs) | Multi-operand multiplication | Cascaded MUL | "Instruction not supported" |
| SUB (3 or 4 inputs) | Multi-operand subtraction | Cascaded SUB | "Instruction not supported" |
| DIV (3 or 4 inputs) | Multi-operand division | Cascaded DIV | "Instruction not supported" |
| MOVE multi-output | Single source → multiple destinations in one box | None (multiple MOVE blocks) | "Instruction not supported" |
| MOVE_BLK_VARIANT | Variant-aware block move | MOVE_BLK (typed) | Compile error or runtime NOP |
| Serialize / Deserialize | Byte / bit-level packing into arbitrary DB layout | None | "Instruction not supported" |
| WR_DBSEM / RD_DBSEM | DB semaphore blocks | None | "Instruction not supported" |
| S5 timers (SP/SE/SD/SS/SF) | S5-style timer cells | Native (S7-300 only) | OK in S7-300 PLCSIM, rejected in S7-1200 |
| S5 counters (S_CU/S_CD) | S5-style counter cells | Native (S7-300 only) | OK in S7-300 PLCSIM, rejected in S7-1200 |
When converted to a STEP 7 V5.x / S7-300 PLCSIM target, the project compiles only if the converter resolves every S7-1200-only block to its closest S7-300 equivalent or rejects it explicitly. Where the converter silently leaves a CALCULATE box in place, the loaded PLC program fails to scan and the OB1 error flag is raised. Where the converter rejects the instruction, the engineer is left with empty placeholders to fill manually.
\nLocating the Offenders via Project Tree
\nTo find non-portable instructions in a converted or mixed project, right-click the project root in TIA Portal → <References> → search for the keywords "CALCULATE" and "MOVE_VARIANT" in the <Cross-references> view. The result tree lists every block that contains the suspect instruction. Sorting by symbol name (right-click <Symbolic address>) reveals the OB / FB / FC scope quickly.
\nPrerequisites for S7-1200 PLCSIM
\nBefore launching S7-PLCSIM against an S7-1200 target, verify the following constraints. Each item is a documented failure mode when absent.
\n- \n
- TIA Portal V13 SP1 or later installed (engineering license: Standard or higher; PLCSIM is included in the engineering framework on the same authorization USB stick). \n
- S7-PLCSIM installed with the matching TIA Portal version (V13 SP1 PLCSIM for V13 SP1 TIA Portal, V14 SP1 PLCSIM for V14 SP1 TIA Portal, etc.). Mismatched PLCSIM versions refuse to bind and throw error code 0x8004xxx on startup. \n
- Project hardware target: S7-1200 CPU inserted under <Device configuration> → <PLC_1>. Mixed targets (S7-300 and S7-1200 in the same project) cannot be online-against-simulator simultaneously — each simulation run targets one CPU only. \n
- CPU firmware version compatible with the installed PLCSIM. For TIA Portal V13 SP1, supported firmware is V4.0.x or later of the S7-1200 G2 (second-generation) family. Older V1.x / V2.x / V3.x firmware on the CPU is acceptable as long as the PLCSIM catalog entry matches; mismatched order numbers (e.g., CPU 1211C V4.2 with PLCSIM V13 SP1 expecting V4.0 only) produce "Configuration not supported" downloads. \n
- Windows local administrator rights on the engineering station. PLCSIM installs a virtual Ethernet adapter (Siemens PLCSIM VEth) and a Siemens PLCSIM Windows service that requires elevation to start. \n
- Firewall rule allowing PLC-to-PLC communication via TCP/UDP on local subnet (default auto-negotiated by PLCSIM). On Windows Defender, PLCSIM is granted status during install; on third-party firewalls (Symantec, McAfee, Kaspersky), add an inbound allow rule for "Siemens PLCSIM" manually. \n
- License authorization: PLCSIM is licensed under the Engineering / Advanced Engineering license tier. A standalone runtime license is not required when the engineer holds an active TIA Portal license on the same machine. Floating licenses via the Automation License Manager network server support multi-engineer PLCSIM sessions. \n
Migration Workaround: S7-300 PLCSIM Harness
\nWhen only a STEP 7 V5.x environment or pre-V13 SP1 TIA Portal is available, and a true S7-1200 PLCSIM is unavailable, the standard workaround is to develop and test the control logic in an S7-300 simulation harness, then transplant the verified blocks back into the S7-1200 target project. The procedure is field-tested and reproducible.
\nWorkaround Procedure
\n- \n
- Create a parallel S7-300 station in the same TIA Portal installation (or STEP 7 V5.x if that is the only tool available). Match the program structure (OB1 cycle, FB/FC data blocks) as closely as possible. \n
- Replace every non-portable S7-1200 instruction with its S7-300 equivalent. CALCULATE → manual arithmetic expression using ADD/MUL/SUB/DIV and IF/WHEN blocks. Multi-input ADD → cascaded ADD pairs. Multi-output MOVE → individual MOVE blocks per destination. \n
- Confirm that no S5-format timer or counter blocks remain in the S7-1200 source. If present, convert each to IEC timer (TON / TOF / TP) or IEC counter (CTU / CTD / CTUD). \n
- Compile, download to PLCSIM (S7-300 target), exercise the input table against the mapped I/O (force the input byte that the logic expects from the real field wiring). \n
- Capture the functional response, signal sequences, and timing. Resolve any missed I/O mapping or interfacing block before transplant. \n
- Copy the validated FB/FC/DB containers into the S7-1200 project. Replace the S7-300-equivalent arithmetic with the original CALCULATE / multi-input ADD instructions, taking advantage of the S7-1200 native instruction set. \n
- Recompile, re-run functional verification on the real S7-1200 hardware or, if available, on PLCSIM V13 SP1+ targeted to an S7-1200 CPU. \n
- Maintain two parallel source corpora until the final validation pass. Consolidate only after the S7-1200 simulation harness is accepted. \n
This approach has the obvious cost of maintaining two parallel program corpora during development. It is, however, the only available simulation path on older STEP 7 installations and is widely used to validate S7-1200 logic when a hardware target is unavailable.
\nLAD and SCL Examples: Replacing CALCULATE
\nConsider an S7-1200 CALCULATE box that evaluates the expression (IN1 + IN2) * IN3 - IN4. In an S7-300 simulation harness, that becomes a three-step FBD cascade or SCL cascade.
\nFBD Cascade:
\n\n IN1 --[ADD]-- IN2 --> TEMP1\n TEMP1, IN3 --[MUL]-- --> TEMP2\n TEMP2, IN4 --[SUB]-- --> OUT1\n\nSCL Equivalent (S7-300):
\n\n #TEMP1 := #IN1 + #IN2;\n #TEMP2 := #TEMP1 * #IN3;\n #OUT1 := #TEMP2 - #IN4;\n\nThe same SCL transplant, returned to the S7-1200 project as a single CALCULATE box with expression text (IN1 + IN2) * IN3 - IN4, recovers the original compact S7-1200 representation.
Migrating IEC Timer Semantics
\nAn S5-style block "SE_T4_1" (extended-pulse timer) on a 1-second resolution base is not the same as an IEC TP timer. SE stays high while the input is continuously asserted; TP emits one fixed-duration pulse per rising edge. Review the original S5 timer mode before converting:
\n| S5 Timer Type | S5 Symbol | S5 Behavior | S7-1200 IEC Equivalent |
|---|---|---|---|
| Pulse | SP | Output = input, latched for setting time on falling edge | TP (Pulse) |
| Extended pulse | SE | Output stays for setting time even on falling input | TP + re-trigger logic |
| On-delay | SD | Output follows input after setting time | TON (On-delay) |
| Retentive on-delay | SS | Output latches high after first setting time completion | Custom logic with set/reset flip-flop |
| Off-delay | SF | Output = input, holds high for setting time after input falls | TOF (Off-delay) |
Configuring Native S7-1200 PLCSIM in TIA Portal
\nOnce the prerequisites above are satisfied, native S7-1200 simulation is straightforward. The full configuration sequence is enumerated below.
\n- \n
- Open the S7-1200 project in TIA Portal V13 SP1 or later. \n
- Ensure the project target is set to <PLC_1> → <S7-1200 CPU>. Open the device configuration and confirm the CPU order number and firmware version. Right-click the PLC → <Properties> → <General> → <Catalog information> to verify the HW catalog entry matches the PLCSIM-compatible profile. \n
- From the <Online> menu, select <Simulation> → <Start>. Alternatively, click the toolbar icon (<Start simulation>). PLCSIM launches with a virtual instance of the configured CPU. \n
- The PLCSIM compact view opens showing the CPU status indicators (RUN / STOP / ERROR), the project tree, and the I/O simulation panel. The CPU remains in STOP until you click <RUN>. \n
- From the PLCSIM instance, click <Project tree> → <PLC_1> → <Download to device>. The compiled program is transferred to the simulated PLC. \n
- Toggle the CPU to <RUN>. Use the <Input> panel to force inputs and observe outputs in real time. Monitor tags through the <Watch table> or <Force table>. \n
- Step the cycle through breakpoints using <Online> → <Monitor/Modify>. Trigger OB1 entry and exit events as needed. \n
- Stop the simulation via <Online> → <Simulation> → <Stop>. The PLCSIM service stays resident until the engineering session ends or is explicitly unloaded via <Task Manager> → <Services> → <Siemens PLCSIM>. \n
Extended PLCSIM Functions
\nModern PLCSIM V14 SP1+ ships with extended features worth leveraging for S7-1200 testing:
\n- \n
- Multi-instance simulation: PLCSIM can host two or more simulated CPUs in one window. Useful for testing S7-1200-to-S7-1200 or S7-1200-controller-to-S7-1500-I/O PROFINET pairs. \n
- Trace function: Live capture of tag values into a time-series view. Requires TIA Portal Professional edition with the Trace viewer option. \n
- Software controller: The PLCSIM Virtual Controller option (introduced in V17) runs the full CPU firmware in a Docker-style container. Closer parity with real hardware, slower startup. \n
- API: PLCSIM exposes a .NET API (PLCSIM V14+) that allows scripts (C# / PowerShell) to drive inputs, read outputs, and trigger events programmatically. Useful for automated regression testing. \n
Verification and Validation
\nAfter each simulation run, verify the following before signing off the simulated application:
\n- \n
- OB1 cycle time reaches the expected scan window (typically 1–100 ms for S7-1200). Anything above the configured maximum cycle time raises OB80 (timing error) and trips the CPU to STOP. \n
- All PLC tags in the <Watch table> resolve to expected values; no undefined (--/--) entries remain. \n
- Force table entries applied to simulated inputs produce expected transitions in the affected FBs/FCs within one cycle. \n
- No diagnostic buffer entries with class Error appear after a full functional pass. Diagnostic buffer is accessible via <PLC diagnostics> in PLCSIM or via <Online> → <Diagnostics> in TIA Portal. \n
- Persistent storage: save the project offline and reopen it to confirm persistent storage of any simulation-specific settings (force values, watch tables). \n
- Full I/O exerciser pass: every input bit toggled, every output bit asserted, every connected HMI tag updated. \n
- PROFINET I/O scan: if PROFINET I/O is configured, run a full scan and confirm device-level readiness (no "PROFINET interface error" entries in the diagnostic buffer). \n
- Safety-integrated scope: if a safety-integrated (F-CPU) S7-1200 is being simulated, expect partial coverage. PLCSIM runs safety code in passivated mode and cannot reproduce real safety I/O behavior. Final validation must occur on hardware. \n
Troubleshooting Matrix
\n| Symptom | Likely Cause | Resolution |
|---|---|---|
| "Start Simulation" button is greyed out | PLCSIM not installed or version mismatch with TIA Portal | Reinstall PLCSIM matching TIA Portal version (V13.1 ↔ V13.1, V14 SP1 ↔ V14 SP1). Restart engineer station. |
| PLCSIM starts, then "Error: Instance 0 not available" | Existing PLCSIM service locked from previous session | Stop <Siemens PLCSIM> service via Task Manager → Services. Restart PLCSIM. |
| "The instruction CALCULATE is not supported" | Converted S7-1200 project contains CALCULATE box | Manually expand to cascading math (see replacement example). Re-compile. |
| Online connection to PLCSIM fails; "Target not found" | TCP/IP loopback adapter disabled or firewall blocking | Enable Siemens PLCSIM Virtual Ethernet Adapter in <Network Connections>. Allow PLCSIM through Windows Firewall on all profiles. |
| CPU goes into STOP with OB80 "time error" | Cycle time exceeded default 150 ms | Inspect OB1 cycle time in PLCSIM. Move non-critical processing into OB30/OB35 cyclic interrupts with extended cycle times. |
| Compile error "Unknown instruction ADD with 3 inputs" | Multi-input ADD retained in S7-1200 source while PLCSIM targeted as S7-300 | Switch PLCSIM target to S7-1200 (TIA Portal V13 SP1+) or expand to cascaded 2-input ADD blocks. |
| Project converted from S7-300, but PLCSIM refuses to load blocks | S5 timer/counter blocks remain in converted code | Replace S5 timer with TON/TOF/TP; replace S5 counter with CTU/CTD/CTUD. |
| Watch table shows constant "--" placeholder after RUN | Tags defined in code but not online-mapped | Re-download program. Use <Establish online connection> before adding tags to watch table. |
| PLCSIM runs but stops immediately on RUN | OB100 (startup) error or hardware mismatch | Check diagnostic buffer for OB start event rejection. Verify CPU order number matches PLCSIM catalog. |
| License error "S7-PLCSIM not authorized" | No valid license or floating license server unreachable | Open <Automation License Manager>. Activate a valid PLCSIM license locally or via network license server. |
| PROFINET device shows "Station failure" in PLCSIM | PLCSIM PROFINET stack does not load distributed I/O by default | Enable <PN/IE interface> in PLCSIM V14 SP1+ Advanced. For S7-300 PLCSIM, PROFINET simulation is restricted to local CPU only. |
| Symbolic tag update fails with "Address resolution error" | PLC tag / DB has been re-declared after last compile | Recompile (Project → Compile all). Re-download. Re-establish online connection. |
Best Practices and Safety Notes
\nThe following practices minimize the chance of a PLCSIM-related blocker when the project touches both platforms.
\n- \n
- Maintain S7-1200 firmware-version-specific program branches. Each firmware generation (V4.0, V4.1, V4.2, V4.3, V4.4, V4.5) has slightly different instruction availability. Pin the project to one firmware per development phase. \n
- Where possible, write core algorithms in SCL inside reusable FBs. SCL transplants cleanly between S7-300 and S7-1200 once instruction portability issues are resolved. STL, by contrast, is unsupported on S7-1200 and forces rewriting in LAD or FBD. \n
- Document every CALCULATE or multi-input math block with a comment naming its expansion. This makes the S7-300 simulation harness trivial to rebuild when needed. \n
- Keep the PLCSIM version locked to the TIA Portal version on each engineer's machine. A mixed V13/V14 PLCSIM environment produces inconsistent simulation behavior and hard-to-reproduce bugs. \n
- Where hardware-in-the-loop is available (PROFINET with ET200 or SINAMICS drives), prefer a hardware emulator over PLCSIM for full-stack validation. PLCSIM simulates the CPU but not the I/O backplane or remote I/O behavior in the S7-300 line; the S7-1200 PLCSIM V14 SP1+ has improved PROFINET I/O emulation but is still not a 1:1 substitute for the field device. \n
- Schedule a yearly review of TIA Portal / PLCSIM version alignment. New firmware features often require newer PLCSIM versions to simulate correctly (e.g., OPC UA Server function blocks introduced in S7-1200 firmware V4.4 require PLCSIM V14 SP1 or later). \n
- Avoid putting real-world IP addresses into the PLCSIM VEth configuration if the engineering station is also used for HMI or production network traffic. PLCSIM DHCP-hands out local addresses but routing logic can interfere with live network connections. \n
- Build the S7-300 PLCSIM harness early in the project even if S7-1200 PLCSIM is the long-term goal. The harness becomes the safety-net environment if license or version issues force PLCSIM downgrades mid-project. \n
Standards and Compatibility References
\nFor cross-verification of PLCSIM behavior, parameter limits, and CPU-family instruction sets, consult:
\n- \n
- S7-1200 Programmable Controller System Manual (Siemens Industry Online Support, manual entry under the S7-1200 support page). \n
- S7-PLCSIM V13 SP1 / V14 SP1 release notes and online support notes on the Siemens Industry Online Support portal. \n
- S7-1200 CPU firmware release notes (firmware V4.x) for CPU-specific instruction availability and deprecations. \n
- TIA Portal release notes for the installed engineering version. \n
Frequently Asked Questions
\nCan I use PLCSIM with S7-1200 in TIA Portal V12?
\nNo. Native S7-1200 PLCSIM support begins with TIA Portal V13 SP1 (released in the 2013 timeframe according to field reports). TIA Portal V12 PLCSIM targets S7-300 and S7-400 only. To simulate S7-1200, upgrade both TIA Portal and PLCSIM to V13 SP1 or later and match the versions exactly.
\nWhich S7-1200 instruction blocks block PLCSIM simulation?
\nThe most common blockers are the CALCULATE instruction, multi-input ADD/MUL/SUB/DIV with 3 or 4 operands, and multi-output or variant-aware MOVE blocks. PLCSIM for S7-300 does not recognize these; expand each to standard S7-300 instructions or upgrade to PLCSIM V13 SP1+ targeted to an S7-1200 CPU for native execution.
\nWhy does PLCSIM refuse to bind to my S7-1200 project?
\nThree causes are most common: (1) TIA Portal and PLCSIM versions do not match, (2) the S7-PLCSIM virtual Ethernet adapter is disabled or blocked by firewall, (3) the installed PLCSIM license is invalid or unreachable from the Automation License Manager server. Resolve each via version alignment, Windows Firewall rules, and license activation in that order.
\nCan S5 timer and counter blocks be simulated in S7-1200 PLCSIM?
\nNo. S5-style timers (SP/SE/SD/SS/SF) and counters (S_CU/S_CD) are S7-300-family instructions. They are rejected at compile time on any S7-1200 target, including PLCSIM. Replace with IEC equivalents (TON/TOF/TP for timers; CTU/CTD/CTUD for counters) before attempting simulation, paying attention to retentive-on-delay (SS) which has no direct IEC equivalent.
\nIs PLCSIM a substitute for hardware commissioning?
\nNo. PLCSIM emulates the CPU only; it does not exercise the I/O backplane, field wiring, or remote PROFINET I/O with full fidelity. A passing PLCSIM run is a necessary precondition for hardware commissioning but never a replacement. Always perform final validation against the real S7-1200 hardware and field wiring before release.
\n