Resolving WinCC Internal Error DYNAMIC_DUMMY_HATCH on Compile

David Krause11 min read
HMI / SCADASiemensTroubleshooting
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 Statement

The Internal error (detail: error get the Tag Table – object type: DYNAMIC_DUMMY_HATCH) is raised by the WinCC compilation pipeline when the HMI project cannot reconcile a placeholder graphic object inside a tag table cross-reference. The error text is generated by the runtime generator before any panel picture is rendered, and it blocks the entire build – no panels, no screens, no recipe views, and no generated tag list are produced. The error is not caused by user code; it is a project-tree integrity fault in the WinCC engineering database.

Typical observable behaviour:

  • Compile/Consistency Check aborts immediately after the "Generating Tag Tables" step.
  • The output window shows: Internal error (detail: error get the Tag Table - object type: DYNAMIC_DUMMY_HATCH) with no file or line number.
  • Opening the affected tag table in the editor shows a blank or empty entries grid; reopening the project triggers the same fault.
  • Re-importing tags from STEP 7 / TIA Portal succeeds, but the next compile reproduces the error.

Affected Software and Versions

Product Version confirmed affected Build stream
SIMATIC WinCC flexible 2007 SP2 / SP3 (all editions: Micro, Compact, Standard, Advanced) HF1 to HF13 distributed in 2008–2010
SIMATIC WinCC flexible 2008 SP2 Update channel prior to Hotfix 2 Same codebase as 2007 SP3
SIMATIC WinCC (TIA Portal) Comfort/Advanced V13 SP1 to V16 Compiled with "Internal error: instance () cannot get all slides" symptom on multi-slide faceplates
WinCC Runtime Advanced / Professional V15 to V20 RT loading errors 0x... per TIA Portal V20 documentation – Error messages during loading of projects (RT Unified)
Note: The DYNAMIC_DUMMY_HATCH object class is the legacy WinCC flexible internal symbol for an unresolved graphic placeholder, originally introduced for hatching pattern libraries in vector graphics. The same object family is still referenced in current TIA Portal HMI projects through the IM (Internal Management) folder, which is why the recommended TIA Portal fix (deleting the IM folder) often clears identical symptoms in newer releases.

Root Cause Analysis

The fault is triggered when the WinCC compiler iterates the project's tag table collection and attempts to resolve a graphic reference whose UUID is missing from the internal object store. Three root causes dominate:

  1. IM folder inconsistency (TIA Portal V13 – V20): The IM subfolder under the project root caches compiled HMI image objects. If the cache desynchronises – for example after a forced close, an antivirus quarantine of .im* files, or a partial git/svn merge – the generator cannot dereference the DYNAMIC_DUMMY_HATCH handle. Siemens Support Entry 109778745 documents this failure mode and prescribes IM folder deletion as the canonical workaround.
  2. WinCC flexible 2007 graphic library corruption: The 2007 build uses a non-transactional *.lck file lock around graphic objects. If WinCC flexible crashes while a hatch pattern is being written, the placeholder survives in the project but the linked graphic record is wiped, producing the DYNAMIC_DUMMY_HATCH orphan.
  3. STEP 7 ↔ WinCC flexible synchronisation race: Because WinCC flexible 2007 performs a full re-synchronisation against STEP 7 before each compile, a stale STEP 7 tag export (especially with renamed or deleted DBs) can cause the synchroniser to create new tag tables whose graphic object references point to unallocated slots in the WinCC database. The user's own observation that "it always does a synchronization with my STEP 7 project before it compiles" is a strong indicator of this path.

Diagnostic Procedure

Run the following checks before applying any destructive action. They are non-destructive and reversible.

  1. Capture the build log verbosity. In WinCC flexible 2007, open Options > Settings > Compile Output and set the log level to Maximum. Re-run the compile and save the full *.log file. In TIA Portal, use Project > Compile > Software (rebuild all) with the diagnostic view pinned.
  2. Locate the affected tag table. The log entry preceding the error contains the tag table name. Open the table in the editor and look for entries with empty Update, Length, or Acquisition cycle columns – these are the orphaned references.
  3. Check the lock file set. Close WinCC completely, then list the project folder. A dangling *.lck with no associated *.hmi process indicates a previous crash:
dir /S /A:H "%ProgramFiles%\Siemens\Automation\WinCC flexible 2007\Projects\<ProjectName>\*.lck"
attrib -h -s <project>\grllib\*.lck
  1. Validate the IM folder (TIA Portal). Confirm the <Project>\IM\Hmi subfolder has both .im and .hmi_cache files. A missing or zero-byte file is the smoking gun. Compare its modification time against the last successful build.
  2. Look up the S7DOS error code if the message is paired with one. Many real-world reports combine the DYNAMIC_DUMMY_HATCH message with an S7DOS code such as EC_TIMERR (11) or EC_S7LERR (12). The full code table is published in the TIA Portal online help at S7DOS error codes (Basic Panels, Panels, Comfort Panels, RT Advanced, RT Professional).

