Resolving HMIRuntime.BaseScreenName Error in WinCC 7.0 VBS

David Krause9 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

Resolving HMIRuntime.BaseScreenName Error in WinCC 7.0 VBS

WinCC V7.0 (and several service packs) ships with a known scripting regression in which the VBS automation property HMIRuntime.BaseScreenName throws the runtime error "HMIRuntime.get_BaseScreenName: No such interface supported." A VBScript that switches the active base picture via HMIRuntime.BaseScreenName = "PictureNameX" and that has run cleanly under WinCC V6.2 SP3 fails immediately when the same project is opened under WinCC V7.0. The fault is not in the picture name, the script editor, or the project structure. The cause is a missing or unregistered component on the engineering station / runtime station, and the standard fix is to install WinCC V7.0 SP1 and then execute SIMATIC Security Control.

This reference documents the failure mode, the diagnostic path, the permanent fix, and the available workarounds for engineers who must support legacy WinCC V6.2 → V7.0 migrations and who rely on VBS to drive picture changes from a top menu bar, a custom toolbar, or an external controller.

1. Problem Definition and Symptom Capture

Symptom summary, observed in both the WinCC Graphics Designer script debugger and the WinCC Runtime event log:

  • WinCC version: WinCC V7.0 (RT and/or ES), with or without a baseline service pack.
  • Script type: VBScript action attached to a button, a timer, or an internal function called from C / VB.
  • Statement that fails:
    ' Standard syntax used in WinCC 6.2 SP3
    HMIRuntime.BaseScreenName = "MainOverview_Pic"
    
  • Runtime error string: HMIRuntime.get_BaseScreenName: No such interface supported.
  • Side effect: the active base picture does not change, the script aborts, and any subsequent HMIRuntime.* reference in the same procedure also fails because the object binding is broken.

The same script, executed on a machine that has only WinCC V6.2 SP3 installed, completes successfully. The migration to V7.0 is the breaking change.

Note: "No such interface supported" in VBS is the COM/Automation equivalent of E_NOINTERFACE (HRESULT 0x80004002). The property accessor get_BaseScreenName is dispatched, but the underlying IDispatch on the HMIRuntime object does not expose the BaseScreenName property at the time the script engine resolves it. This is a registration-level problem, not a project-level problem.

2. Root Cause Analysis

WinCC 7.0's HMIRuntime object model is delivered through a set of COM components whose interfaces are registered during install. Three conditions can prevent BaseScreenName from being exposed:

  1. Missing WinCC V7.0 SP1 base: the initial WinCC V7.0 release does not ship a fully registered BaseScreenName automation entry for all installation options. The interface stub is present, but the IDL registration is not. SP1 supplies the missing registration.
  2. SIMATIC Security Control has not been run: SIMATIC Security Control re-applies DCOM, OPC, and HMIRuntime interface rights and re-registers the automation type libraries. The HMIRuntime base screen property is part of the type library that Security Control re-binds. Until Security Control is executed, the VBS engine cannot resolve the BaseScreenName property accessor even if the DLLs are present on disk.
  3. Custom or renamed HMIRuntime reference: when the project was migrated from V6.2 with a custom HMIRuntime wrapper or a renamed picture that does not exist on the target server, the same symptom can appear. Confirm the picture exists and the spelling matches before suspecting the runtime.

The combination of conditions (1) and (2) is the most common cause reported in the field. The fix is to apply (1) and then run (2).

3. Affected Versions and Component Map

Component Version Behaviour
WinCC V6.2 SP3 6.2.3.x BaseScreenName write/read works without SIMATIC Security Control.
WinCC V7.0 (base) 7.0.0.x get_BaseScreenName returns "No such interface supported" until SP1.
WinCC V7.0 SP1 7.0.1.x Registration corrected, but Security Control must be executed to bind interfaces to the logged-in user.
WinCC V7.0 SP2 / SP3 / SP4 7.0.2.x – 7.0.4.x Contain the SP1 fix cumulatively; Security Control still required on first run after install or image restore.

4. Permanent Solution: Install SP1 and Run SIMATIC Security Control

