Resolving TIA Portal V16 IMSTSQL2016EXP_SCADA Installation Error

David Krause10 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 Description: IMSTSQL2016EXP_SCADA Installation Failure

The TIA Portal V16 (STEP 7 / WinCC V16) installation package terminates during the database component deployment phase with the following installer event:

Component: Microsoft SQL Server 2016 Express (SCADA instance)
Return code : -1
Status      : FAILED
Event ID    : IMSTSQL2016EXP_SCADA

The Setup.exe process aborts before reaching WinCC Professional, WinCC Unified, or the Start Drive commissioning routines. Subsequent retries from the same image produce identical failures because the partial install writes a corrupted %ProgramFiles%\Siemens\Automation\SIEMENS_TIA_PORTAL_V16 tree and leaves SQL Express services registered but non-functional.

Field note: The error string IMSTSQL2016EXP_SCADA is not a Microsoft SQL setup code. It is a Siemens TIA Portal Setup wrapper identifier prefixed with IMS- and suffixed with the affected instance (T-SQL-EXP-SCADA). The actual underlying MSI return code is logged in %TEMP%\Siemens\TIA_Portal_V16\Logs\ and must be read to confirm SQL as the cause.

Root Cause: Windows 10 Build Incompatibility with SQL Express 2016 Bootstrapper

TIA Portal V16 was released against the SQL Server 2016 Express bootstrapper (file sqlexpress2016_x64.exe, bundle revision 13.0.4001.0). That bootstrapper is only digitally signed and tested against specific Windows 10 build families. Per the official TIA Portal V16 release notes (entry ID 109772706 on Siemens Industry Online Support), the supported Windows 10 editions are:

Windows 10 Edition Build / Version Supported by TIA V16
Home (64-bit) 1809 (Build 17763) Yes
Home (64-bit) 1903 (Build 18362) Yes
Professional (64-bit) 1809 (Build 17763) Yes
Professional (64-bit) 1903 (Build 18362) Yes
Professional (64-bit) 1909 (Build 18363) Limited – install logs show SQL Express bootstrapper rejection
Professional (64-bit) 2004 / 20H1 (Build 19041) Not supported
Professional (64-bit) 20H2 (Build 19042) Not supported – triggers IMSTSQL2016EXP_SCADA
Enterprise (64-bit) 1809, 1903 Yes
IoT Enterprise 2015 LTSB 10240 / Threshold 2 Yes
IoT Enterprise 2016 LTSB 14393 / Anniversary Update Yes
IoT Enterprise 2019 LTSC 17763 / 1809 Yes
Enterprise LTSC 2019 17763 Yes
Windows 11 (any edition) Build 22000+ No (use TIA V17 or newer)

The build reported in the original failure (Windows 10 Pro, 64-bit, build 19042) corresponds to the 20H2 feature update, which post-dates the TIA V16 GA cutoff. The SQL Server 2016 Express bootstrapper performs an OS version check at the start of SQLEXPR_x64_ENU.exe and returns exit code 0x800F0922 on unsupported builds, which the Siemens setup wrapper re-labels as IMSTSQL2016EXP_SCADA.

Confirm the OS Build and Installer Log Fingerprint

Before any remediation, capture the host fingerprint so the failure can be matched to a known compatibility matrix entry:

  1. Open winver from the Start menu and record the exact build string (e.g., Version 20H2 (OS Build 19042.1586)).
  2. Open an elevated PowerShell session and run:
    Get-ComputerInfo | Select-Object WindowsProductName, WindowsVersion, OsBuildNumber, OsHardwareAbstractionLayer
  3. Confirm .NET Framework versions (TIA V16 requires 4.6.2 minimum, 4.8 recommended):
    Get-ChildItem 'HKLM:\SOFTWARE\Microsoft\NET Framework Setup\NDP' -Recurse | Get-ItemProperty -Name version -EA 0 | Where-Object { $_.PSChildName -match '^(?!S)\p{L}' } | Select-Object PSChildName, version
  4. Inspect the TIA Setup log for the underlying MSI error:
    Get-Content "$env:TEMP\Siemens\TIA_Portal_V16\Logs\Siemens.TIA.Portal.Setup.log" -Tail 200 | Select-String -Pattern 'IMSTSQL|0x[0-9A-F]{8}|SQL Server'

