Resolving S7-PLCSIM 'Unable to Copy Block OB1' Download Error

David Krause13 min read
S7-300SiemensTroubleshooting
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

Problem Overview

Engineers commissioning or testing SIMATIC S7-300 / S7-400 programs in S7-PLCSIM frequently hit the download error "Unable to copy block OB1" (or equivalent messages for FC/FB/DB blocks). The symptom chain is consistent: hardware is configured and compiled, NetPro is saved with an MPI subnet, the PLCSIM instance is started and shows RUN, but the very first block download to the simulated CPU fails with the copy-block error, and any subsequent attempt with the CPU in STOP or RUN-P returns "Online: The connection to the target module cannot be established".

The two messages are mutually reinforcing: the first occurs because the engineering station is talking to a different target than the PLCSIM instance; the second occurs because the PG/PC access point or interface assignment is pointing at a real adapter (PC-Adapter, CP, Ethernet NIC) instead of the virtual PLCSim interface. The fix is almost always in the PG/PC interface configuration, not in the user program or hardware configuration.

Scope: This reference applies to STEP 7 V5.x (SIMATIC Manager) with S7-PLCSIM V5.x. If you are using TIA Portal, the error code, access point, and PLCSIM version differ — see the Siemens S7-PLCSIM V5.4 SP8 entry for version-to-version compatibility.

Symptoms and Error Messages

Three primary symptoms indicate this fault class. Treat any one of them as a signal to verify the PG/PC interface assignment before suspecting the program.

# Symptom Trigger Indicates
1 "Unable to copy block OB1" during block download CPU in RUN, no valid online path PG is not addressing PLCSIM
2 "Online: The connection to the target module cannot be established" CPU in STOP or RUN-P after switching Access point mismatch or wrong subnet
3 PLCSIM shows RUN, but SIMATIC Manager reports "No connection to target" Accessible Node dialog Virtual interface not selected

Additional corroborating indicators include: a missing "PLCSim" entry in the Accessible Nodes list, the diagnostic buffer of the simulated CPU showing nothing because the PG never actually opened a connection, and the PLCSIM window title bar showing the correct MPI address but the engineering software's online view showing "--- not connected ---".

Root Cause Analysis

The block download path in STEP 7 V5.x is composed of three independent layers, all of which must align for an OB1/FC/FB/DB transfer to succeed:

  1. PG/PC Interface assignment — which OS-level adapter (real NIC, MPI cable, or virtual PLCSIM) the engineering software uses.
  2. Access Point — the named logical endpoint (e.g. S7ONLINE, PLCSim(MPI), PLCSim(PROFIBUS)) that maps the logical endpoint to a physical or virtual interface.
  3. Subnet agreement — the MPI/PROFIBUS/Ethernet subnet defined in NetPro must match the subnet selected in PLCSIM, and the CPU's MPI address in HW Config must match the PLCSIM instance's address.

The dominant root cause in roughly 80% of these cases is layer 2: the access point is still pointing at S7ONLINE mapped to a real adapter (for example PC Adapter (MPI) or TCP/IP -> Realtek NIC) when PLCSIM is the only running target. The PG therefore attempts to reach a CPU that does not exist on the physical network, fails silently, and the download dialog falls back to the generic "Unable to copy block" error.

A secondary root cause is layer 3: the user opens PLCSIM without checking the PLCSim(MPI) / PLCSim(PROFIBUS) selector inside the PLCSIM window. If the dropdown is left at "MPI(1)" but the configured CPU uses PROFIBUS, or vice versa, the PG cannot form the S7 connection even if the access point is correct.

Prerequisites and Environment

Before applying the fix, verify the installed environment matches a supported combination:

Component Supported Versions Notes
STEP 7 (SIMATIC Manager) V5.4 SP5, V5.5, V5.5 SP1, V5.5 SP2, V5.6 V5.6 is the last V5.x release
S7-PLCSIM V5.4 SP4+, V5.5, V5.5 SP1 Install after STEP 7
Windows Windows 7 SP1, Windows 10 (LTSC 2019 recommended) 32-bit preferred; 64-bit works with V5.6
CPU families supported S7-300 (all), S7-400 (all), ET 200S CPU, WinAC Basic, F, DP, PN, PN/DP variants