4.1 Prerequisites

  • Administrative login on the target machine (the engineering station and each WinCC Runtime station that loads the project).
  • WinCC V7.0 install media plus the V7.0 SP1 update package, or a cumulative image that already includes SP1.
  • Project backup: *.mcp and the runtime directory <ProjectName>\ on each server.

4.2 Step-by-Step

  1. Close WinCC Explorer, Graphics Designer, and the WinCC Runtime on every affected machine.
  2. Insert the SIMATIC WinCC V7.0 SP1 media or mount the WinCC_V70_SP1.iso. Launch Setup.exe and follow the installer. A reboot may be requested at the end of the install.
  3. After the reboot, log in as the user that runs the WinCC Runtime (often a dedicated WinCCUser account, never a built-in administrator account for production systems).
  4. Open the Windows Start menu and navigate to SIMATIC → WinCC → Tools → SIMATIC Security Control. On a default install, the executable is C:\Program Files (x86)\Siemens\Automation\WinCC\bin\SIMATIC_SecurityControl.exe.
  5. In SIMATIC Security Control confirm the user account that will run the WinCC services. Apply the recommended DCOM and runtime rights. The tool re-registers the HMIRuntime automation type library and the BaseScreenName property in the process.
  6. Restart the WinCC Runtime. The previously failing script line HMIRuntime.BaseScreenName = "PictureNameX" now executes without raising the "No such interface supported" error.
Critical: if WinCC is deployed from a disk image to multiple runtime stations, run SIMATIC Security Control on each image instance. The fix is per-machine, not per-image.

5. Verification

Use the following checks to confirm the fix before returning the system to production:

  1. Script debugger test: in Graphics Designer open the picture that owns the script, attach the debugger (Alt+F5 inside the debugger action), and step into the line HMIRuntime.BaseScreenName = "MainOverview_Pic". The error dialog should not appear and execution should continue.
  2. Direct read-back test: add a temporary line after the write:
    HMIRuntime.BaseScreenName = "MainOverview_Pic"
    MsgBox "Active picture is now: " & HMIRuntime.BaseScreenName
    
    The message box should display Active picture is now: MainOverview_Pic. Remove the MsgBox after the verification.
  3. Runtime event log: confirm that the WinCC diagnostic file WinCC_Sys_.log no longer contains E_NOINTERFACE or No such interface supported entries.
  4. Regression sweep: run the original V6.2 project on a V7.0 SP1 station and confirm that other HMIRuntime calls (HMIRuntime.Tags, HMIRuntime.Screens, HMIRuntime.ActivateScreen) still work. The Security Control re-registration can in rare cases reset previously customised DCOM permissions; a short regression run is the safest way to catch this.

6. Workarounds When SP1 Cannot Be Installed

If the customer cannot apply SP1 (for example, a locked production line or a long validation cycle), the following alternatives let the engineer change the base picture without touching the broken BaseScreenName property.

6.1 Direct Connection (No Script)

The most reliable substitute for a single button click is the Direct Connection. On the button event (for example Press Left):

  1. Right-click the event and choose Direct Connection.
  2. Set Source to Constant and enter the picture name in the value field.
  3. Set Target to Current Window and Property to Picture Name.

Direct Connection bypasses the VBS automation layer entirely, so it is unaffected by the registration issue. The drawback is that it cannot be called conditionally from script logic.

6.2 ScreenObject Method from C / VB External Application

When the picture change must be driven from an external application, call the ActivateScreen method on the screen object from a C or VB host that has its own COM binding:

' In an external VB host
Dim objHMIRuntime As Object
Set objHMIRuntime = CreateObject("HMIRuntime.HMIRuntime")
objHMIRuntime.ActivateScreen "MainOverview_Pic"

This is useful for migrating V6.2 logic that called BaseScreenName from a C++ OPC client. The same SIMATIC Security Control caveat applies: the host machine still needs the corrected registration.

6.3 Wrap the Property in a Try/Catch

For code paths that must keep working on both V6.2 and V7.0, add an error trap that falls back to ActivateScreen if the property write fails:

On Error Resume Next
HMIRuntime.BaseScreenName = "MainOverview_Pic"
If Err.Number <> 0 Then
    Err.Clear
    HMIRuntime.ActivateScreen "MainOverview_Pic"