A typical fingerprint inside the log is:

MSI (s) (A4:5C) [HH:MM:SS]: Product: SQL Server 2016 Express -- Installation failed.
MSI (s) (A4:5C) [HH:MM:SS]: Windows Installer installed the product. Product Name: SQL Server 2016 Express. Product Version: 13.0.4001.0. Product Language: 1033. Installation success or error status: 1638.
Component: IMSTSQL2016EXP_SCADA
ResultCode: -1
MSI status 1638 = "Another version of this product is already installed." This is the most common secondary symptom on a host that previously had TIA V14/V15 with its own SQL Express instance, or that has an OEM pre-installed SQL Express 2014/2017 instance bound to the SQLEXPRESS instance name.

Solution Path A – Align the Operating System to a Supported Build

The cleanest path is to bring the host back to a Windows 10 build explicitly tested by Siemens for TIA V16. The compatibility tool at Siemens Compatibility Tool must be used as the source of truth for the engineering workstation configuration.

  1. Back up all TIA Portal projects, HMI runtime archives, and PLC library archives. The V16 .ap16 / .al16 files are not forward-compatible with V17+ without manual export.
  2. Download the official Windows 10 1903 (Build 18362.30) or 1809 (Build 17763.316) ISO from the Volume Licensing Service Center or the Media Creation Tool, choosing Do not keep personal files if a clean engineering image is acceptable.
  3. Perform a feature update downgrade by mounting the ISO and running setup.exe /auto upgrade /quiet /DynamicUpdate enable from a clean boot, then disable Windows Update after install to prevent the 19042 patch from being reapplied.
  4. Reinstall TIA Portal V16 from the original Setup.exe. The SQL Express 2016 bootstrapper will now complete the IMSTSQL2016EXP_SCADA step.
  5. Confirm SQL service startup:
    Get-Service 'MSSQL$WINCCPLUSMI' | Select-Object Name, Status, StartType
    Expected: Running, Automatic.

Solution Path B – Pre-install a Supported SQL Express 2016 Instance

If the Windows 10 build cannot be changed (locked corporate image, audit, or validated production engineering image), the SQL Express 2016 instance can be staged manually. This makes the TIA Setup see the instance as already present and skip the failing bootstrapper component.

  1. Download SQL Server 2016 Service Pack 3 Express (KB 5013111) from the official Microsoft catalog. The signed package is SQLServer2016SP3-KB5003279-x64-ENU.exe or SQLEXPR_x64_ENU.exe (Build 13.0.6300.2). Note: the SP3 refresh removes the OS build gate that blocks install on 19042+.
  2. Run the installer with the same instance naming convention TIA expects:
    SQLEXPR_x64_ENU.exe /ACTION=Install /FEATURES=SQLEngine /INSTANCENAME=WINCCPLUSMI /SQLSYSADMINACCOUNTS="BUILTIN\Administrators" /IACCEPTSQLSERVERLICENSETERMS /QUIET /HIDECONSOLE
  3. Apply the cumulative update SQLServer2016-KB5015372-x64.exe (CU22) to bring the engine to 13.0.5888.11.
  4. Set the service account and startup to automatic:
    sc config "MSSQL$WINCCPLUSMI" start= auto obj= "NT Service\MSSQL$WINCCPLUSMI"
  5. Re-run TIA Portal V16 Setup. The setup wrapper now detects the existing WINCCPLUSMI instance and skips the IMSTSQL2016EXP_SCADA component.
Validation check before this path: Run Get-Service | Where-Object { $_.Name -like 'MSSQL$*' } and confirm no leftover SQLEXPRESS instance is bound to port 1433. TIA V16 reserves WINCCPLUSMI for SCADA, plus SCADA_DB in some distributions. Name conflicts will route setup to a different SQL bootstrapper branch and reproduce the failure.

Solution Path C – Repair a Half-Installed SQL Bootstrapper

