Overview
On a SINUMERIK 840D with a PCU50.3 (HMI Advanced) front panel, the control can render active alarms in three distinct visual zones: the alarm line at the top of the screen, the alarm bar along the vertical softkey column, and the alarm "box" centered on the HMI. The center-screen alarm box is the default rendering for new and high-priority alarms when the operator is not currently in a modal NC screen. When several pending user alarms share the same priority and the operator wants a single visible indication without manually acknowledging each one, the HMI offers a time-multiplexed rotation: the displayed alarm advances automatically according to a configurable dwell time.
This article documents the procedure for activating alarm box rotation on a PCU50.3 running HMI Advanced. The verified method modifies the mbdde.ini configuration file with the RotationCycle parameter under the [Alarme] section. A secondary approach using display machine data is also described, with explicit caveats about which display MD is currently confirmed on the platform. Both approaches are written for commissioning engineers and HMI administrators who have file-level access to the PCU and a working backup of the HMI image.
Alarm Display Architecture on the SINUMERIK 840D HMI
The HMI Advanced alarm subsystem separates alarm rendering from alarm data management. Alarm records are generated either by the NCK (NC alarms 0-19999), the PLC (PLC alarms 400000-499999 via DB2 / DB48 / DB49 / DB50 / DB51 depending on configuration), or by the HMI itself (HMI alarms 500000-599999 and user alarms 700000-799999). Once collected, they are passed to the display module through the DDE (Dynamic Data Exchange) pipe described in the SINUMERIK 840D sl product documentation.
Three render targets are available:
- Alarm line (top): a single-line high-visibility area that can rotate alarms on its own without external configuration. This is the default for the highest-priority pending alarm.
- Alarm column (vertical): a multi-line list aligned to the right edge of the HMI, which can scroll programmatically.
- Alarm box (center): a modal panel that occupies the central region of the HMI, used when the operator is parked at a screen that does not itself need to remain readable (for example, the area view). This is the area of interest for this article.
Only the alarm line rotates automatically by default. The alarm box is normally static and is dismissed by operator clear, by acknowledgement, or by a configured cancel condition. Rotation in the center box is a feature introduced in later HMI Advanced versions and is governed by the MBDDE subsystem.
Prerequisites
Apply the following prerequisites before changing HMI configuration files. Skipping these is the most common cause of failed configuration loads on PCU50.3 systems.
- HMI Advanced version 07.06 or later (for the center-box
RotationCyclekey to be honored). Earlier versions expose the alarm line rotation but ignore the alarm box timer. Refer to the SINUMERIK HMI Advanced release notes available on the SINUMERIK 840D sl documentation portal. - Local administrator account on the PCU (user
auduseror operator of theAdministratorsgroup). - Access to the Windows CE / Windows XP Embedded file system (depending on PCU50.3 hardware revision) via FTP, SMB, or local keyboard and monitor.
- A complete backup of
mbdde.inistored in a versioned directory before any edit. Siemens explicitly recommends backing up the entire\hmis\tree before any MBDDE change. - NCK key switch position 0 (general reset state) is not required, but no other HMI session should be editing the same file.
mbdde.ini can prevent the HMI from starting its alarm service. Always keep a known-good copy on removable media before editing.Method 1 — Configure Alarm Box Rotation via MBDDE.INI (Verified)
The verified, field-proven method to enable center-screen alarm box rotation is to set the RotationCycle parameter in the [Alarme] section of mbdde.ini. The value is the dwell time, expressed in milliseconds, that each alarm remains displayed in the box before the HMI advances to the next pending alarm in the rotation queue.
File Location
The default path on a PCU50.3 with HMI Advanced is:
C:\hmis\user\mbdde.ini
On older PCU50.3 revisions using Windows XP Embedded, the file may also be present under D:\User\mbdde.ini. Always edit the file in the
\hmis\user\code>
tree; files in the system tree are overwritten by the HMI runtime on reboot.
Parameter Reference
| Section | Key | Type | Unit | Default | Range | Effect |
|---|---|---|---|---|---|---|
| [Alarme] | RotationCycle | DWORD | ms | 0 (rotation disabled) | 500 – 60000 | Dwell time per alarm in the center box |
| [Alarme] | MaxBoxAlarms | DWORD | count | 5 | 1 – 16 | Number of alarms queued for rotation |
| [Alarme] | AutoClearOnCancel | BOOL | — | 0 | 0/1 | Remove alarm from box when cancel condition clears |
Siemens documents the MBDDE interface in the SINUMERIK HMI Advanced Configuration Manual, which is part of the HMI Advanced installation package and is linked from the SINUMERIK 840D sl documentation portal. The exact section heading uses the German spelling [Alarme]; the English-only spelling [Alarm] is silently ignored on localized HMI builds.
Worked Example
The following complete mbdde.ini fragment enables a 1500 ms rotation cycle (the same value recommended in the field report), with up to eight alarms eligible for rotation and automatic removal of cleared alarms from the box queue:
[Alarme]
RotationCycle=1500
MaxBoxAlarms=8
AutoClearOnCancel=1
This produces a rotation where each of up to eight active user alarms displays for 1.5 seconds in the center box. When the operator clears or cancels the currently displayed alarm, the next alarm in the rotation order advances into the box without operator intervention.
Method 2 — Display Machine Data Approach (Caveat)
An alternative approach is to set a display machine data that controls alarm line rotation. Field reports have referenced display MD 9056 as the candidate for the rotation interval, but the mapping of that MD to the center-box rotation behavior is not unambiguously documented in the HMI Advanced manual and should be treated as unverified on PCU50.3.
The general display-MD family that governs alarm rendering on HMI Advanced lives in the 9xxx range and is read by the HMI at startup. Operators searching for "alarm rot" in the HMI Advanced machine data tree (Start-up → Machine Data → Display MD) will see several candidates.
How to Inspect Display MDs from the HMI
- Set the access level to
Manufacturer(password-protected). - Navigate to Start-up → Machine Data → Display Data.
- Use the softkey Search and enter the substring
ROTorALARM. - Record the MD number, default value, and the in-line tooltip description for any candidate that mentions alarm rotation.
If the HMI shows a display MD with a clear description matching "alarm box rotation" and a default of 0 (off), set it to a millisecond value equivalent to the desired dwell time. Always cross-check the resulting behavior against the verified MBDDE.INI method below to confirm both paths reach the same effective configuration.
ramdisk; MBDDE parameters are re-read on HMI service restart, which makes them the safer choice for incremental changes during commissioning.User Alarm Syntax Reference
Alarms displayed in the rotating center box are user alarms issued by the NC program or by the PLC. The most common source is the NCK, with the syntax:
700000 1 0 "User alarm text"
The format elements are:
-
700000— user alarm number (range 700000–799999 for NC user alarms). -
1— display bit (1 = display, 0 = clear). Set bit 0 to raise, clear it to cancel. -
0— additional attributes (bit 1 = clear by NC reset, bit 2 = clear by power-on, bit 3 = requires acknowledgement). -
"Text"— the alarm message string, optionally expanded with%1,%2,%3substitution parameters.
For PLC-driven alarms, the corresponding DB assignments are documented in the SINUMERIK 840D PLC Interface Manual on the SINUMERIK 840D sl documentation portal. PLC user alarms typically land in the 510000–510499 range when issued from DB2 with the HMI Advanced alarm coupling enabled.
Alarms issued through these standard channels are automatically picked up by the MBDDE alarm service and added to the rotation queue according to the rules in mbdde.ini.
Step-by-Step Configuration Procedure
-
Back up the current configuration. Copy
C:\hmis\user\mbdde.inito a network share or USB stick. Name the backup with a timestamp (for example,mbdde.ini.20241108_preRotation). -
Verify file write access. Right-click the file in Windows Explorer, choose Properties, and confirm the current user has Modify rights. On locked-down builds, ownership may need to be transferred to
auduserfirst. -
Open the file in a non-formatting editor. Use
notepad.exeor the built-in HMI text viewer. Do not use Word, Wordpad, or any editor that writes a BOM or changes line endings, as this can break MBDDE parsing. -
Locate the [Alarme] section. If it does not exist, add it at the end of the file. The MBDDE parser is case-sensitive on the section header and only recognizes
[Alarme]. -
Add the RotationCycle key. Type
RotationCycle=1500(or the dwell time required for the application, expressed in milliseconds). The minimum practical value is 500 ms; values below that become illegible to the operator. -
Add supporting keys as needed. Set
MaxBoxAlarms=8for a reasonable queue depth, andAutoClearOnCancel=1if the application requires that cancelled alarms leave the box immediately. - Save the file. Keep the same encoding (ANSI or UTF-8 without BOM, whichever the file already uses) and the same line endings (CRLF for files written on Windows-based PCU50.3 revisions).
-
Restart the MBDDE service. From the HMI menu, navigate to Start-up → Services → MBDDE → Restart. On PCU50.3 hardware with no menu entry, run
net stop mbddeandnet start mbddefrom a shell, or reboot the HMI entirely. - Verify rotation begins. Generate three or more user alarms in rapid succession and observe the center box. The first alarm should display for the configured dwell time, then advance to the next.
Verification
Three independent checks confirm that the configuration is active.
-
Visual check. Trigger three or more user alarms with
SETAL(700000)in the NC program, or by setting the appropriate bits from the PLC. Watch the center box. Each alarm should display for the configured dwell time, in priority order, before advancing. -
Trace file check. Enable the MBDDE trace via
in the same[Trace] Level=2mbdde.inifile and restart the service. The trace will logRotation: cycle=N ms, index=kentries that confirm the timer is being applied. -
Runtime readback. From the HMI menu, navigate to Diagnostics → Alarm Service → Active Box Queue. The number of queued alarms and the dwell time are displayed. If the dwell time reads 0, the parser has not picked up the
[Alarme]section — recheck the file for typographic errors.
Troubleshooting Matrix
| Symptom | Likely cause | Diagnostic | Remediation |
|---|---|---|---|
| Rotation cycle ignored, alarms remain static in box | Section header spelled [Alarm] instead of [Alarme] | Open mbdde.ini and verify section header | Rename section to [Alarme]; restart MBDDE |
| Rotation cycle ignored, alarms remain static in box | Edit applied to \hmis\ system tree, overwritten on reboot | Check file path; if under \hmis\system\, copy to \hmis\user\ | Move file to \hmis\user\mbdde.ini; restart |
| Rotation too fast, alarms unreadable | RotationCycle set below 500 ms | Read back value from diagnostics page | Increase to 1500–3000 ms for operator readability |
| HMI alarm service fails to start after edit | Non-ANSI characters or stray BOM in mbdde.ini | Open file in hex editor, check for EF BB BF BOM | Re-save as ANSI without BOM; restore from backup if corrupted |
| Only the first alarm in the queue rotates, the rest do not | MaxBoxAlarms set to 1 | Read back value from diagnostics page | Set MaxBoxAlarms to 4 or higher |
| Alarms disappear from box when still active in NCK | AutoClearOnCancel=1 with a transient cancel condition | Inspect the alarm's cancel bit pattern in the NC program | Set AutoClearOnCancel=0 if rotation should be strictly NCK-state-driven |
| Display MD edit did not take effect after NCK reset | Display MDs cached, no HMI restart | Check HMI process start time vs edit time | Reboot HMI; do not edit display MDs without rebooting |
| Alarm box does not appear at all, only alarm line visible | HMI is in a modal NC screen (e.g., MDA / AUTO) that suppresses the box | Switch to area view; observe box appearance | If required persistently, change the screen in the HMI sl configuration |
Safety and Operational Considerations
Alarm box rotation is a usability feature and does not change the underlying alarm state machine. A rotating alarm is still active in the NCK and PLC until its cancel condition is met. Operators must not interpret the absence of a particular alarm in the visible rotation slot as cancellation of that alarm. The complete alarm list is always available from the alarm history (the ALARM softkey key group on the operator panel).
On safety-classified alarms (alarms with the acknowledgement bit set in their attribute byte), Siemens recommends keeping the dwell time above 2000 ms so the operator has time to read the full text and trigger acknowledgement. Faster rotation on safety alarms can cause operators to clear alarms from muscle memory without confirming content, which is a known source of safety-related field complaints.
RotationCycle=0 after a service intervention is a common, silent failure mode.Field-Proven Notes and Edge Cases
Several real-world corner cases surface repeatedly on PCU50.3 systems.
Multiple alarms with the same priority: when two user alarms share the priority and the second is raised while the first is still in the rotation cycle, the MBDDE service holds the second alarm in the queue and inserts it in the next available slot. This is the expected behavior and not a bug. The implementation honors first-in / first-out within a priority bucket.
Interaction with alarm line rotation: the top-of-screen alarm line rotates independently of the box, and at a different (typically faster) cadence driven by display MDs. Operators occasionally see a "stale" alarm in the line while the box has advanced. This is intentional — the line shows the highest-priority alarm at all times, while the box follows the MBDDE queue.
Effect of HMI language switching: when the operator changes HMI language (for example from German to English) while alarms are queued, MBDDE rebuilds the queue using the new text resources. This may briefly cause an alarm to appear in the box out of the expected order, and is a normal refresh artifact, not a configuration error.
Effect of mmc.ini: on some PCU50.3 builds the HMI also consults C:\hmis\user\mmc.ini for alarm-related parameters. If rotation works partially or only after a full reboot, inspect mmc.ini for conflicting keys. The MBDDE.INI values should be authoritative; remove duplicate keys from mmc.ini to avoid load-order ambiguity.
FAQ
Where is the MBDDE.INI file located on a PCU50.3?
The user-editable copy is at C:\hmis\user\mbdde.ini. Files under \hmis\system\ are part of the HMI image and are overwritten on reboot, so always edit the user tree copy.
What unit is the RotationCycle parameter in?
Milliseconds. A value of 1500 corresponds to a 1.5 second dwell per alarm, which is the commonly recommended default. Values below 500 ms are not practical for operator readability.
Does the alarm box rotation work on HMI sl as well?
Yes, but the configuration path is different. On HMI sl the rotation is governed by the Operate config file and by the relevant display MDs, not by mbdde.ini. The MBDDE approach described in this article applies to HMI Advanced on PCU50.3 only.
Is display MD 9056 the correct parameter for alarm rotation?
Field reports mention 9056 as a candidate, but the mapping of that MD to center-box rotation is not unambiguously documented in the HMI Advanced manual. Prefer the MBDDE.INI RotationCycle approach for verified behavior on PCU50.3.
Do I need to restart the NCK to apply the change?
No. Restarting only the MBDDE service is sufficient. From the HMI menu go to Start-up → Services → MBDDE → Restart. If the menu entry is not present, a full HMI reboot also works.