Fixing TIA Portal V15 PLCSIM S7DosWrapper.dll Load Failure

David Krause15 min read
SiemensTIA PortalTroubleshooting
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 running SIMATIC STEP 7 V15 (TIA Portal V15) Update 4 in combination with S7-PLCSIM V15 on Windows 7 Professional SP1 64-bit report a failure pattern in which the Start simulation button remains greyed out and clicking Go Online terminates the TIA Portal host process (Siemens.Automation.Frame.exe) without any user dialog. The Windows Error Reporting (WER) entry for the crash points to the following unhandled .NET exception:

System.IO.FileNotFoundException:
Could not load file or assembly
'Siemens.Automation.OnlineAccess.S7DosWrapper.dll' or one of its dependencies

The same project — including SCL blocks targeting a CPU 1515-2 PN (6ES7 515-2AM01-0AB0) FW 2.5 — compiles and simulates successfully on peer workstations that use the same TIA Portal build and Windows 7 image. The discrepancy therefore lies in the local TIA Portal / PLCSIM installation on the affected PC rather than in the project. Running Repair on both TIA Portal and S7-PLCSIM does not restore operation; only a full uninstall/reinstall cycle recovers the environment.

Engineering impact: The crashed Go Online path is shared by every online service — download, online monitor, compare, go online to PLCSIM, and trace download. Until the missing assembly is restored, no online operation against PLCSIM or a real CPU is possible.

Affected Environment

The following configuration matrix summarizes the conditions under which the failure has been reproduced. Use it to confirm that the host PC is inside the support envelope before escalating to a clean install.

Component Version / Build Notes
STEP 7 Professional (TIA Portal) V15 Update 4 Builds < V15 are not reproducible; UPD4/5/6 share the same .NET host
S7-PLCSIM V15 Installed as add-on, requires matching portal build
Windows Windows 7 Professional SP1 64-bit Last TIA Portal version officially supporting Win7 SP1 (32-/64-bit) and Win10 1607/1703
CPU family S7-1500 CPU 1515-2 PN (6ES7 515-2AM01-0AB0) FW 2.5 confirmed in the field
User account Standard / non-admin (initial install) Elevation of installer changes outcome

For the full release notes of TIA Portal V15, including the Windows 7 SP1 support clause, see the official SIMATIC STEP 7 / TIA Portal V15 readme. PLCSIM V15 delivery details are documented in the S7-PLCSIM V15 entry.

Root Cause Analysis

The Siemens.Automation.OnlineAccess.S7DosWrapper.dll is the managed interop layer that TIA Portal uses to enumerate TCP/IP route entries, configure the Siemens PLCSIM Virtual Ethernet Adapter, and validate NIC-level online reachability. It is installed together with the SIMATIC Automation Interface component and registered in the Global Assembly Cache (GAC) under the strong name Siemens.Automation.OnlineAccess.S7DosWrapper, PublicKeyToken=…. When the .NET runtime cannot resolve it on the probing path, the Online Access manager (loaded by Siemens.Automation.OnlineAccess.dll) throws a FileNotFoundException from its module initializer, which propagates out of the click handler and terminates the TIA Portal host process.

Three root causes account for the majority of field reports:

  1. Incomplete add-on install. The TIA Portal installer registers PLCSIM as a separate product. If PLCSIM is added or removed after the main TIA Portal installation without a matching portal Repair, the Online Access component reverts to a partial state where S7DosWrapper.dll is referenced by the manifest but the file is no longer present in %ProgramFiles(x86)%\Siemens\Automation\Portal V15\bin or the side-by-side assembly cache. A Repair on PLCSIM alone does not always re-stage the shared components owned by the TIA Portal base installer.
  2. Installer privilege model. The Go Online call attempts to install a low-level NDIS filter driver (the Siemens TCP/IP Discovery / PLCSIM Virtual Switch hook) and to write to the HKEY_LOCAL_MACHINE namespace under SOFTWARE\Siemens\Automation. If the TIA Portal installation was performed from a non-elevated shell, the installer silently skips the NIC adapter configuration and the registry keys that S7DosWrapper expects to find at runtime. The same workstation will still allow Open project and Compile because those paths do not touch the OS networking stack.
  3. Windows update or AV quarantine. Some post-install Windows Security updates and EDR products re-classify unsigned native dependencies of S7DosWrapper.dll (notably s7oiehsx64.dll, s7otblsxd.dll, and the S7DOS IOCTL driver) as unwanted. Quarantining any of these binaries yields the same FileNotFoundException at runtime, even though the managed DLL itself is present on disk.