Confirm PLCSIM is installed by checking Start → SIMATIC → S7-PLCSIM → S7-PLCSIM (32-bit). If the icon is missing, the access point PLCSim(MPI) will not be registered with the OS, and even a correct configuration will fail.

Installation order matters: STEP 7 must be installed before PLCSIM. If PLCSIM was installed first, the PLCSim virtual adapter is not registered. Re-run the PLCSIM setup with "Repair" or reinstall.

Step-by-Step Resolution

Step 1 — Open the PG/PC Interface Dialog

In SIMATIC Manager, select Options → Set PG/PC Interface…. This launches the OS-level configuration tool that controls all STEP 7 access points. The dialog is the single source of truth for layer 1 and layer 2 in the stack.

Step 2 — Select the PLCSIM Access Point

In the Interface Parameter Assignment Used list, scroll to and select the entry "PLCSIM (MPI)" (or PLCSIM (PROFIBUS) / PLCSIM (Ethernet) if you configured DP/PN). The trailing parenthetical indicates which subnet the virtual interface emulates.

  • For an S7-300 basic CPU connected via MPI → select PLCSIM (MPI).
  • For an S7-300 with integrated DP (e.g. CPU 315-2 DP) → select PLCSIM (PROFIBUS).
  • For an S7-300 PN/DP or S7-400 PN (e.g. CPU 314C-2 PN/DP, CPU 416-3 PN/DP) connected over Ethernet → select PLCSIM (Ethernet).

Click OK. Windows may prompt for elevation; allow it. The selection is now written to the registry under HKLM\SOFTWARE\Siemens\AUTSW\PGPCInterface\Assignment.

Step 3 — Verify the Subnet in the PLCSIM Window

Open PLCSIM. The dropdown in the title row selects the active subnet. Confirm it matches the access point chosen in Step 2:

  • Dropdown shows PLCSim(MPI) for MPI access point.
  • Dropdown shows PLCSim(PROFIBUS) for DP access point.
  • Dropdown shows PLCSim(Ethernet) for PN access point.

The default MPI address is 2; if your HW Config has a different MPI address for the CPU, click the MPI address box and change it. The address must match exactly — PLCSIM does not auto-discover.

Step 4 — Place the Simulated CPU in STOP or RUN-P

Block downloads are only accepted when the target is in STOP or RUN-P. A PLCSIM instance in pure RUN (the default after power-on) rejects all block transfers. Click the STOP button in the PLCSIM toolbar — the LED turns yellow, and the mode field reads "STOP".

Use RUN-P rather than RUN if you intend to do online program changes without re-downloading the entire program. The status bar in PLCSIM will show the current mode.

Step 5 — Perform the Download

Return to SIMATIC Manager. Right-click the OB1 block (or the S7 Program / Blocks folder) and choose Download → To Target System (or press Ctrl+L). The download dialog will report "Download to module successful" if the access point, subnet, and mode are aligned.

For first-time download of an entire station, right-click the SIMATIC 300 Station node and choose Download; this transfers the system data, then the OB1, then all subordinate blocks in one pass.

Step 6 — Place the CPU in RUN and Verify

After successful download, click RUN in PLCSIM (or RUN-P if you need to continue testing). Open Online → Monitor/Modify on OB1 to confirm the block is actually running. The MONITOR light in PLCSIM should pulse; the scan time will display in the diagnostic buffer.

CPU Type Compatibility with PLCSIM

A common secondary question is whether the CPU type matters for PLCSIM. The short answer: PLCSIM V5.x emulates every S7-300 and S7-400 CPU variant identically from the user's perspective — basic, F, DP, PN, PN/DP, and H-CPUs are all emulated at the same behavioral level. The only difference is the subnet you must select.

CPU Type Example Order Numbers Required Access Point
Basic (no DP/PN) 6ES7 312-1AE14-0AB0, 6ES7 314-1AG14-0AB0 PLCSIM (MPI)
DP variant 6ES7 315-2AH14-0AB0, 6ES7 317-2AK14-0AB0 PLCSIM (PROFIBUS) or PLCSIM (MPI)
PN/DP variant 6ES7 314C-2PN/DP, 6ES7 315-2EH14-0AB0 PLCSIM (Ethernet) or PLCSIM (PROFIBUS) or PLCSIM (MPI)
F-CPU 6ES7 315F-2PN/DP, 6ES7 317F-2PN/DP Same as PN/DP
S7-400 6ES7 412-2EK06-0AB0, 6ES7 416-3ER05-0AB0 PLCSIM (MPI) or PLCSIM (Ethernet)