If the first attempt at Setup.exe left a partial SQL install, that partial state must be removed before either Solution A or B can succeed.

  1. Stop and delete orphaned SQL services:
    Get-Service | Where-Object { $_.Name -like 'MSSQL$*' -or $_.Name -like 'SQLAgent$*' -or $_.Name -like 'SQLTELEMETRY$*' } | Stop-Service -Force -EA SilentlyContinue
    sc delete "MSSQL$WINCCPLUSMI"
  2. Remove the partial instance registry key:
    Remove-Item 'HKLM:\SOFTWARE\Microsoft\Microsoft SQL Server\WINCCPLUSMI' -Recurse -Force -EA SilentlyContinue
    Remove-Item 'HKLM:\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL13.WINCCPLUSMI' -Recurse -Force -EA SilentlyContinue
  3. Delete the orphaned data directory:
    Remove-Item 'C:\Program Files\Microsoft SQL Server\MSSQL13.WINCCPLUSMI' -Recurse -Force
    Remove-Item 'C:\Program Files (x86)\Microsoft SQL Server\MSSQL13.WINCCPLUSMI' -Recurse -Force
  4. Remove the TIA V16 staging directory and prior installation registry hive:
    Remove-Item 'HKLM:\SOFTWARE\Siemens\Automation\TIAPortal\V16' -Recurse -Force
    Remove-Item 'C:\Program Files\Siemens\Automation\SIEMENS_TIA_PORTAL_V16' -Recurse -Force
  5. Reboot, then re-apply Solution A or B.

Verification Steps

  1. Confirm the IMSTSQL2016EXP_SCADA log line is no longer present in the new install log:
    Select-String -Path "$env:TEMP\Siemens\TIA_Portal_V16\Logs\Siemens.TIA.Portal.Setup.log" -Pattern 'IMSTSQL.*FAILED'
    Expected: no output.
  2. Confirm WinCC Professional and WinCC Unified are both registered in the Automation License Manager (Siemens\Automation\SimaticLicenseManager\SLM.exe) and that the StartDrive component reports a valid SIMATIC version.
  3. Open TIA Portal V16, create a new PC system with a WinCC Runtime Professional, and compile. If the SCADA DB is correctly backed by the SQL instance, no warning "Cannot connect to SCADA database" will appear in the diagnostics pane.
  4. Validate SQL connectivity directly:
    sqlcmd -S .\WINCCPLUSMI -E -Q "SELECT @@VERSION"
    Expected row contains Microsoft SQL Server 2016 (SP3).
  5. Confirm firewall exception C:\Program Files\Microsoft SQL Server\MSSQL13.WINCCPLUSMI\MSSQL\Binn\sqlservr.exe is allowed on the engineering subnet if the panel HMI and the engineering PC are separated by a router.

Pre-Installation Checklist for TIA Portal V16