Resolution – WinCC flexible 2007

Apply the steps in this exact order. Each step is non-destructive unless explicitly noted.

  1. Clear temporary files. Open WinCC flexible, choose Options > Settings > Delete Temporary Files. Confirm. The action removes the Temp and Temp_DB subfolders used by the compiler.
  2. Re-bind the project location. Close the project, rename the project folder, then reopen WinCC flexible and select the renamed folder via Open > Project. This forces the engine to rebuild its local object index.
  3. Remove the orphan tag table. In the project tree, right-click the suspect tag table (identified in the diagnostic step), choose Export to CSV as a backup, then Delete. Re-import the CSV. Re-run the compile.
  4. Install Hotfix 2 for WinCC flexible 2007 SP3 / 2008 SP2. Hotfix 2 (Siemens order number 6AV6 661-7AK01-0AE0) addresses graphic object reference resolution and is referenced by Siemens support as a primary fix for this class of internal error. The installer is in-place and does not require a re-licence.
  5. Disable STEP 7 auto-synchronisation as a verification test. In Options > Settings > STEP 7 Integration, untick Synchronise with STEP 7 on every compile. Compile. If the error disappears, the synchroniser is the source and you must reconcile the STEP 7 tag export with the WinCC tag table before re-enabling auto-sync.
Warning: Hotfix 2 does not repair an already-corrupt project. If the error persists after the Hotfix, proceed to the TIA Portal-style IM folder purge described below; WinCC flexible 2007 uses a similar structure under <project>\grllib\ with *.crc checksum files. Renaming grllib to grllib_old forces a full rebuild of the graphic library on the next open.

Resolution – TIA Portal (V13 – V20)

The TIA Portal variant of the error is referenced in Siemens Support Entry 109778745. The official procedure is:

  1. Close TIA Portal completely. Confirm via Task Manager that no S7TGTOPX.exe or Siemens.Automation.Portal.exe process remains.
  2. Open the project folder in Windows Explorer. The path is normally %USERPROFILE%\Documents\Automation\<ProjectName>\.
  3. Locate the IM subfolder (it may be hidden: enable View > Hidden items in Explorer).
  4. Delete the IM folder. TIA Portal regenerates it on the next compile.
  5. Reopen the project. The first compile will be slower because the IM cache is rebuilt; subsequent compiles return to normal speed.

This procedure is equally effective for the Instance () cannot get all slides and DYNAMIC_DUMMY_HATCH variants because both stem from the same cache layer.

S7DOS Internal Error Code Reference

When the WinCC runtime loads the compiled project onto a Panel, RT Advanced, RT Professional, or Unified Panel, the loading framework reports failures using S7DOS constants. The most common codes you will see together with the DYNAMIC_DUMMY_HATCH error are:

Code Constant Meaning Typical remedy
11 EC_TIMERR Internal timer start failed – often a side effect of the same corrupt IM cache Delete IM folder, reboot panel
12 EC_S7LERR S7 link error – the panel cannot bind to the PLC after the HMI project loaded Re-check PG/PC interface, MPI/PROFINET address
13 EC_S7BERR S7 base error – bus configuration mismatch Recompile HW Config, reload PLC station
14 EC_S7PERR S7 protocol error – partial download, broken TLS handshake Disable panel TLS, fall back to unencrypted PROFINET for test
15 EC_S7MPERR Multipoint error – multiple masters on MPI subnet Check MPI bus terminators, single master policy
16 EC_S7ASERR AS error – PLC in STOP during project load Set PLC to RUN-P, retry

The complete list is in the TIA Portal help under Troubleshooting > Internal error codes and constants for the relevant panel family.

Error Messages During Project Loading (RT Unified)

After a successful compile, the project load step on WinCC RT Unified and Unified Comfort Panels can still fail. The documented reasons from TIA Portal V20 documentation – Error messages during loading of projects (RT Unified) are:

  • Incorrect download settings in the device configuration (wrong target IP, wrong panel image).
  • Incorrect HMI device type in the project – the project was built for a Unified Comfort Panel 15" but the target is a 19" variant.
  • The HMI device is not connected to the configuration PC (cable, VLAN, or PROFINET name resolution issue).
  • Firewall on the panel side (default port 443 / 102) blocks the TIA Portal download.
  • Secure communication (TLS 1.3) is configured on the panel but the certificate in TIA Portal is expired or revoked.