So yes — you can use a 314C-2 PN/DP in PLCSIM; you simply have to select PLCSIM (Ethernet) as the access point, configure the CPU's PN interface with an IP address, and ensure PLCSIM is set to the matching Ethernet subnet. Many engineers prefer to keep a basic CPU in their test HW Config precisely to avoid this multi-subnet complexity during development.

Multi-subnet projects: If your real HW Config has both an MPI and a PROFINET subnet (e.g. an H-CPU with both), PLCSIM V5.x only emulates one subnet at a time. The "unselected" subnet is silently offline. Route only the blocks and connections you need to test through the active subnet.

Common Configuration Pitfalls

Beyond the access point, the following are the most frequent reasons a STEP 7 ↔ PLCSIM connection fails after a clean install:

  1. PG/PC interface set to a real adapter — Engineer selects PC Adapter (MPI) because that is what they use on the plant floor, then opens PLCSIM and expects the download to follow. It does not.
  2. Two PLCSIM instances running — Only one PLCSIM instance can be online at a time per access point. A second instance started from a different STEP 7 window locks the access point.
  3. MPI address mismatch — PLCSIM defaults to MPI 2. If HW Config uses MPI 3 (common when the engineering station is on a plant network), the download will hang indefinitely.
  4. NetPro not compiled — NetPro must be saved and compiled before block download. If NetPro is dirty, the connection table is not in the system data blocks and the connection is rejected.
  5. Firewall blocking local loopback — On Windows 10, a strict firewall profile can block the loopback (127.0.0.1) traffic that PLCSIM (Ethernet) uses. Add a firewall rule for the PLCSIM executable or temporarily disable the private profile firewall.
  6. Stale S7-PLCSIM registry entry — After uninstalling or upgrading, the access point may still be bound to a missing DLL. Reinstall PLCSIM with "Repair".
  7. STEP 7 and PLCSIM mismatch — PLCSIM V5.4 with STEP 7 V5.6 is supported, but PLCSIM V5.3 is not. A version mismatch produces a silent failure with no error message.

Troubleshooting Matrix

Use the matrix below to map error text to root cause and corrective action.

Error or Symptom Most Likely Cause Fix
"Unable to copy block OB1" PG/PC interface not PLCSIM Set access point to PLCSIM (MPI/PROFIBUS/Ethernet)
"Online: The connection to the target module cannot be established" CPU in RUN or wrong subnet Switch PLCSIM to STOP; verify access point subnet
Accessible Nodes shows nothing Access point set to a real adapter Change to PLCSIM access point; restart PLCSIM
Download hangs, never completes MPI address mismatch or NetPro dirty Match MPI address; save+compile NetPro
PLCSIM icon missing from Start menu PLCSIM not installed or installed before STEP 7 Repair PLCSIM install
Blocks download but CPU will not go to RUN OB1 or OB100 missing faulted; diagnostic buffer check Open CPU diagnostic buffer in PLCSIM
PLCSIM closes on second start Stale instance from previous session End PLCSIM process in Task Manager; restart
"Internal error: 0x0110" in PLCSIM log Version mismatch with STEP 7 Upgrade PLCSIM to match STEP 7 SP level

Advanced Diagnostics

When the standard fix does not work, escalate with the following diagnostic steps.

Check the S7-PLCSIM Trace

Enable the trace log in PLCSIM via Tools → Trace. The trace records every S7 connection establishment, block transfer, and abort. The log file is at %TEMP%\Siemens\S7-PLCSIM\Trace.log. Look for "connection refused", "timeout", or "access point not bound" entries.

Check the STEP 7 Diagnostic Buffer

Open PLC → Diagnostic/Setting → Diagnostic Buffer on the simulated CPU. A correctly configured session will show "Connection established from PG/PC". An empty buffer means the PG never made a connection — confirm the access point first.

Validate the Access Point from the Command Line

Use the s7onlinx.dll helper bundled with STEP 7. From a CMD window run:

"C:\Program Files\Siemens\Automation\S7-PLCSIM\s7pcs7.exe" -diag

The output lists all registered access points and which physical/virtual interface they are bound to. PLCSIM (MPI) should appear and resolve to PLCSIM.S7MPI.

