Problem Definition: PRODAVE on Windows 10 SCADA Hosts
Engineers maintaining SIMATIC S7-300 stations controlled by SCADA software (WinCC, Citect, InTouch, iFIX, or proprietary HMIs) on modern workstations routinely hit a wall when they attempt to install PRODAVE MPI / PRODAVE S7 on a Windows 10 host. The original PRODAVE library (Windows DLL wrapper around the w95_s7.dll / Prodave6.dll MPI driver) was compiled and signed for the 32-bit Windows NT 5.x/6.1 kernel family, and only specific builds were tested against the Microsoft OS release matrix published in Siemens Support entry 8755573.
Typical failure signatures observed in field deployments:
- SCADA runtime logs
ERROR_PRODAVE_LOAD_LIBRARY (0x8007053A)orLoadLibrary("Prodave6.dll") failedimmediately after service start. - Siemens SIMATIC PC Adapter USB A2 (6GK1 571-1AA00 / 6GK1 571-2AA00) enumerates under USB but PRODAVE returns
0xFFFEinload_tool_ex. - MPI/DP-USB driver reports
Device not started (Code 10)in Device Manager after Windows 10 1903+ cumulative updates. - Application event log shows
SideBySideerror:Microsoft.VC80.CRT,processorArchitecture="x86"manifest mismatch. - Telemetry from
prodave_s7_test.exestops atSetActiveInterface: E0020when stepping intoGetCpuInfo.
The root cause is a combination of (a) PRODAVE being a 32-bit, kernel-mode-driver-dependent library, (b) Windows 10 disabling legacy simbad-mpi and dp-base miniports after the 1709 Fall Creators Update, and (c) signed-driver enforcement (Driver Signature Enforcement / HVCI) rejecting the unsigned sfc32.sys shipped in PRODAVE 6.0/6.2.
PRODAVE Product Family Overview
PRODAVE (Prozessdatenverkehr / Process Data Traffic) is the Siemens C/C++ API for direct PC-to-S7 communication without TIA Portal or STEP 7. It is sold as a runtime toolkit with a development license and is still actively shipped for new installations, though its use has shifted toward maintenance contracts and small machine builders.
| Catalog Number | Package | API Set | Distribution | Status |
|---|---|---|---|---|
| 6ES7807-2BA00-0YA0 | PRODAVE MPI V5.0 | MPI/DP via CP5x11/PC-Adapter | CD, 16/32-bit | Discontinued |
| 6ES7807-3BA00-0YA0 | PRODAVE MPI V6.0 | MPI/DP | CD, 32-bit | Discontinued |
| 6ES7807-4BA00-0YA0 | PRODAVE MPI V6.1 | MPI/DP | CD, 32-bit | Discontinued |
| 6ES7807-4BA02-0YA0 | PRODAVE MPI/IE V6.2 | MPI, PROFIBUS, ISO-on-TCP, TCP | CD, 32-bit | Released for Win7 |
| 6ES7807-4BA03-0YA0 | PRODAVE S7 V6.6 (MPI/IE) | Adds S7-1200/1500 partial support | DVD/Online, 32/64-bit | Current line |
The 6.6 release (MLFB 6ES7807-4BA03-0YA0) is the only build that carries an explicit Windows 10 qualification entry, and it is delivered as an online software package (SWE_CD_PRODAVE_V66 on the Siemens Online Software Delivery server).
Windows OS Compatibility Matrix (PRODAVE 6.x)
The authoritative matrix is Siemens entry ID 8755573. The table below distills the practical outcome a maintenance engineer can expect:
| PRODAVE Version | Win XP SP3 | Win 7 (32/64) | Win 8.1 (32/64) | Win 10 1507–1607 | Win 10 1709–22H2 | Win 11 21H2+ | Win Server 2012 R2 | Win Server 2016/2019 |
|---|---|---|---|---|---|---|---|---|
| 5.0 / 5.1 | Yes (32) | No | No | No | No | No | No | No |
| 6.0 | Yes (32) | Partial* | No | No | No | No | No | No |
| 6.1 | Yes (32) | Yes (32) | No | No | No | No | Partial* | No |
| 6.2 | Yes (32) | Yes (32) | Yes (32) | Yes (32)* | No | No | Yes (32)* | No |
| 6.6 (MPI/IE) | No | Yes (32/64) | Yes (32/64) | Yes (32/64) | Yes (32/64) | Yes (32/64)* | Yes | Yes (32/64) |
*Partial = works on first install only; breaks after major Windows cumulative updates that update the USB hub driver stack. Microsoft kb3033929 (SHA-2 driver signing) and the 1709 Fall Creators Update are the most common breaking points.
simbad-mpi miniport and PRODAVE 6.2 stops loading. Plan PRODAVE 6.6 for any new deployment.Root Cause of PRODAVE Failures on Windows 10
Three independent failure modes stack on top of each other. Diagnose in this order before any code change:
-
Driver signature enforcement (DSE / HVCI). Windows 10 1607 enables Secure Boot enforcement by default. The PRODAVE 6.2 driver
sfc32.sysis signed with a SHA-1 certificate that Microsoft has revoked in trust stores starting withkb3033929. Verify withcertutil -verify sfc32.sys; expectERROR: A certificate chain could not be built to a trusted root authority (0x800B010A). -
Side-by-side CRT mismatch. PRODAVE 6.2 requires
Microsoft.VC80.CRTv8.0.50727.6195. Windows 10 ships v8.0.50727.9557 by default. Symptom:SideBySideevent log ID 33, application fails onLoadLibrary. Fix by extracting the manifest from the original MSI and pinning to the specific CRT version withsxstrace. -
USB enumeration change. Starting with Windows 10 1809, the USB hub driver no longer exposes the SIMATIC PC Adapter A2 as a virtual COM port; instead it appears as a generic HID. PRODAVE 6.2
load_toolonly enumerates COM1..COM256. Override by editing the registry entryHKLM\SOFTWARE\Siemens\SINEC\MPI\Interfacesand adding the bus enumerator path manually, or move to PRODAVE 6.6 which uses the newSiemens USB-MPIclass GUID.
For CPUs with virtualization-based security (VBS) enabled (default on HP/Dell business SKUs from 2020), you must additionally disable Memory Integrity in Settings → Privacy & Security → Windows Security → Device Security → Core Isolation before the PRODAVE driver will load.
Solution Path A: Upgrade to PRODAVE 6.6 (MPI/IE)
The cleanest engineering solution is to license PRODAVE S7 V6.6 (MLFB 6ES7807-4BA03-0YA0) and migrate the SCADA tag database. The 6.6 build ships native 64-bit DLLs (Prodave6_x64.dll, Prodave6_mpi.dll, Prodave6_ie.dll) and is signed with the current Siemens code-signing certificate (CN = Siemens AG, O = Siemens AG, SHA-256 fingerprint in the installer). It also adds the SetActiveInterfaceEx2 API which exposes the Windows 10 USB enumerator path directly.
Installation steps on a Windows 10 22H2 x64 SCADA host:
- Verify .NET Framework 4.8 and Visual C++ 2005–2022 Redistributables are installed (
vc_redist.x64.exefrom the PRODAVE 6.6 setup disk). - Run
Setup.exeas Administrator. Select PRODAVE MPI/IE for Windows 10/11 (x64) option. - When prompted, install the SIMATIC PC Adapter USB driver (rev. 1.5.0.0, dated 2022-08) rather than the legacy driver.
- Confirm
C:\Program Files\Siemens\PRODAVE_V66\Bin\prodave_s7_test.exereturnsConnection established to CPU 314C-2 PN/DP, rack 0, slot 2. - From the SCADA side, re-point the tag addressing function to
Prodave6_x64.dlland recompile the C/C++ wrapper or .NET P/Invoke layer.
load_tool to load_tool_ex2 and changes the connection descriptor to a 64-byte structure. C code written for 6.0/6.1 must be recompiled; the linker will fail with unresolved external on legacy symbols. Plan a 2-3 day re-test window.Solution Path B: Migrate to SIMATIC NET PC Software
For new SCADA deployments, retire PRODAVE entirely and adopt SIMATIC NET PC Software (release 2022-05 or newer, MLFB 6GK1704-1LW08-3AA0). SIMATIC NET exposes the same S7 data blocks as OPC DA 2.0/3.0, OPC UA, and named S7 connections; the SCADA simply consumes the OPC tag database.
| Feature | PRODAVE 6.6 | SIMATIC NET 2022 |
|---|---|---|
| Direct C/C++ API | Yes | No (use OPC) |
| OPC DA 3.0 server | No | Yes (built-in) |
| OPC UA server | No (via 3rd party) | Yes (built-in) |
| S7-300/400 support | Full | Full |
| S7-1200/1500 support | Partial (optimized blocks blocked) | Full with slot/TIA portal |
| Windows 10/11 certified | Yes (6.6 only) | Yes |
| License cost (approx.) | €450 runtime + €1,800 dev | €1,200 (S7-1200) to €3,800 (PC station) |
SIMATIC NET also resolves the S7-300 firmware–to–Windows 10 driver stack end-to-end because it ships the sinumerik-mpi miniport that the Siemens certification team has tested against the latest cumulative update set.
Solution Path C: Third-Party / Open-Source S7 Library
When license budget is constrained, the well-known open-source Snap7 library (current release 1.4.2, source on the project mirrors) provides a stable, MIT-licensed C/C++/C#/Python/Java interface to S7-300/400/1200/1500. It is fully Win10/11 compatible, ships as a 32- and 64-bit snap7.dll / snap7.lib, and is actively patched for every new Windows release.
Minimal C# example to read a DB1 from a CPU 315-2 PN/DP at 192.168.0.10, rack 0, slot 2:
using Snap7;
using System;
S7Client client = new S7Client();
int rc = client.ConnectTo("192.168.0.10", 0, 2, 1500);
if (rc != 0) { Console.WriteLine($"Connect error 0x{rc:X}"); return; }
byte[] buffer = new byte[32];
client.DBRead(1, 0, buffer.Length, buffer);
Console.WriteLine($"DB1.DBD0 = {BitConverter.ToSingle(buffer, 0)}");
client.Disconnect();
Snap7 supports TCP, ISO-on-TCP, and MPI via the Snap7MPI wrapper. It does not require STEP 7 or TIA Portal on the SCADA host.
Solution Path D: OPC UA Migration
S7-300 with CP 343-1 Lean/Advanced firmware V2.x+ ships a built-in OPC UA server (firmware ≥ V3.0.0 on CP 343-1 part numbers 6GK7 343-1EX30/6GK7 343-1GX30). Activate the server in STEP 7 V5.6 / V5.7 under CP Properties → OPC UA, generate the security certificates, and the SCADA consumes the UA endpoint directly. No PRODAVE, no SIMATIC NET, no Windows-driver dependency on the SCADA host.
For S7-300 stations without a CP, retrofit a CP 343-1 Lean (6GK7 343-1EX21-0XE0) and migrate the SCADA to any modern OPC UA client (WinCC 7.5, Ignition 8.1, WinCC Unified). The legacy PRODAVE/OPC DA stack can then be retired in one project.
Solution Path E: Virtualization-Based Legacy Hosting
When the SCADA application cannot be recompiled (signed binaries, vendor lockdown) and PRODAVE 6.6 is not affordable, run PRODAVE inside a Windows 7 SP1 or Windows Server 2008 R2 VM on the Windows 10 host. The VM must have direct access to the USB controller; use Hyper-V USB passthrough (VMConnect → USB) or VMware Workstation Pro "Connect USB device on power on".
Validation checklist for VM-based PRODAVE:
- Assign a dedicated USB 2.0 root hub to the VM, not the hub shared with keyboard/mouse.
- Disable USB selective suspend in the guest power plan (
powercfg /energyreport should show noUSB Suspendwarnings). - Pin the VM CPU affinity to physical cores 0 and 1 to keep PRODAVE tick latency below 4 ms.
- Set the SCADA polling cycle to a multiple of the VM timer slice (15 ms) to avoid drift.
This approach adds 5-15 % CPU overhead and one extra point of failure (the hypervisor USB stack) but is the only zero-code-change path to keep PRODAVE 6.2 alive on a Windows 10 host.
Decision Matrix: Which Path Fits Your Project
| Scenario | Recommended Path | Effort | Risk |
|---|---|---|---|
| New SCADA project, S7-300 with CP343-1 ≥ V3.0 | D – OPC UA direct | Low | Low |
| Existing WinCC 7.x with PRODAVE tags | B – SIMATIC NET OPC DA | Medium | Low |
| Custom C/C++ SCADA, license available | A – PRODAVE 6.6 | Low (rebuild only) | Low |
| Custom C/C++ SCADA, no budget | C – Snap7 | Medium (rewrite API) | Medium |
| Legacy SCADA, no source code | E – VM host | Low | High |
| Air-gapped plant, no internet for Snap7 | A or B | Medium | Low |
Troubleshooting Matrix: PRODAVE on Windows 10
| Symptom | Likely Cause | Diagnostic Command | Fix |
|---|---|---|---|
LoadLibrary Prodave6.dll failed 0xC1 |
32/64-bit mismatch | dumpbin /headers Prodave6.dll |
Recompile SCADA target to x86 or move to Prodave6_x64.dll (6.6+) |
SetActiveInterface returns E0020 |
USB driver not started | sc query SiemensMPI |
Reinstall USB-MPI driver, disable driver signature enforcement only if test bench |
Connection lost after 30 s |
TCP keepalive vs. PRODAVE timeout |
wireshark on port 102 |
Set SetConnectionTimeout(20000) in API and adjust HKLM\SOFTWARE\Siemens\SINEC\Timeout
|
BSOD ndis.sys on shutdown |
HVCI conflict | Event Viewer → System | Disable Core Isolation, rollback to PRODAVE 6.6 signed driver |
No COM port for PC Adapter |
USB enumerator change in Win10 1809+ | Device Manager → View → By connection | Install SIMATIC PC Adapter USB driver 1.5.0.0+ or use PRODAVE 6.6 |
SideBySide event 33 |
VC++ 2005 SP1 CRT missing | sxstrace trace -logfile:trace.etl |
Install vcredist_x86.exe for VC8 SP1 6195 |
Read returns S7_DATA_NEG_RESPONSE |
DB size mismatch in CPU | STEP 7 → PLC → Monitor/Modify | Align SCADA DB offset to actual DB length in PLC |
Verification Procedure After Migration
- From the SCADA host, open a command prompt and run
telnet <plc-ip> 102. A successful TCP connect confirms ISO-on-TCP path is open. - Use PRODAVE 6.6
prodave_s7_test.exe(or the equivalent Snap7snap7client.exe) to read DB1.DBD0 and DB1.DBD4. Verify the values match the engineering tags. - Force a CPU stop/run from STEP 7 and confirm the SCADA recovers within the configured reconnection window (default 10 s).
- Run a 24-hour soak test with a logging script capturing
GetCpuInfolatency every 60 s. Reject any sample above 500 ms. - Power-cycle the SCADA host and the PLC simultaneously. Confirm the SCADA auto-reconnects within 30 s and re-synchronizes all tags.
Engineering Best Practices
- Always order PRODAVE 6.6 (6ES7807-4BA03-0YA0) for new deployments; PRODAVE 6.2 is end-of-support and 6.0/6.1 are obsolete.
- Document the Windows build number (e.g., 22H2 OS Build 19045.3803) on the SCADA host in the plant asset register. This is required to interpret any future PRODAVE driver-stack errors.
- Maintain a "golden image" of the SCADA host with all required C++ runtimes, signed drivers, and OPC foundations. Use a controlled OS upgrade cadence (e.g., one major Windows update per quarter) to keep PRODAVE 6.6 stable.
- If the plant has any S7-300 stations earmarked for upgrade to S7-1500, plan an OPC UA path now to eliminate the PRODAVE dependency entirely.
- Keep a fallback to PRODAVE 6.2 in a Windows 7 SP1 VM for emergency read-only diagnostics; never let it become the production path.
Can PRODAVE 6.2 run on Windows 10 without any modification?
It runs on Windows 10 1507–1607 (32-bit, first install only) but fails after the Fall Creators Update 1709 because the unsigned sfc32.sys driver is rejected by Driver Signature Enforcement. For reliable operation on Windows 10 1709–22H2, upgrade to PRODAVE 6.6 (6ES7807-4BA03-0YA0).
Do I have to downgrade Windows to Windows 7 to use PRODAVE?
No. Downgrading is not a sustainable option. Replace PRODAVE 6.2 with PRODAVE 6.6, or migrate to SIMATIC NET 2022, Snap7, or a direct OPC UA connection on a CP 343-1. The VM-with-Windows-7 fallback is the only viable reason to keep an older host OS.
What is the part number for the Windows-10-compatible PRODAVE?
PRODAVE S7 V6.6 MPI/IE, MLFB 6ES7807-4BA03-0YA0, is the only build with a Windows 10/11 qualified entry. It is delivered via the Siemens Online Software Delivery (OSD) portal as package SWE_CD_PRODAVE_V66.
Is there a free, Windows-10-compatible replacement for PRODAVE?
Yes. Snap7 (release 1.4.2) is an open-source C/C++/C#/Python/Java library with native 32- and 64-bit Windows 10/11 support. It implements the full S7 communication protocol over TCP, ISO-on-TCP, and MPI and is widely used for brownfield SCADA migrations where PRODAVE licensing is impractical.
Which Siemens support article is the authoritative compatibility reference?
Siemens Support entry 8755573 is the official compatibility matrix for PRODAVE MPI versions versus Microsoft Windows operating systems. Always cross-check this entry before starting a new SCADA host installation.