Diagnostic tip: Open the assembly binding log to differentiate between "DLL missing" and "DLL blocked". Run the following in an elevated PowerShell on the affected PC and reproduce the crash once:
setx COMPLUS_EnableLog 1
setx COMPLUS_LogEnable 1
# Reproduce crash; review %TEMP%\SiemensAutomationFrame.*\binding\*.log
# Search for "Siemens.Automation.OnlineAccess.S7DosWrapper" and inspect the HRESULTS:
#   0x80070002 (FILE_NOT_FOUND)  -> the DLL is absent
#   0x80131500 (LOAD_FAILURE)    -> a native dependency failed to load (AV / driver)
#   0x80131040 (BIND_LOG)        -> assembly found but rejected by trust policy

Why a Standard Repair Does Not Fix It

The TIA Portal setup uses a transactional MSI composer (Siemens Setup Framework). Repair on the TIA Portal product re-stages binaries, but it does not roll back the registry hive to a state that matches a clean V15 base image, and it does not re-register the NDIS hooks that S7DosWrapper.dll requires. Similarly, Repair on the S7-PLCSIM product re-stages PLCSIM-specific resources but leaves the shared Online Access files untouched when the portal is detected as "installed". The combined effect is that both repairs report Success, yet the runtime resolver still cannot find the wrapper.

The reliable fix is therefore a clean uninstall of every TIA Portal-related product, followed by a single elevated install of the matching V15 base + UPD4 + PLCSIM in the correct order. The procedure is documented in the TIA Portal V15 installation manual (see TIA Portal V15 readme / installation guide).

Prerequisites Before Reinstalling

  1. Licenses — Collect your License Keys (CoL / ALM license key) for STEP 7 Professional V15, S7-PLCSIM V15, and any options (SCL, GRAPH, TIA Portal Multiuser). Store the existing license back to the Automation License Manager (ALM) if it is a local license so it is not lost during the uninstall.
  2. Installer media — Verify the TIA Portal V15 Update 4 installation package and the S7-PLCSIM V15 package are present locally (DVD, network share, or SSD). Mixing UPD4 base with a V15 PLCSIM without the matching UPD4 is a common source of repeated re-registration failures.
  3. User account — Use a member of the local Administrators group. The TIA Portal installer writes to %ProgramFiles%, registers NDIS components, and creates the Siemens Automation service. A standard user cannot perform these operations and the installer will log success while omitting the NDIS step.
  4. Windows update status — Apply the latest Windows 7 SP1 rollup and the SHA-2 code signing support update (KB4474419) before installing. TIA Portal V15 is signed with SHA-2; on a Win7 host missing the update, the installer can silently fail component registration.
  5. Antivirus exclusions — Add %ProgramFiles(x86)%\Siemens, %ProgramData%\Siemens, and the PLCSIM working directory to the AV/EDR exclusion list. This prevents the AV product from quarantining S7DosWrapper.dll native dependencies after install.
  6. Project backups — Back up the .ap15 project archive to a path outside C:\Users\<user>\AppData\Local\Siemens so it survives the uninstall.