Reset the Access Point via Registry

As a last resort, reset the PG/PC interface assignment through the registry. The key is HKLM\SOFTWARE\Siemens\AUTSW\PGPCInterface. Delete the Assignment subkey, then re-run Set PG/PC Interface. Back up the key first.

Caution: Registry edits should only be performed by administrators with a current backup. A misconfigured PG/PC interface can prevent all STEP 7 online operations, including against real plant hardware.

Verification Procedure

After applying the fix, run the following end-to-end check to confirm the simulation is fully functional:

  1. Open PLCSIM. The mode LED is yellow (STOP). The access point dropdown shows the correct subnet.
  2. In SIMATIC Manager, open Online → Accessible Nodes. The simulated CPU appears with its MPI/PROFIBUS/Ethernet address.
  3. Right-click the station and choose Download. The system data and OB1 transfer with no error.
  4. Open Online → Monitor/Modify on OB1. The block view shows current values updating per scan.
  5. Click RUN in PLCSIM. The mode LED turns green. The diagnostic buffer shows a clean startup.
  6. Force a value in a DB from Monitor/Modify. The value appears in the simulated process image.

If all six steps pass, the simulation environment is healthy and the original "Unable to copy block OB1" error will not recur for the same cause.

Long-Term Preventive Measures

To prevent recurrence when other engineers share the same workstation or when the same PC is also used for plant-floor programming:

  • Maintain two PG/PC interface profiles — Create one for simulation (PLCSIM access point) and one for real hardware (PC Adapter or Ethernet). Switch via Options → Set PG/PC Interface; do not rely on the default.
  • Document the access point in the project header — Add a text file in the STEP 7 project root noting which access point is required for first download. New engineers will see it on opening the project.
  • Always start PLCSIM before the first download — If the PG/PC interface is set to PLCSIM but PLCSIM is not running, the download will fail with the same "connection cannot be established" message. Train team members on the order of operations.
  • Keep PLCSIM and STEP 7 at the same SP level — Mixed SP levels work, but a clean aligned install reduces edge cases. Apply SP updates from the Siemens Industry Online Support portal.

FAQ

Why does STEP 7 report "Unable to copy block OB1" even though PLCSIM is running in RUN?

The PLCSIM RUN state is not the issue — the PG/PC interface is. STEP 7 cannot find the simulated CPU because the access point is bound to a real adapter (PC Adapter, NIC, etc.). Open Options → Set PG/PC Interface and change the assignment to PLCSIM (MPI), PLCSIM (PROFIBUS), or PLCSIM (Ethernet) to match the configured CPU subnet.

Can I download blocks when the simulated CPU is in pure RUN, or must I switch to STOP / RUN-P?

You must switch to STOP for an initial cold download, or to RUN-P for online program changes during runtime. Pure RUN rejects all block transfers. The PLCSIM toolbar has dedicated buttons for STOP and RUN-P, mirroring the real CPU mode selector.

Does the CPU type (basic, DP, PN/DP) matter for S7-PLCSIM V5.x?

No. PLCSIM emulates all S7-300 and S7-400 CPU variants identically. The only difference is which access point you select: basic CPUs use PLCSIM (MPI), DP-capable CPUs use PLCSIM (PROFIBUS) or PLCSIM (MPI), and PN/DP CPUs use PLCSIM (Ethernet), PLCSIM (PROFIBUS), or PLCSIM (MPI) depending on which subnet the project uses.

What is the difference between the S7ONLINE access point and the PLCSIM access point?

S7ONLINE is the default access point used by STEP 7 to reach physical CPUs over real adapters. The PLCSIM family of access points (PLCSIM (MPI), PLCSIM (PROFIBUS), PLCSIM (Ethernet)) routes STEP 7 traffic to the virtual PLCSIM instance over internal loopback instead of hardware. Switching from S7ONLINE to the PLCSIM access point is the key step in resolving block copy errors.

What if Accessible Nodes is empty after I change the access point?

First, confirm the PLCSIM window is still open and the access point dropdown inside PLCSIM matches the assignment in Set PG/PC Interface. Second, confirm the MPI address in PLCSIM matches the address in HW Config. Third, close and reopen both PLCSIM and SIMATIC Manager so both processes read the updated access point. If still empty, repair the PLCSIM installation to re-register the virtual adapter.

Back to blog