Fixing Blocked Message Block Naming in WinCC 7.0 AlarmControl
WinCC 7.0 AlarmControl ships with a long-standing usability issue: the Name input field in the Message blocks tab of the Configuration dialog is grayed out. Selecting the field and pressing any key triggers a popup reading "You must assign a name to the block", but the field will not accept input. The result is that the entire block list becomes read-only, and operators can no longer rename, add, or reorganize user-defined message blocks without re-importing the entire alarm logging configuration. This article documents the root cause, the verified fix, and the engineering checks needed to prevent recurrence.
1. Problem Description
The fault presents itself exclusively inside the WinCC AlarmControl OCX. The exact symptom chain is:
- Open the WinCC Explorer and start Graphics Designer.
- Insert or open a WinCC AlarmControl on a process picture.
- Double-click the control to launch Alarm Control Configuration.
- Switch to the Message blocks tab.
- Click into the Name column of any row in the Block list.
- Press any printable character.
The input event is suppressed and a warning dialog appears: "You must assign a name to the block". The Name cell is rendered with a disabled (shadowed) background, and the same lock applies to the Field, Length, and Type columns. The Block ID and ordering controls remain responsive because they do not require free-form text input.
Subsequent symptoms reported by operators in the field:
- Block list cannot be expanded with the Add button when the active row is empty.
- Reordering buttons (Up / Down) accept clicks but no state change is committed to the configuration file.
- Changes made on the Columns tab are lost after closing and re-opening the configuration dialog.
- The same Configuration dialog works correctly on a freshly created project but fails on migrated or copied projects.
2. Root Cause Analysis
The Configuration dialog in WinCC 7.0 AlarmControl does not own the canonical schema for message blocks. The dialog is a thin editor that proxies to the alarm logging engine (the ALG service backed by the project database files *.ldf and *.mdf inside <Project>\<ComputerName>\<Servername>\ALG).
When the editor initializes, it queries the alarm logging service for the list of system blocks that must always be present. The list includes at least:
| System Block Name | Internal Tag | Source |
|---|---|---|
| Date | $DATE | System time / UTC |
| Time | $TIME | System time / UTC |
| Milliseconds | $MS | System time / ms counter |
| Status | $STATUS | Alarm state machine |
| Number | $NUMBER | Sequential alarm number |
| Message text | $MSG | Configured message text |
| Point of error | $POINT | Trigger tag / source |
The bug is triggered when the alarm logging database no longer contains the Date system block. This typically happens when an engineer accidentally deletes the row in the Alarm Logging editor of WinCC Explorer while trying to clean up unused system columns. The Configuration dialog has an internal invariant that requires a Date block to exist before it will accept any new block name. When the invariant fails, the dialog silently disables all input controls that participate in block creation and surfaces the misleading "You must assign a name to the block" prompt.
Secondary causes that produce an identical symptom:
- The alarm logging configuration was edited but never saved (no
Savein the Alarm Logging editor and no project recompile). - The project was migrated from WinCC 6.0 / 6.2 with the original alarm logging files copied unmodified, leaving the internal schema pointer pointing at a block ID that no longer exists.
- The WinCC Runtime is running with the project open while the editor is invoked; the alarm logging service refuses writes because of the active session lock.
3. Solution Procedure
Follow the steps below in order. Each step is verified before the next is attempted. Do not skip the verification section at the end.
3.1 Prerequisites
- Local administrator rights on the engineering station (Alarm Logging writes to
%ProgramData%\Siemens\Automation\WinCC\<Project>and the project folder). - WinCC Explorer closed on all engineering stations participating in the project (to release the
CCWriteDatasemaphore on the project database). - Active WinCC project must not be in Runtime. Open WinCC Explorer > Computer > Properties and confirm Start RT is not currently running.
- Recent project backup (File > Archive Project or copy the project root directory).
3.2 Restore the Date System Block
- Open WinCC Explorer.
- In the left tree, expand Alarm Logging.
- Double-click Configuration. The alarm logging editor opens.
- Switch to the Message Blocks tab. This is the canonical alarm logging editor, not the AlarmControl dialog.
- Verify that the system block Date is listed. If the row is missing, scroll to the bottom of the system block list and add it back:
- Click Add.
- Type
Dateexactly (case sensitive on the first letter in V7.0 SP3+, case insensitive on earlier SPs). - Set Field reference to
$DATE. - Set Length to
10(matches the defaultDD.MM.YYYYformat). - Set Type to
Text.
- Click Apply in the alarm logging editor, then OK to close the dialog.
- Reopen the editor and confirm the Date row is present and persists after a close / reopen cycle.
3.3 Save and Recompile the Project
- Back in WinCC Explorer, right-click the project root and select Save (or use
Ctrl+S). - Open Computer > Properties > Graphics Runtime and trigger a full project recompile by selecting Rebuild all. This forces the alarm logging service to rehydrate its in-memory block table from the on-disk database.
- Close WinCC Explorer completely.
- Reopen WinCC Explorer to confirm the change persisted.
3.4 Recreate Alarm Logging Database (Fallback)
If the Date block cannot be restored in-place because the schema is corrupted:
- Close WinCC Explorer and any open Graphics Designer instances.
- Open SQL Server Management Studio and connect to the WinCC instance (
WINCCon the local machine by default). - Stop the WinCC Alarm Logging service from the Windows Services console:
WinCC AlarmLogging. - Detach the databases
CC_Alg_<ProjectName>_<ComputerName>_<ServerName>for the affected project. - Copy the files
*.mdfand*.ldffrom a known-good backup of the same project into theALGfolder. - Re-attach the database and restart
WinCC AlarmLogging. - Reopen the project in WinCC Explorer and continue with section 3.3.
3.5 Verify the AlarmControl Dialog
- Open the process picture that contains the AlarmControl.
- Double-click the control to launch the Configuration dialog.
- Switch to the Message blocks tab.
- Click into the Name field of any row. The field should now be active (white background) and accept printable characters.
- Type a new block name (e.g.
UserBlock1) and pressTab. The cursor should advance to the Field column and the row should be accepted. - Click OK and re-open the dialog to confirm the change persisted.
4. Verification Matrix
| Check | Expected Result | Pass Criteria |
|---|---|---|
| AlarmControl — Name field | Field is editable, accepts text | No warning popup; cursor visible |
| AlarmControl — Add new block | New row appears with default name | Row count increases by 1 |
| Alarm Logging editor — Date block | Row exists and persists after close / reopen | Row visible on every reopen |
| Project save | Configuration written to *.ldf / *.mdf
|
File modification timestamp updates |
| Project recompile | No errors, alarm logging service rehydrates | No entries in WinCC SysLog with alarm logging fault ID 0x00F0xxxx |
| Runtime startup | AlarmControl displays active messages | Message list shows Date / Time columns |
5. Diagnostic Logs and Error Codes
WinCC alarm logging faults are recorded in the Windows Application Log under source CCAlgLog and the project-local WinCC SysLog. Relevant entries to capture before contacting Siemens technical support:
| Fault ID | Module | Meaning | Typical Cause |
|---|---|---|---|
| 0x00F00001 | CCAlgLog | Missing mandatory system block | Date / Time / Status block deleted in Alarm Logging editor |
| 0x00F00010 | CCAlgLog | Schema version mismatch | Project migrated from V6.x without re-saving |
| 0x00F00020 | CCAlgLog | Database write conflict | Multiple Explorer sessions attempting to write |
| 0x00F00040 | CCAlgLog | Service not responding | WinCC AlarmLogging service stopped or hung |
| 0x00F00100 | AlarmControl OCX | Input field validation failure | Mirrors missing system block; UI-side lock |
Capture the SysLog from <Project>\<ComputerName>\<Servername>\ALG\LOG and the SQL Server log from %ProgramFiles%\Microsoft SQL Server\MSSQLxx.MSSQLSERVER\MSSQL\Log. Both are required by Siemens support if the issue escalates.
6. Engineering Best Practices
Use the following practices to prevent recurrence of the dialog lock in WinCC 7.0 projects:
- Never delete system blocks. The seven blocks listed in section 2 are protected by the runtime; removing them from the alarm logging schema causes downstream editor corruption. If a system block is not required on the display, hide it on the Columns tab of the AlarmControl, not in Alarm Logging.
- Always save Alarm Logging before saving the project. Alarm Logging has its own save lifecycle that is decoupled from the WinCC Explorer project save. A project save without an alarm logging save leaves the on-disk schema stale.
- Close all WinCC Explorer sessions across the network before editing alarm logging. Multiple writers corrupt the database even if the UI does not show a conflict.
- Migrate, then re-save. When opening a WinCC 6.x or 7.0 SP1 project in a later SP, open the Alarm Logging editor, click Apply even if no changes were made, and save. This forces a schema refresh.
-
Document block names in the project standard. A naming convention (e.g.
U_*prefix for user blocks,A_*for application blocks) makes accidental deletion of a system block obvious during code review.
7. Platform-Specific Notes
| Version | Behavior | Recommended Action |
|---|---|---|
| WinCC 6.0 / 6.2 | Same dialog, no popup — field silently ignores input | Upgrade to V7.0 SP4+ or V7.2 |
| WinCC 7.0 (all SPs) | Popup with "You must assign a name to the block" | Apply section 3.2 / 3.3 |
| WinCC 7.2 / 7.3 / 7.4 | Alarm configuration redesigned; no UI lock | Standard project save / restore is sufficient |
| WinCC TIA (Comfort / Professional Panels) | Alarm configuration is project-wide; no equivalent bug | Not applicable |
| WinCC Runtime Advanced | Limited alarm configuration; same invariant applies | Avoid deleting system blocks |
8. Related Issues and Cross-References
- Empty block list after project copy: Same root cause — the destination project lost the Date block during the copy. Apply section 3.2.
- AlarmControl shows no messages at runtime: Verify that the Message list filter on the Selection tab does not exclude the restored Date block. A missing Date block sometimes leaves the filter in a half-bound state.
- Long block names truncated to 32 characters: WinCC 7.0 enforces a hard limit of 32 characters on user block names. This is by design and not related to the dialog lock.
- Configuration dialog opens but is read-only: The WinCC project is set to RT active. Stop Runtime, close all clients, and retry.
9. References to Official Documentation
For a complete description of the alarm logging schema, system block IDs, and the configuration dialog, refer to the following Siemens manuals:
- SIMATIC WinCC V7.0: WinCC Information System — Alarm Logging Manual
- SIMATIC WinCC V7.0: WinCC Information System — Working with WinCC — AlarmControl
- SIMATIC WinCC V7.0 SP3: Release Notes and Compatibility Notes
- SIMATIC HMI WinCC V7.2: Alarm Logging (architecture overview)
For migration of older projects, see the WinCC V7.0 migration cookbook entry — "Migrating WinCC 6.x alarm logging to WinCC 7.0" — in the WinCC Information System under Migration > Alarm Logging.
10. Summary of the Fix
The blocked Name field in the WinCC 7.0 AlarmControl Message blocks tab is not a WinCC patch issue and does not require a service pack upgrade. The dialog is a thin editor that fails its initialization invariant when the Date system block has been removed from the alarm logging database. Restoring the Date block in the Alarm Logging editor (accessible from WinCC Explorer, not from the AlarmControl dialog), saving the configuration, and recompiling the project fully restores dialog functionality.
Engineers encountering this issue should:
- Stop the WinCC project runtime.
- Open the Alarm Logging editor in WinCC Explorer.
- Verify and restore the Date system block (
$DATE, length 10, type Text). - Save the alarm logging configuration and the project.
- Trigger a full project recompile.
- Reopen the AlarmControl and confirm the Name field is editable.
If the schema is corrupted beyond simple repair, the alarm logging database can be replaced from a known-good backup as described in section 3.4. Always maintain a recent project archive before performing any schema-level operations.
FAQ
Why does the popup say "You must assign a name to the block" when the field is grayed out and I cannot type anything?
The error string is a generic input validator response. The Configuration dialog in WinCC 7.0 AlarmControl locks all block-related input controls when the alarm logging schema is missing the mandatory Date system block ($DATE). Restoring the Date block in the Alarm Logging editor (WinCC Explorer > Alarm Logging > Configuration > Message Blocks) clears the lock and re-enables the Name field.
Do I need a WinCC 7.0 service pack or hotfix to fix the grayed-out Name field in AlarmControl?
No. The grayed-out Name field is a schema-level condition, not a binary bug. Re-adding the Date system block, saving the alarm logging configuration, and rebuilding the WinCC project resolves the issue on V7.0 SP1, SP2, SP3, and SP4 without any additional patches.
Can I edit the message block list from the AlarmControl dialog itself?
No. The Configuration dialog inside the AlarmControl OCX is a viewer / editor for the block list but does not own the schema. The canonical editor is Alarm Logging in WinCC Explorer. Always add, rename, or remove message blocks there, not in the AlarmControl dialog.
Will deleting the Date system block in Alarm Logging break Runtime?
Yes. The Date block is required by the runtime to display and sort alarm messages. Removing it causes AlarmControl to display empty rows at runtime and may trigger CCAlgLog fault 0x00F00001. The block is mandatory; hide it on the Columns tab if you do not want it visible.
What is the maximum length of a user-defined message block name in WinCC 7.0?
32 characters, including any prefix or underscore. Names longer than 32 characters are silently truncated and may collide with existing blocks. Use a documented naming convention (e.g. U_Area1_Pressure) to stay within the limit.