Item Required Value Verification Command
Windows 10 build 17763 (1809) or 18362 (1903) winver
.NET Framework 4.6.2 minimum, 4.8 recommended Get-ItemProperty 'HKLM:\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full' -Name Release (461808+)
RAM 16 GB minimum for TIA V16 with WinCC Professional (Get-CimInstance Win32_PhysicalMemory).Capacity | Measure-Object -Sum
Free disk on system drive 40 GB (TIA install + SQL data + project cache) Get-PSDrive C | Select-Object Used, Free
UAC Enabled (default) (Get-ItemProperty 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System').EnableLUA = 1
Antivirus real-time scan Exclusions for %ProgramFiles%\Siemens, %ProgramFiles%\Microsoft SQL Server, %ProgramData%\Siemens Per vendor console
Existing SQL instance named SQLEXPRESS Should be stopped / removed before TIA V16 setup Get-Service 'MSSQL$SQLEXPRESS'
Domain policy: Disallow 64-bit unsigned drivers Must be off (Siemens S7USB driver is signed but legacy CP cards may not be) gpresult /r → Computer Configuration → System

Related Error Strings in TIA Portal V16 Setup

Setup Event ID Component Typical Cause Fix Direction
IMSTSQL2016EXP_SCADA SQL 2016 Express – WinCC SCADA instance OS build above 19041 or prior SQL leftovers Solution A / B / C above
IMSDOTNET48 .NET Framework 4.8 offline package Pending reboot blocks .NET install Reboot, net stop wuauserv, retry
IMSSQLCLI2016 SQL Command Line Utilities 2016 MSOLEDBSQL 18 conflict Uninstall MSOLEDBSQL, retry
IMSPLCRTM_V16 PLCSim runtime Hyper-V feature disabled DISM /Online /Enable-Feature /All /FeatureName:Microsoft-Hyper-V
IMSSAFETYSUITE SIMATIC Safety optional package License missing Apply valid license in ALM

Field-Proven Caveats and Edge Cases

  • Build 18363 (Windows 10 1909) is reported in the field as partially working with TIA V16: the SIMATIC STEP 7 portion installs, but the SCADA bootstrapper (the exact IMSTSQL2016EXP_SCADA path) can still fail. Treat 1909 as a gray zone and prefer 1809 / 1903 for production engineering images.
  • Lenovo, Dell, and HP engineering workstations often ship with a pre-installed SQLEXPRESS instance used by System Center, WSUS, or a vendor diagnostics tool. This instance may hold port 1433 and block the TIA instance. Stop the service, set its start to Disabled, then re-run setup.
  • If the host has any TIA Portal V13 SP2 / V14 / V15 install, run Siemens_Automation_License_Manager_Starter.exe /cleanup and the official Siemens TIA Portal Cleanup Tool (entry ID 109760665) before attempting V16. Leftover ALM hooks can also mask the SQL Express error under a misleading licensing event ID.
  • Never use the Program Compatibility Troubleshooter on TIA Setup.exe. It re-routes the installer to Windows 7/8 compatibility shims, which silently disable the SQL bootstrapper and report a generic 1603 instead of the descriptive IMST event.
  • SQL Server 2016 Express does not officially support the newer Microsoft Visual C++ 2015-2022 Redistributable when the legacy vcredist 2013 is missing. Install both x64 versions before attempting Solution B.

FAQ

What does the IMSTSQL2016EXP_SCADA error actually mean?

It is a Siemens Setup wrapper event that reports a failed deployment of the Microsoft SQL Server 2016 Express instance used by the WinCC SCADA component. The underlying cause is logged in %TEMP%\Siemens\TIA_Portal_V16\Logs\Siemens.TIA.Portal.Setup.log as a Windows Installer status (most often 1603, 1638, or 0x800F0922), pointing at an OS build mismatch, a leftover SQL instance, or a blocked MSI transaction.

Can TIA Portal V16 be installed on Windows 10 20H2 (build 19042)?

No. The officially supported Windows 10 builds for TIA V16 are 1809 (17763) and 1903 (18362) for Home, Professional, and Enterprise, plus the IoT Enterprise LTSB / LTSC branches. Build 19042 (20H2) is not on the release notes and triggers the IMSTSQL2016EXP_SCADA bootstrapper rejection. Either downgrade the OS to 1903 / 1809 or upgrade to TIA V17 (which supports 20H2) or later.

Does pre-installing SQL Server 2016 SP3 Express fix the error?

In most cases, yes. SQL Server 2016 SP3 Express (build 13.0.6300.2) removed the OS build check that blocks install on Windows 10 20H2. Use instance name WINCCPLUSMI for the WinCC Professional runtime database, set the sysadmin to BUILTIN\Administrators, and apply the latest cumulative update before launching the TIA V16 setup. The TIA installer detects the existing instance and skips the IMSTSQL2016EXP_SCADA step.

Where is the TIA Portal V16 setup log stored?

The primary log is at %TEMP%\Siemens\TIA_Portal_V16\Logs\Siemens.TIA.Portal.Setup.log. The per-component MSI verbose logs are in the same Logs folder (filenames beginning with MSI_) and the SQL Server 2016 install log is in %ProgramFiles%\Microsoft SQL Server\130\Setup Bootstrap\Log. Always collect all three before opening a Siemens support request (SR).

Is there an official Siemens tool to verify TIA V16 compatibility with my PC?

Yes. The Siemens Compatibility Tool at https://support.industry.siemens.com/kompatool/pages/main/start_maincomponent_selection.jsf filters the complete matrix of TIA Portal V16 products, supported Windows builds, .NET versions, antivirus exclusions, and SIMATIC hardware firmware versions. Use it as the authoritative reference before commissioning a new engineering workstation.

Back to blog