1. Problem Description
Operators and commissioning engineers running TIA Portal V14 SP1 with the SIMATIC WinCC Professional V14 SP1 option report a regression where the WinCC Professional HMI target fails to compile with the generic dialog:
"Compile failed, contact Siemens support. For details, see enclosed picture."
The same installation can still compile a WinCC Advanced RT target without errors, and a freshly created TIA project compiles WinCC Professional successfully. Only one or more existing, long-lived projects trigger the failure. This pattern is the classic signature of a corrupted HMI project database rather than a defective installation or a license problem.
The compile-failed dialog is intentionally non-specific: the WinCC compiler swallows the underlying exception and surfaces a Siemens-side text so that field engineers escalate to support rather than trying to interpret an unreadable stack trace. That is correct behaviour from a vendor standpoint, but unhelpful on the plant floor. The rest of this reference walks through the diagnostic path, the workarounds you can run without a service request, and the information Siemens Support needs if escalation is unavoidable.
2. Environment and Affected Software Stack
Confirm the matrix below matches your installation before applying any of the corrective procedures further down. A mismatch on the Windows build, the TIA update level, or the installed option set is one of the first things Siemens Support will ask for, and it materially changes the recommended fix.
| Component | Required / Affected Versions | Notes |
|---|---|---|
| Operating system | Windows Server 2012 R2 (64-bit), Windows 7 SP1 / 10 / Server 2016 | Server 2012 R2 is supported for TIA V14 SP1 but is approaching end-of-support — note the Windows servicing implications below. |
| Engineering framework | STEP 7 Professional V14 SP1 | Includes the WinCC Professional option set. |
| HMI option | SIMATIC WinCC Professional V14 SP1 | Update level Upd1 / Upd2 / Upd3 / Upd4 / Upd5 as installed. |
| Runtime target | PC Runtime, WinCC RT Professional | RT Advanced is unaffected; only the Professional RT fails to compile. |
| .NET Framework | 4.6.x, 4.7.x | 4.7.2 is the highest tested level for V14 SP1 on Server 2012 R2. |
| SQL Server | SQL Server 2014 / 2016 Express (bundled) | Stores the TIA project database. A corrupt instance is a frequent root cause. |
| Licensing | WinCC Professional floating or single license | License errors produce a different dialog; verify the license is not the cause before continuing. |
3. Decoding the Error Message
The "compile failed, contact Siemens support" string is the user-facing wrapper. The actionable information lives in three secondary locations:
-
TIA Portal log directory —
%LOCALAPPDATA%\Siemens\Automation\Logfileson the engineering station. Look for files with the prefixHmiRTm_orHmiComp_generated at the time of the failure. -
Project-local log — open the project archive folder, then navigate to
\IM\HMI\Log\. The latest*.xmland*.txtfiles contain the WinCC compiler trace. -
Windows Application event log — the compiler often raises a .NET exception with a stack trace pointing into the assembly
Siemens.Simatic.Hmi.WinCc.Ocx.dllorSiemens.Simatic.Hmi.Generator.dll.
Common internal exception signatures seen in TIA V14 SP1 support requests:
| Internal Exception / HRESULT | Likely Root Cause |
|---|---|
0x80004005 (E_FAIL) in HmiTagTable.Compile |
Duplicate or invalid tag in the HMI tag table |
NullReferenceException in ScreenObjectReference |
Missing reference to a library or deleted faceplate |
DBException: inconsistent schema version |
Corrupt SQLite/SQL database inside the project archive |
LicenseMissingException: WinCC Professional not licensed |
License key lost or upgraded from a trial key |
IOException on .\temp\HmiCompile\*.tmp |
Insufficient rights, AV scanner holding a file open |
4. Root Cause Analysis
Because the symptom is a regression (it compiled successfully days earlier) and a parallel new project compiles cleanly, the candidate root causes narrow to project-state issues rather than installation or licence:
4.1 HMI project database corruption
The TIA Portal stores every project as a ZIP archive containing an embedded SQL / SQLite database. Bit-rot, abrupt shutdowns, network-share stalls during a save, or antivirus interference on the .tia* archive can leave the project in a state where the schema is still readable enough to open, but the WinCC Professional generator fails when traversing tag or screen objects.
4.2 Inconsistent tag or screen references after edits
Renaming, deleting, or type-changing a PLC tag while the HMI tag table was open in another editor instance can produce dangling references. The compiler resolves references lazily and a dangling tag reference inside a faceplate, alarm, or scheduled task is one of the most frequent triggers of the generic error.
4.3 Mixed V14 / V14 SP1 / V15 upgrade leftovers
Installing an update on top of a project that was upgraded and downgraded, or copying objects between projects on different TIA versions, leaves residual XML fragments in the HMI project. The compile fails on the first V14 SP1 generator pass.
4.4 Library version drift
Custom master copies and global libraries pinned to an earlier update level can shadow newer objects. The Professional generator demands strict version alignment; Advanced is more permissive, which explains the asymmetric failure mode.
4.5 File-system and rights issues
Projects stored on SMB shares without proper oplocks, on DFS-R replicated paths, or under aggressive real-time AV scanning, generate IOException exceptions during the compile pass that wraps to the same user dialog.
5. Pre-Diagnostic Checklist
Walk through this list and record the outcome for each item. The notes become the evidence package you attach to a Siemens Service Request if escalation is needed.
- Open Help → Installed software and write down the exact TIA V14 SP1 Update level, build number, and all installed Hotfixes.
- Open Project → Properties → Protection & Security and confirm whether the project is read-only, encrypted, or protected with a script password.
- Close TIA Portal and verify the project archive size on disk. A TIA project that has grown more than 3× its initial size usually has a bloated history; an archive that is dramatically smaller than the previous backup points to truncation.
- Open Control Panel → Administrative Tools → Event Viewer → Windows Logs → Application and filter for Error and .NET Runtime entries from the last compile attempt.
- Confirm the engineering user has Modify rights on the project folder and on
%LOCALAPPDATA%\Siemens. - Disable antivirus and Windows Defender real-time scanning for the duration of the next test compile.
- Copy the project to local SSD storage and retry the compile there. Network shares are a frequent silent contributor.
6. Diagnostic Workflow
Run the following sequence. Each step either produces a known exception that you can act on, or narrows the search space.
6.1 Compile with verbose logging
Open the TIA configuration file %LOCALAPPDATA%\Siemens\Automation\TIA_Portal_V14\Settings\CoRT.xml (or the equivalent for the V14 SP1 build) and set:
<HmiCompiler TraceLevel="Verbose" />
Re-trigger the compile. The HmiComp_*.txt file in the project log folder will now contain a full generator trace. Look for the first ERROR or FATAL entry — the file or tag listed immediately above is the corrupt object.
6.2 Binary-search the HMI tree
Disable half of the HMI screens and re-compile. If the compile succeeds, the offending object is in the disabled half. Re-enable half of that subset and iterate. WinCC Professional screens are independent compile units, so this bisection converges in O(log2n) iterations.
6.3 Tag-table integrity check
Export the HMI tag table to CSV, delete the HMI tags, re-import the CSV, then re-compile. This forces the generator to rebuild the internal tag index. If the compile succeeds, the original tag table was the offender; compare the two CSVs row-by-row to find the duplicate or malformed entry.
6.4 Cross-reference audit
Open Project tree → HMI → Cross-references. Sort by the symbol Status and look for entries marked with a red exclamation mark. Right-click → Go to source and resolve each one before retrying the compile.
6.5 Library re-sync
Open Options → Global libraries, right-click each library and select Update with latest version. A mismatch between the master copy version and the used-copy version is one of the well-documented triggers for the V14 SP1 compile failure.
7. Recovery Procedure
If the diagnostic workflow points to a specific object, fix or recreate that object. If the workflow returns no specific object, escalate to the project-repair sequence below.
7.1 As-compiled project save
- Create a folder
C:\TIA_Recovery\on local SSD. - Copy the entire
.tia*archive there. - Open TIA Portal, open the copy, and immediately Project → Save as… to a new archive name.
- Close and re-open the new archive. The save process re-serialises the SQL database and frequently flushes the corruption.
7.2 Project cleanup
Run Project → Cleanup → Remove unused master copies and Compile → Software (rebuild all). The rebuild regenerates the internal object tables and is the most common fix for project-state corruption that does not have a single identifiable trigger.
7.3 HMI database reset
- Close TIA Portal.
- Navigate to the project archive, then
\IM\HMI\DB\. - Rename the file
project.hmidbtoproject.hmidb.bak. - Open the project. TIA detects the missing database and re-creates it from the source XML.
- Re-import the HMI tags, alarms, and screens from a known-good backup.
.tia* archive before deleting or renaming internal database files. Step 7.3 destroys any in-progress HMI edits that were not saved externally.
8. Project Repair Through Re-archive
If a single archive is so corrupt that it will not open, the recovery path is a controlled re-archive from the latest valid backup plus a controlled import of the latest HMI changes.
- Open the last known-good backup archive.
- Project → Save as… to a new name on local SSD.
- Use Project → Compare & Merge against the broken project to import only the objects added after the backup date.
- Compile. The new archive should pass because the underlying database is fresh.
9. Escalation to Siemens Support
If the project is mission-critical, the timelines tight, and the on-site diagnostic has not produced a fix, open a Service Request. The standard service-request URL for SIMATIC software is the Siemens Industry Online Support portal. The following evidence package is what Support asks for first; providing it in the initial ticket typically shaves one or two days off the resolution time:
- Exact TIA Portal version and Update level from Help → Installed software.
- Screenshot of the compile error dialog.
- Full contents of
%LOCALAPPDATA%\Siemens\Automation\Logfilesfor the failing session. - Project-local
\IM\HMI\Log\files. - Application event log exported to
.evtx. - The
.tia*archive itself, uploaded via the secure Siemens upload link, not as an e-mail attachment.
When you create the request, use the product tree path SIMATIC Automation Software → TIA Portal → WinCC Professional V14 SP1. Reference the support entry IDs for known issues against V14 SP1 so the ticket is routed to the team that already owns the regression.
10. Verification
After every corrective action, run the full verification sequence below. The compile is only "fixed" when every check passes.
- Compile clean build — Compile → Software (rebuild all). No warnings or errors in the inspector.
- Compile incremental — touch a screen, re-save, re-compile. The incremental compile should match the clean build in time and output.
- RT simulation — start the WinCC RT Professional simulator from HMI → Start runtime. Verify that the start screen, all navigation targets, and the alarm system are functional.
- Tag simulation — open Online → Tag simulation and force values on a representative sample of tags from every controller connection.
- Backup the fixed archive — store two copies: one on the engineering station, one on a network share with a documented retention policy.
11. Prevention and Best Practices
The compile failure is symptomatic of a project that has been edited across updates, stored on network shares, and backed up infrequently. The following practices reduce the probability of recurrence.
- Keep a generation log. Maintain a project-history file outside the TIA archive recording the date, TIA version, and editor for every change set.
- Save to local SSD, replicate to the share. Work on a local copy, save the archive, then copy to the share using a tool that supports resumable transfers and verifies the file hash.
- Apply TIA updates before edit, not after. Mixed-version state is the single largest contributor to compile regressions in V14 SP1.
- Use source control semantics. TIA Portal supports multiuser editing. Treat the project as code: a change request is a branch, a release is a tag, a recovery is a checkout of a known-good tag.
-
Exclude the project folder from real-time AV. Add the TIA working directory,
%LOCALAPPDATA%\Siemens\, and the SQL Server data directory to the AV exclusion list. - Schedule weekly rebuild-all compiles. The rebuild exposes latent corruption before it is encountered in production.
12. Quick Reference Matrix
| Symptom | Most Likely Cause | First Action |
|---|---|---|
| Compile fails only in existing project, new project OK | Project database corruption | Copy to local SSD, save-as, rebuild-all |
| Compile fails after a tag rename | Dangling cross-reference | Run cross-reference audit, resolve red items |
| Compile fails after a TIA update | Mixed-version state | Compile software rebuild-all, update global libraries |
Compile fails with IOException
|
AV or share lock | Disable AV, copy to local SSD |
Compile fails with LicenseMissingException
|
License or license server | Re-transfer license key, restart Automation License Manager |
| Compile fails with no internal log | Generator crash, call stack truncated | Escalate to Siemens Support with full evidence package |
FAQ
Why does WinCC Professional fail to compile while WinCC Advanced compiles successfully in the same TIA V14 SP1 project?
The Professional RT generator validates tag references, faceplate instances, and library versions strictly, while the Advanced generator is permissive. Asymmetric failure is the classic signature of either a dangling cross-reference or a master-copy version mismatch introduced by editing across TIA updates. Resolve the red entries in Cross-references and re-sync the global libraries, then rebuild.
Can a repair install of TIA V14 SP1 fix a "compile failed, contact Siemens support" error?
Only if the underlying cause is a damaged installation. The symptom pattern reported here — a previously good project that now fails while new projects compile — is project-side, not installation-side. A repair install will not recover a corrupted HMI database inside the project archive; the project must be re-saved, the HMI database re-initialised, or the project restored from a known-good backup.
Which log files should I attach to a Siemens Service Request for this error?
Attach the contents of %LOCALAPPDATA%\Siemens\Automation\Logfiles, the project-local \IM\HMI\Log\ folder, the Windows Application event log exported to .evtx, a screenshot of the compile dialog, and the full .tia* archive uploaded via the secure Siemens upload link. The TIA version and Update level from Help → Installed software is the first field Support will check.
Is Windows Server 2012 R2 still supported for TIA Portal V14 SP1?
TIA Portal V14 SP1 lists Windows Server 2012 R2 as a supported operating system, but Server 2012 R2 is itself in extended support. Plan a TIA version upgrade together with the operating-system refresh to remain on a fully supported configuration. On Server 2012 R2, cap .NET Framework at 4.7.2; installing 4.8 is not tested against V14 SP1.
How can I prevent the WinCC Professional V14 SP1 compile error from recurring?
Edit on local SSD, replicate to the network share, apply TIA updates before editing rather than after, exclude the TIA working directories from real-time antivirus scanning, run a weekly Compile → Software (rebuild all) to surface latent corruption early, and maintain a generation log plus scheduled backups of the .tia* archive. These five practices address the root causes in the order of their frequency in the field.