Problem Description
A WinCC Server / multi-Client system that has been operating in production for several months begins displaying a modal pop-up immediately after the Windows auto-logon sequence completes. The pop-up is generated by Siemens Automation License Manager (ALM) and states that the active license has expired and a valid license is required. The dialog reappears at regular intervals (default 15 minutes in legacy ALM builds, configurable through the ALM registry key RemindingPeriod). It does not disappear on its own and forces operator acknowledgement, which violates 24/7 SCADA operability expectations.
Inventory at the affected Client confirms:
- One WinCC Runtime 128 Tags license present (RT-128 tag-count license, sufficient for the active project).
- One WinCC aComms license present (named-user or unlimited Client communication license, depending on the variant installed).
- No WinCC RC (Runtime Configuration) or Development license present on the Client.
The project on the Client is launched via Windows auto-start (registry HKCU\Software\Microsoft\Windows\CurrentVersion\Run or a Scheduled Task at logon). The pop-up is delivered before any operator screen is loaded.
Root Cause Analysis
ALM does not request a license type that the running process does not require. The presence of an RC/Development demand on a Client that only carries RT + aComms strongly indicates that one of the WinCC editors (WinCC Explorer, Graphics Designer, Tag Management, Alarm Logging, User Administrator, Global Script, Cross Reference, or Picture Tree) is being opened as part of the auto-start chain — either explicitly or through a project component that calls an editor on startup.
WinCC's license enforcement model separates execution (Runtime) from configuration (RC / Development). The complete license family on the Client should normally be:
| License (CoL) | Scope | Required for |
|---|---|---|
| WinCC RT (128 / 256 / 512 / 1024 / 2048 / 8192 / 65536 tags) | Runtime execution | Running graphics, tag updates, alarms |
| WinCC aComms | Client-side communication | Server-client data exchange on the Client PC |
| WinCC RC (Runtime Configuration) | Online reconfiguration | Editing projects on a running Client |
| WinCC Development (Power Tags / AS) | Full development | Opening WinCC Explorer with full editor scope |
| WinCC WebNavigator / DataMonitor / WebUX | Optional web tier | Browser-based operator access |
Once the WinCC Explorer (or any editor) initializes, the ALM code path requests an RC/Development license. If none is available and no valid trial exists, the expired-license dialog is raised regardless of whether the editor's window is visible to the user.
Common Triggers
-
WinCC Explorer is on the auto-start chain. The Explorer process
CCExpMgr.exeloadsSCC.EXEwhich in turn loadsCCProjectMgr.exe. Any of these will request an RC slot. -
A Scheduled Task or login script calls
WinCCExplorer.exe(or an .LNK to it) under the user's context instead of (or in addition to)CCStart.exeorCCStartRt.exe. - A component of the project invokes an editor on startup. Custom C-script/VBS actions, ODK callbacks, or third-party add-ins can silently open the User Administrator or the Tag Management editor.
-
A residual trial license (14-day RT, RC, or WebNavigator) was installed during commissioning, expired in the background, and ALM still references it in
license.logeven after the underlying Siemens software (e.g., STEP 7) has been uninstalled. - The logged-on operator account has the WinCC User Administrator access level Configure remote enabled, which authorizes (and internally initiates) editor-side hooks at logon.
-
License mismatch after ALM service interruption. The
almsrv.exe service was restarted, license container was re-mapped, or the USB license dongle was removed and re-seated — ALM treats the next launch as a cold check and demands the editor tier.
Diagnostic Procedure
Execute the steps below in order. Each step produces an artifact you can compare to a known-good Client.
Step 1 — Confirm the actual process tree at logon
- Log on to the Client with the operator account.
- Open
tasklist /v /fo listas Administrator and capture the output before acknowledging any pop-up. - Look for any of:
CCExpMgr.exe,SCC.EXE,CCProjectMgr.exe,CCStart.exe,CCStartRt.exe,CCEServer.exe,CCDmServer.exe,CCAlgRt.exe. - Note parent/child relationships. A clean Client auto-start should show
explorer.exe→CCStartRt.exeonly; no Explorer or SCC process should be present.
Step 2 — Read ALM's license.log
ALM records license requests in C:\Program Files\Siemens\Automation\ALM\license.log (Windows 7 and later) or C:\Program Files (x86)\Siemens\Automation\ALM\license.log on 32-bit hosts. Filter for the failing Client:
findstr /i "WinCC" "C:\Program Files\Siemens\Automation\ALM\license.log" | findstr /i "RC\|Development\|expired\|not valid"
Typical lines for the symptom in question:
License request WinCC RC
License not available
License WinCC RC expired on YYYY-MM-DD
License Development required
If the log shows a request for RC, an editor process is definitely executing. If the log shows only RT requests but a pop-up still appears, the issue is in the ALM dialog queue or in a previously installed trial that has not been deleted from the license container.
Step 3 — Audit the auto-start chain
- Open
regeditand inspect both:HKCU\Software\Microsoft\Windows\CurrentVersion\RunHKLM\Software\Microsoft\Windows\CurrentVersion\Run-
HKLM\Software\WOW6432Node\Microsoft\Windows\CurrentVersion\Run(32-bit entries on 64-bit OS)
- Open
taskschd.mscand review Logon triggers under Siemens, WinCC, or third-party folders. - For each entry, confirm the executable is CCStart.exe or CCStartRt.exe pointing to the project file
*.mcp. Replace any reference toWinCCExplorer.exe,SCC.EXE, orCCProjectMgr.exeon the auto-start list. - Inspect Startup folder:
%APPDATA%\Microsoft\Windows\Start Menu\Programs\Startupand%ProgramData%\Microsoft\Windows\Start Menu\Programs\Startup.
Step 4 — Inspect User Administrator access level
From a known-good Client (or by booting the affected Client in safe mode with project not auto-started), open WinCC Explorer → User Administrator. Locate the operator account currently used for auto-logon and verify the Configure remote checkbox is off. If the operator inherits higher privileges through a group, change the group's Authorizations tab to remove Configure remote (area ID 1001) and Configuration (area ID 1000) unless those privileges are required.
Step 5 — Audit the ALM license container
- Launch Automation License Manager from the Start menu.
- In the right pane, switch the view to All licenses (not just Valid).
- For every WinCC RC / Development / WebNavigator entry, check the Type column. A 14-day trial or Expired trial row pointing to a Siemens product that is no longer installed must be removed.
- Note the License Key (SID). This is required to write a clean
.upkor to perform an offline license transfer.
Resolution Paths
Path A — Eliminate the Editor from the Auto-Start
This is the correct architectural fix. A production Client should never run WinCC Explorer — only the WinCC Runtime.
- Stop any instance of
CCExpMgr.exeandSCC.EXEon the Client. - Open
CCStart.iniin the project folder and confirm the[Configuration]section hasActivateRT=1. SetActivateCE=0andActivateCCExp=0if present. - Replace the auto-start entry so it points to the project directly:
"C:\Program Files\Siemens\WinCC\bin\CCStartRt.exe" "D:\Projects\MyPlant\MyPlant.mcp" - Reboot the Client and verify the pop-up no longer appears. Re-check
license.logafter 10 minutes — only RT requests should be present.
Path B — Remove the Stale Trial License
Expired or orphaned license entries that point to uninstalled software (e.g., a 14-day STEP 7 trial that has been removed) can be cleaned without the original license medium.
- Close all Siemens applications, including WinCC and TIA Portal.
- Stop the ALM service:
net stop "almsrv" /y sc query almsrv - Back up the ALM license store:
xcopy /E /H /K "C:\Program Files\Siemens\Automation\ALM" "D:\Backup\ALM_%date%" - Open ALM, right-click the expired trial entry, and select Remove. If the entry is greyed out, use the Move License dialog to send the entry to a temporary local license pool, then delete from there.
- If Remove is still unavailable because the source dongle is missing, run the Siemens License Removal Tool (Siemens KB entry 109767470) which clears orphan
.licand.upkrecords associated with the host SID. The tool is documented in the Siemens Knowledge Base under Automation License Manager — Remove expired or orphaned licenses. - Restart the service and reboot:
net start "almsrv"
Path C — Provide an RC License
Only adopt this path if the project genuinely requires online configuration from the Client (e.g., the Client doubles as an engineering station or runs a vendor-supplied script that opens an editor). Add a valid WinCC RC or Development license via:
- Online transfer through ALM from a license server on the plant network (recommended), or
-
Offline transfer by exporting a
.upkfile from the engineering PC (using ALM's License transfer wizard) to USB media, then importing on the Client via ALM's License transfer → Import.
Path D — Demote the Operator Access Level
If the access level audit in Step 4 of the diagnostic procedure shows Configure remote enabled on the auto-logon user, demote the user to Operator only. This stops ALM from requesting editor-tier privileges on the Client session.
Verification
- Reboot the Client and log in as the operator. Confirm no ALM pop-up appears.
- Open
CCGetProject.exeorCCStop.exeand verify the runtime state is Active. - Verify the process tree contains only
CCStartRt.exe→CCAlgRt.exe/CCEServer.exe/CCDmServer.exe— noCCExpMgr.exeorSCC.EXE. - Tail
license.logfor 30 minutes and confirm only RT and aComms requests are logged. - Force-trigger a WinCC tag change from the Server and confirm the Client updates without operator interaction.
- Force an alarm and confirm the alarm line and message window appear — this exercises both the alarm and the operator access level, verifying Path D did not regress.
Field-Proven Caveats
-
ALM dialog queue persistence. If the Client is rebooted while the pop-up is on screen, ALM may queue the dialog and replay it on next logon even though no editor is running. Clear the queue by ending
almsrv.exeandalmexec.exevia Task Manager before rebooting. - Time drift on trial licenses. ALM validates the system clock against the trial's start date. A Windows time correction (e.g., NTP resync after a long shutdown) can cause ALM to declare a still-valid trial as expired. Synchronize the clock first, then re-check the pop-up.
- USB license dongle seating. If the Client uses an Aladdin / CodeMeter dongle, a partial USB re-enumeration after a Windows update will cause ALM to treat the license as missing and demand a fallback that does not exist. Reseat the dongle and re-launch ALM.
-
Anti-virus quarantine of
almsrv.exe. Some AV suites (notably Trend Micro and CrowdStrike with the default WinCC exception list disabled) quarantinealmsrv.exe, causing license queries to fail. Whitelist the ALM directory and the WinCCbindirectory per the Siemens Security Configuration Guide. -
Project upgrade side effects. A project migrated from WinCC 7.x to WinCC 7.5 or later may leave behind references to editor DLLs that auto-load via the
AddInsfolder. Inspect<project>\AddInsand remove any non-essential COM add-ins. - Server-side license exhaustion. Although rare, a Server that has run out of Client licenses will pass the Client a downgrade demand that ALM presents as an expired-license dialog on the Client. Confirm the Server's ALM shows enough Client slots before applying Path A on the Client.
Quick Decision Matrix
| Symptom in license.log | Most likely cause | Fix |
|---|---|---|
"WinCC RC required" + CCExpMgr.exe in process tree |
Explorer in auto-start | Path A |
| "WinCC Development required" + no editor process visible | Trial license orphaned | Path B |
| "WinCC RC required" + RC license installed and valid on another host | Dongle / license server disconnect | Reseat dongle or rebind license server |
| Pop-up only on operator account, not on admin account | Access level misconfiguration | Path D |
| Pop-up after project re-deploy | AddIns / VBS auto-editor | Audit AddIns and project startup scripts, then Path A |
Reference Information
For deeper context, consult the Siemens Knowledge Base — Automation License Manager: handling of expired and orphaned licenses, the WinCC V7.5 SP2 — System Manual (chapter on licensing), and the Automation License Manager V6.0 — Administrator Guide. The WinCC Information System installed alongside the engineering software also documents the license type mapping under Licensing > License types.
Why does a Client with only RT + aComms licenses still demand a Development license?
ALM only requests a license tier that the running WinCC process actually needs. The Development/RC demand indicates that an editor (WinCC Explorer, Graphics Designer, User Administrator, etc.) is being loaded — most commonly because WinCCExplorer.exe or SCC.EXE was placed on the auto-start chain instead of CCStartRt.exe.
How do I remove an expired WinCC license when the original license medium is gone?
Stop the almsrv service, back up the ALM directory, then use ALM's Remove action on the expired entry. If it is greyed out, use the Siemens License Removal Tool (KB 109767470) to clear orphan .lic/.upk records tied to the host SID.
Does the operator's WinCC User Administrator access level affect licensing?
Yes. The Configure remote and Configuration access levels authorize editor-side hooks that can cause ALM to request an RC slot. Demote the auto-logon operator to Operator only unless those privileges are documented as required.
Where is the WinCC license log file located?
On a 64-bit Windows install the file is at C:\Program Files\Siemens\Automation\ALM\license.log. Use findstr /i "WinCC" license.log to filter and look for RC, Development, or expired tokens that reveal which license tier is being demanded.
Can a USB license dongle issue mimic an expired-license pop-up on the Client?
Yes. A loose dongle, a USB re-enumeration after a Windows update, or a CodeMeter service crash will make ALM treat the Client license as missing. Reseat the dongle, restart the CodeMeter.exe service, then re-launch ALM to confirm the license is re-recognized.