Step-by-Step Resolution

  1. Open Control Panel → Programs and Features and uninstall, in the order listed:
    1. S7-PLCSIM V15
    2. SIMATIC S7-PLCSIM V15 support
    3. SIMATIC STEP 7 Professional V15 (and all options installed, e.g. SCL, PLCSIM add-ons, TIA Portal Multiuser)
    4. Siemens Automation License Manager
    5. Siemens SIMATIC Tools
  2. Delete residual directories after uninstall completes:
    rd /s /q "%ProgramFiles(x86)%\Siemens\Automation\Portal V15"
    rd /s /q "%ProgramFiles(x86)%\Siemens\Automation\PLCSIM V15"
    rd /s /q "%ProgramData%\Siemens\Automation"
    rd /s /q "%LocalAppData%\Siemens\Automation"
    rd /s /q "%AppData%\Siemens\Automation"
  3. Open Device Manager → Network adapters and uninstall any Siemens PLCSIM Virtual Ethernet Adapter entries, including the check-box for Delete the driver software for this device. This removes the half-registered NDIS miniport that the broken install leaves behind.
  4. Reboot. Confirm that the Siemens TCP/IP Discovery service is no longer present (run sc query "Siemens Automation Discovery").
  5. Right-click the TIA Portal V15 Setup launcher and select Run as administrator. Install with the default component selection. Do not toggle the S7-PLCSIM feature in the portal installer; the PLCSIM product is delivered as a separate installer.
  6. Reboot again. The portal installer registers the Online Access COM components and the GAC entries for Siemens.Automation.OnlineAccess.S7DosWrapper.dll only on the next login when the LSA providers refresh.
  7. Right-click the S7-PLCSIM V15 Setup and Run as administrator. Install to the default path. PLCSIM registers the PLCSIM Virtual Switch and the simulation runtime.
  8. Reboot a third time. This is the reboot that finalizes the NDIS driver binding that S7DosWrapper.dll queries on first use.
  9. Launch TIA Portal from the elevated shortcut (set Properties → Compatibility → Run as administrator on the Siemens.Automation.Portal.exe shortcut).
  10. Open the failing project, select the CPU 1515-2 PN device, and verify that Start simulation is no longer greyed out.
If you also use WinCC on the same host, install the TIA Portal base first, then the HMI add-on, then PLCSIM. The PLCSIM install performs GAC merges that conflict with HMI add-on versions if HMI is layered on top.

Verification Steps

  1. Open the TIA Portal project. In the project tree, right-click the S7-1500 device and select Start simulation. The PLCSIM instance window should appear with the project name populated in the title bar.
  2. Click Go Online. The Online Access icon in the status bar should switch from yellow to green within 3 seconds, and the S7-1500 should report Online in the project tree.
  3. Open the Online → Accessible nodes dialog. The PLCSIM instance should appear under the Siemens PLCSIM Virtual Ethernet Adapter interface with a MAC address matching the simulated CPU.
  4. Open Task Card → Watch and force tables and add the previously affected SCL block tags. Toggle a boolean tag from Force. The new value should be applied and read back within one OB1 cycle (default 1 ms for S7-1500).
  5. Cross-check the assembly resolver:
    [System.Reflection.Assembly]::Load("Siemens.Automation.OnlineAccess.S7DosWrapper, Version=15.0.0.0, Culture=neutral, PublicKeyToken=XXXXXXXXXXXXXXXX") | Select FullName
    A clean install returns the strong name without raising FileNotFoundException.
  6. Open Windows Event Viewer → Applications and Services Logs → Siemens Automation and confirm no error entries with EventID 2001 / 2002 for the current session.

Diagnostic Reference: Event Viewer Codes

When TIA Portal or PLCSIM silently fails, the Siemens Automation event log is the authoritative source. The following table maps the most common EventIDs to a remediation path.

EventID Source Meaning Recommended action
1001 Siemens PLCSIM PLCSIM service started Informational; no action
2001 Siemens Automation OnlineAccess initialization failed (missing S7DosWrapper) Run the reinstall procedure; check AV exclusions
2002 Siemens Automation NDIS filter driver not bound Re-register the Siemens PLCSIM Virtual Switch from the post-install script
2003 Siemens Automation License lookup failed (CoL/ALM) Repair the Automation License Manager and re-import the license
3001 S7-PLCSIM Simulation startup aborted (online protocol) Check that the simulated CPU is online-capable and that no other PLCSIM instance holds the port
4096 / 4099 Siemens PLCSIM Application crash dump Capture %LocalAppData%\Siemens\PLCSIM\CrashDumps and share with Siemens Support

Compatibility Matrix: TIA Portal V15 and Windows 7 SP1

Microsoft retired mainstream support for Windows 7 SP1 in January 2015 and extended support ended in January 2020. TIA Portal V15 (released March 2018) is the last V15 generation release that explicitly supports Windows 7 SP1 (32- and 64-bit) and Windows 10 LTSB 1607 / SAC 1703. The compatibility matrix that governs this support is published in the TIA Portal V15 readme.