End If
On Error Goto 0

This is a defensive pattern, not a permanent fix. Apply it only while the SP1 + Security Control patch is being scheduled.

7. Reference: VBS Object Access for Picture Switching

For WinCC V7, TIA Portal WinCC Professional, and WinCC Runtime Advanced, the VBS access pattern to picture objects follows the same rules described in the Siemens documentation for runtime scripting. The HMIRuntime.BaseScreenName property exists on panels and Comfort Panels, and on PC runtime, and must reference a picture name that was created with that name in the screen. Spelling, including the case of any sub-screen reference, must match exactly.

  • Supported access path: HMIRuntime.BaseScreenName – set/get the active base picture of the current runtime window.
  • Companion property: HMIRuntime.ActiveScreen – read-only reference to the current picture object.
  • Companion method: HMIRuntime.ActivateScreen "PictureName" – programmatic picture switch.
  • Object model root: HMIRuntime is the VBS entry point; it exposes Tags, Screens, Alarming, Logging, and picture-related properties.

8. Related Error Codes and What They Mean

Error string HRESULT Likely cause
No such interface supported 0x80004002 (E_NOINTERFACE) HMIRuntime automation entry not registered; missing SP1 or Security Control not run.
Object doesn't support this property or method 0x800A01B6 Wrong property name for the runtime version; for example, a V7.5-only property referenced under V7.0.
ActiveX component can't create object 0x800A01AD HMIRuntime type library absent or DCOM disabled.
Permission denied 0x800A0046 User account lacks WinCC DCOM rights; rerun Security Control to grant them.

9. Preventive Checklist for V6.2 → V7.0 Migrations

  1. Image both engineering and runtime stations with WinCC V7.0 + SP1 + the latest available update before loading any migrated project.
  2. Run SIMATIC Security Control once per image, then validate that the logged-in service account has the DCOM rights.
  3. Add a small VBS smoke test picture that writes and reads back HMIRuntime.BaseScreenName on every boot. The script is the canary that detects registration drift.
  4. Document WinCC_Sys_*.log rotation and central collection; the E_NOINTERFACE string should be alerted on.
  5. Where possible, move the picture-switch logic into a VBS function that uses HMIRuntime.ActivateScreen as the primary path, with BaseScreenName as a fallback for V6.2 systems that have not been migrated yet. This makes the script portable across V6.2 SP3, V7.0 SP1, and V7.4+.

10. Frequently Asked Questions

Why does HMIRuntime.BaseScreenName fail with "No such interface supported" after migrating from WinCC 6.2 SP3 to WinCC 7.0?

WinCC V7.0 base release does not register the BaseScreenName automation property in the HMIRuntime type library. The fix is to install WinCC V7.0 SP1 and then run SIMATIC Security Control to re-register the type library and the DCOM rights for the runtime user.

Do I have to install SP1, or can I just run SIMATIC Security Control under WinCC V7.0 base?

You should install SP1 first. Security Control re-registers the components that are present on disk; if the BaseScreenName IDL entry itself is missing, the fix will not take effect. SP1 supplies the entry; Security Control binds it.

Can I switch the active picture from VBS without using HMIRuntime.BaseScreenName?

Yes. Use HMIRuntime.ActivateScreen "PictureName" instead, or replace the script with a Direct Connection on the button event with Source = Constant, Target = Current Window, Property = Picture Name. The Direct Connection is the most robust for single-button picture changes.

Does the fix apply to TIA Portal WinCC Professional and WinCC Runtime Advanced as well?

The same VBS access pattern exists in TIA Portal, but the COM-registration error is specific to WinCC V7.0 classic. On TIA Portal V15 and later the property is normally available after a clean install. If the error appears on a TIA runtime, verify the RT Advanced / RT Professional installation and the runtime user rights in the same way.

Is SIMATIC Security Control safe to run on a running production system?

It can be. Security Control re-applies DCOM and automation rights and may briefly affect OPC and HMIRuntime bindings. Schedule a short maintenance window, run the tool, then restart the WinCC Runtime to make the new bindings effective.

Back to blog