Field tip: Open the TIA Portal download dialog, click Show details, and read the sub-error before the descriptive text. The underlying WMI/WinHTTP code is usually visible and identifies whether the load failed at the transport, authentication, or file-system layer.

Verification

  1. Compile success: Re-run Project > Compile > Software (rebuild all) or WinCC flexible Project > Compiler > Generate. The output must reach Build complete, 0 errors, 0 warnings.
  2. Tag table integrity: Open each tag table and confirm all rows show valid PLC tag, Update, and Length values. Empty rows must not exist.
  3. Runtime smoke test: Transfer the compiled project to a test panel or to PLCSIM (S7-PLCSIM V16+ supports HMI tag simulation). Start the project, change a tag from a script or faceplate, and confirm the value updates within one acquisition cycle (default 1 s, configurable down to 100 ms).
  4. Log signature absence: Search the generated *.log for the literal string DYNAMIC_DUMMY_HATCH. A clean log contains zero matches.

Preventive Maintenance

  • Add the project root to the antivirus exclusion list, including the hidden IM folder and all *.lck, *.crc, and *.im files. Real-time scanning during a WinCC compile is the most common trigger of the DYNAMIC_DUMMY_HATCH orphan.
  • Use a transactional source-control system (git, svn) but never commit the IM folder or the Temp / Temp_DB directories. Add them to .gitignore.
  • Schedule a quarterly "clean rebuild": rename the project folder, reopen, compile from scratch, archive the rebuilt copy. This forces the IM cache to refresh and catches silent corruption before it is discovered during a production outage.
  • Keep WinCC flexible 2007 SP3 patched with Hotfix 2 (or upgrade to WinCC flexible 2008 SP5 – the last release of the WinCC flexible line, after which migration to TIA Portal V16 or later is required).
  • For TIA Portal projects, install the latest TIA Portal Updater and the matching HMI HSP (Hardware Support Package) before commissioning a new panel generation.

Quick-Reference Troubleshooting Matrix

Symptom First action If that fails If that also fails
WinCC flexible 2007 compile fails with DYNAMIC_DUMMY_HATCH Options > Delete Temporary Files Reinstall Hotfix 2 (6AV6 661-7AK01-0AE0) Rename grllib, force graphic library rebuild
TIA Portal V13–V20 compile fails with "Instance () cannot get all slides" Delete the IM folder of the project Recompile hardware, then recompile software Open project on a different TIA Portal workstation, compare
RT loading fails with EC_TIMERR (11) Delete IM folder, reboot panel Update HMI firmware to the matching HSP level Disable secure communication, retry
RT Unified load fails with descriptive error, no sub-code Check PG/PC interface and target IP Verify panel certificate Open ports 443/102 in the panel firewall, retry
Error reappears every recompile Check antivirus quarantine of *.im / *.lck Excluding project from AV permanently Clean rebuild as in Preventive Maintenance

FAQ

What does the DYNAMIC_DUMMY_HATCH object type mean in a WinCC internal error?

It is a legacy WinCC internal symbol for an unresolved graphic placeholder (originally a vector hatching pattern). The error is raised when the compiler cannot dereference its UUID in the project's graphic library, typically because the IM folder cache, a *.lck lock, or a STEP 7 auto-synchronisation has left an orphan reference.

Does WinCC flexible Hotfix 2 actually fix the DYNAMIC_DUMMY_HATCH error?

In many cases, yes. Hotfix 2 (Siemens order number 6AV6 661-7AK01-0AE0) addresses graphic object reference resolution in WinCC flexible 2007 SP3 / 2008 SP2. If the Hotfix alone does not clear the error, the next step is to delete the project's IM folder (TIA Portal) or rename the grllib subfolder (WinCC flexible 2007) to force a rebuild.

Is deleting the IM folder safe?

Yes. The IM folder is a derived cache; TIA Portal regenerates it on the next compile. The first compile after deletion is noticeably slower (often 30–60 s for medium projects, several minutes for large ones) because the cache is rebuilt from source.

Which S7DOS code is most often paired with the DYNAMIC_DUMMY_HATCH error?

EC_TIMERR (11) is the most common companion code because both are symptoms of the same corrupted cache layer. EC_S7LERR (12) appears when the panel can compile but cannot bind to the PLC after load. The full code table is in the TIA Portal help at the S7DOS error codes page.

My project still fails after all the steps. What is the last-resort action?

Perform a clean rebuild: export every tag table to CSV, export every screen to a printable PDF for reference, create a brand new project in the same TIA Portal version, re-import the tag CSVs, and rebuild the screens. The new project carries a fresh IM folder and a fresh object database, which eliminates every form of IM cache corruption in one move.

Back to blog