Windows Edition Architectures TIA Portal V15 Notes
Windows 7 SP1 (Pro/Ultimate/Enterprise) 32-bit, 64-bit Supported (last version) KB4474419 (SHA-2 support) required for signed installer
Windows 10 SAC 1607 / 1703 64-bit Supported Later Win10 builds not in matrix
Windows 10 LTSB 2015 / 2016 64-bit Supported Verify with the deployment guide for your LTIB image
Windows Server 2012 R2 64-bit Supported For terminal-server multi-user
Windows 8.1 / Windows Server 2016 64-bit Not in matrix Will install; TIA Portal V16+ is the official support boundary

On hosts outside this matrix, TIA Portal V15 will install and run in most online scenarios, but the Online Access plumbing — and specifically S7DosWrapper.dll — depends on OS version-specific NDIS APIs. Moving to a V15-supported Windows edition is the only durable solution; the repair procedure is a workaround.

Workarounds When Reinstall Is Not Possible

On production engineering workstations with locked-down images, a full reinstall can require a maintenance window that is not available. The following mitigations recover functionality without re-imaging the PC.

  • Re-register the wrapper manually. Copy the missing assembly back into the GAC using the elevated gacutil from the .NET Framework SDK, then re-register the NDIS dependency:
    gacutil -i "C:\Program Files (x86)\Siemens\Automation\Portal V15\bin\Siemens.Automation.OnlineAccess.S7DosWrapper.dll"
    cd /d "%ProgramFiles(x86)%\Siemens\Automation\Portal V15\Drivers\Discovery"
    SiemensTcpIpDiscoveryInstall.exe -i
    net start "SiemensTcpIpDiscovery"
  • Disable the Siemens PLCSIM Virtual Ethernet Adapter in Device Manager if the TIA Portal host is used only for offline engineering. With the virtual adapter disabled, Online Access skips the NDIS probe and S7DosWrapper no longer throws on startup. Note: PLCSIM instance attach from this workstation is not possible in this state.
  • Reset the Online Access cache at %LocalAppData%\Siemens\Automation\Portal V15\OnlineAccess by deleting the cache subfolder and relaunching the portal. This forces a fresh enumeration and is often sufficient when the crash is intermittent rather than deterministic.
  • Use a project-bundled simulation by selecting Compile → Software (as simulation) and loading it directly into PLCSIM via File → Open PLCSIM project, bypassing the Go Online wizard. This path does not exercise S7DosWrapper on the host PC.

Field-Proven Caveats

  • Order of install matters. A TIA Portal V15 base + UPD4 installed after a previous V15.0 trial leaves orphaned registry keys under HKLM\SOFTWARE\Wow6432Node\Siemens\Automation. The repair routine will not touch them; only a clean uninstall and a fresh install will produce a deterministic GAC layout.
  • Coexistence with TIA V16 / V17. The Go Online wizard inside V15 has a known issue when a V16 or V17 portal is also installed on the same PC. S7DosWrapper.dll is shared across the three versions and the GAC resolver picks the latest version, which is not always binary-compatible. Keep only one TIA Portal major version per workstation, or set Addins → Manage TIA Portal versions to pin V15.
  • CPU firmware selection. V15 only supports CPU 1515-2 PN firmware up to 2.6.x. A V15 portal can be misdirected to load a 2.7+ project exported from a newer portal; the compile succeeds but the Go Online path can fail. Match the firmware to the portal version.
  • PLCSIM V15 vs PLCSIM Advanced. S7-PLCSIM V15 is the original (per-CPU-instance) simulator that ships as a TIA Portal add-on. S7-PLCSIM Advanced is a separate product line (V1.x → V6.x) with its own runtime that does not use S7DosWrapper.dll. If you migrate to PLCSIM Advanced, the TIA Portal V15 Go Online path is unchanged because PLCSIM Advanced exposes an external API; the V15 portal will continue to consume S7DosWrapper for NIC-level discovery, but the simulation launch goes through the PLCSIM Advanced service.

Preventive Checklist

  • Install TIA Portal only from an elevated shell, and document the Run as administrator requirement in your engineering workstation build sheet.
  • After every Windows cumulative update on Win7 SP1, verify the Siemens TCP/IP Discovery service is still set to Automatic and the Siemens PLCSIM Virtual Switch adapter is still bound.
  • Maintain an offline copy of the TIA Portal V15 UPD4 installer and the S7-PLCSIM V15 installer on the engineering file server. Avoid pulling a 3-year-old TIA Portal image from the OEM share when you only need to recover one workstation.
  • Configure your EDR/AV vendor to trust the %ProgramFiles(x86)%\Siemens tree and the GAC assemblies published by Siemens Automation.
  • Run a smoke-test script (see Verification Steps) at the end of every TIA Portal reinstall and store the result in the workstation asset record.

When to Escalate

If the reinstall procedure in this article does not restore Go Online with PLCSIM, escalate to Siemens Industry Online Support with the following artifacts in a single ZIP:

  • TIA Portal Help → Support information → Archive (creates Siemens_SupportInfo_*.zip).
  • PLCSIM V15 install log from %TEMP%\Siemens\S7-PLCSIM_V15_Install.log.
  • Event Viewer → Applications and Services Logs → Siemens Automation export.
  • The COMPLUS assembly binding log captured in Root Cause Analysis.
  • Screenshot of the WER crash with the System.IO.FileNotFoundException stack trace.

Open a Service Request (SR) at the Siemens Industry Online Support portal and reference the affected component (online access / PLCSIM / NIC driver). The TIA Portal V15 readme lists the official customer-support contact path per region.

What causes the TIA Portal V15 crash with the S7DosWrapper.dll error?

The crash is triggered when the .NET runtime cannot resolve the managed assembly Siemens.Automation.OnlineAccess.S7DosWrapper.dll. The three most common root causes are (1) an incomplete PLCSIM add-on install that left the Online Access component half-registered, (2) a TIA Portal install performed without administrator rights, which silently skipped the NDIS filter driver and registry writes the wrapper needs at runtime, and (3) an antivirus or EDR product that quarantined one of the wrapper's native dependencies. A clean elevated reinstall of TIA Portal V15 UPD4 and S7-PLCSIM V15 resolves all three.

Why does Repair not fix the PLCSIM "Go Online" failure?

The Siemens Setup Framework re-stages binaries on Repair but does not re-register the NDIS hooks or rewrite the registry hive that S7DosWrapper.dll requires. Repair on PLCSIM only re-stages PLCSIM resources and leaves the shared Online Access files untouched when the TIA Portal base is detected as installed. A full uninstall/reinstall of both products in the correct order is required.

Is TIA Portal V15 supported on Windows 7 SP1?

Yes. TIA Portal V15 is the last generation that explicitly supports Windows 7 SP1 (32- and 64-bit) and Windows 10 SAC 1607/1703. The Windows 7 SP1 host must have KB4474419 (SHA-2 code signing support) installed for the TIA Portal V15 signed installer to register components correctly.

How do I start simulation when the Start simulation button is greyed out?

The button is greyed out when the Online Access subsystem cannot enumerate a target device because S7DosWrapper.dll failed to load. Run the elevated reinstall described in this article, reboot three times, and re-launch the portal from a shortcut configured with Run as administrator. After verification, the button enables and PLCSIM launches via Start simulation or Go Online → Start simulation.

Does the S7DosWrapper.dll issue affect S7-PLCSIM Advanced V6 too?

No. S7-PLCSIM Advanced is a separate product line that exposes its own API and runtime service. The Go Online path inside TIA Portal V15 still uses S7DosWrapper.dll for NIC-level discovery, but the PLCSIM Advanced launch path is independent. On Windows 11, where PLCSIM Advanced V6 is supported, the typical failure mode is the PLCSIM Advanced service not starting — inspect Event Viewer for the PLCSIM Advanced service entry and the Windows Security event log for a SCEP / SmartScreen block on the unsigned driver.

What Event Viewer IDs should I check after the crash?

Look under Applications and Services Logs → Siemens Automation. EventID 2001 indicates an OnlineAccess initialization failure (missing S7DosWrapper), 2002 indicates the NDIS filter driver is not bound, and 3001 indicates a simulation startup abort. The PLCSIM crash-dump EventIDs are 4096 and 4099 — capture %LocalAppData%\Siemens\PLCSIM\CrashDumps when these fire.

Back to blog