Overview
The SINUMERIK 840C is a Siemens CNC control platform that organizes operator-facing alarms into a strictly partitioned number space. Understanding the boundary between Siemens-supplied standard alarms and machine-builder (OEM) alarms is the first prerequisite for any user who needs to extend, modify, or translate the alarm catalog of an existing 840C installation. This reference covers the practical procedure for adding new alarm numbers, the supported method for editing alarm texts through the PC-based configuration utility OEMFORM 6, the file/DB architecture the control uses, and the field-verification steps to confirm a new alarm fires correctly without disturbing the runtime behavior of the control.
For OEM alarm creation, the supported path on a PC is the SINUMERIK 840C Alarm Dialog for PC – OEMFORM 6 software, version 6, which writes the OEM alarm text database that the NCK and the operator panel later display.
Alarm Number Architecture on the 840C
Alarms displayed on the 840C are not stored in a single flat list. Siemens partitions the alarm number range by ownership, source code, and display language handling. A wrong assumption about which range a target alarm lives in will lead to text that is invisible at runtime, text that switches language unexpectedly, or text that cannot be edited at all without affecting the Siemens base catalog.
| Alarm Number Range | Owner | Language Switching | Editable by End User? |
|---|---|---|---|
| 1 – 3999 | Siemens (standard alarm catalog) | Automatic, follows active HMI language | No – part of Siemens base load |
| 4000 – 5999 | Siemens / reserved | Automatic, follows active HMI language | No |
| 6000 – 8999 | OEM (machine builder) | Language follows OEM-supplied text file | Yes – via OEMFORM 6 / OEM text DB |
| 9000 and above | OEM (machine builder) / extended | Language follows OEM-supplied text file | Yes – via OEMFORM 6 / OEM text DB |
The practical implication: any new alarm the machine builder wants to add – for example a guard-door interlock, a hydraulic pressure trip, or a tool-life warning – must be assigned a number in the 6000-and-above OEM space. Using a Siemens-standard number (1-3999) is not supported and will either be rejected by the alarm DB load routine or will overwrite a Siemens catalog entry, producing a control that fails to boot or displays incorrect standard alarm text.
Why OEM Alarm Text Is Harder Than Adding the Number
Adding a new alarm number to the PLC logic – typically by setting a flag that the NCK interprets as an alarm request, or by writing to the alarm interface in the PLC user program – is a routine task for an integrator familiar with the 840C STEP 5 / STEP 7 conventions used on this platform. The number can be created quickly. The accompanying text string that the operator actually reads on the screen is a separate, much more complex artifact:
- The 840C stores alarm texts in an OEM-specific text database on the MMC (man-machine communication) side, not in the NCK or PLC.
- Each OEM alarm can have multiple language variants (German, English, French, Italian, etc., as configured on the control).
- The text DB is binary, not a plain text file, and direct editing with a text editor corrupts the load image.
- Loading the modified DB back to the control requires the correct PC link and OEMFORM 6 write sequence.
This is why Siemens provides the dedicated OEMFORM 6 PC tool: it is the only supported way to add, change, or delete OEM alarm texts without breaking the load format.
OEMFORM 6 – Tool Description and Scope
OEMFORM 6 (Alarm Dialog for PC, OEM Version for Windows) is the Siemens-published utility for editing OEM alarm texts on the 840C. According to the official Siemens support document, the tool "allows the user to enter his own alarm texts and messages in the database of NC control 840C OEM Version for Windows and to modify" existing entries. Source: SINUMERIK 840C Alarm Dialog for PC, OEMFORM 6 documentation (PDF).
What OEMFORM 6 Does
- Opens the OEM alarm text database that resides on the PC (the offline copy that will later be transferred to the 840C MMC).
- Provides a tabular dialog for each OEM alarm number (typically the 6000+ range) showing all installed language columns.
- Allows insertion of new alarm numbers with their text in one or more languages.
- Allows modification of text for existing OEM alarm numbers already in use on the machine.
- Allows deletion of OEM alarm numbers no longer referenced by the PLC program.
What OEMFORM 6 Does Not Do
- It does not edit Siemens standard alarms (1-3999). These are part of the Siemens base load and are language-switched automatically; the OEM has no read/write access.
- It does not change the PLC logic that raises an alarm. The alarm number is set in the PLC user program; OEMFORM 6 only edits the text associated with that number.
- It does not, by itself, push the new text to a live control. The transfer step is a separate procedure covered below.
Prerequisites Before Editing
Before launching OEMFORM 6, verify the following are in place. Skipping any of these is the most common cause of "the new alarm text does not appear" or "the control now displays a corrupt alarm line."
- PC platform: A Windows PC matching the OEMFORM 6 release notes (the tool was published for the Windows generations contemporary with the 840C; later Windows 10/11 hosts can run it under compatibility mode if the original target OS is not available, but verify with Siemens support).
- Backup of the existing OEM text DB: Always archive the original file before any change. OEMFORM 6 overwrites in place.
- Knowledge of installed languages: Identify which HMI languages are active on the target 840C. The control only displays a language column if that language is enabled in the MMC configuration; an OEM text in a non-enabled language is stored but never shown.
- Alarm number plan: Document the new alarm number, the PLC source that will set it, the reset/clear condition, and the desired text in every installed language. Keep a paper list – the tool will not enforce numbering conflicts for you.
- PLC source available: The PLC program (STEP 5 for classic 840C, or STEP 7 depending on the controller variant) must be edited separately to raise the new alarm. OEMFORM 6 only edits text; it does not generate the alarm condition.
Step-by-Step: Adding a New OEM Alarm
The following procedure assumes the integrator is adding a new alarm that did not previously exist in the OEM catalog.
Step 1 – Plan the Alarm Number
Pick a free number in the OEM partition (≥ 6000). Cross-check the existing alarm list in the current OEM DB to avoid collisions. Document:
- New alarm number (e.g.
6043) - Trigger condition in plain language
- PLC flag / DB bit / DW that will be set when the alarm condition occurs
- Reset / clear condition
Step 2 – Launch OEMFORM 6 and Open the DB
Start the OEMFORM 6 program and open the OEM alarm text database corresponding to the target 840C software version. Confirm the path and the DB identifier before editing – using the wrong DB version produces an alarm file the control will reject on next boot.
Step 3 – Insert the New Alarm Number
Use the dialog's Insert function to add a new row for the chosen alarm number. The row will appear with empty language columns if it is a brand-new number.
Step 4 – Enter Text in Each Installed Language
For every HMI language enabled on the control, type the operator-facing message. Constraints to observe:
- Stay within the maximum character count per language (set by the DB column width in OEMFORM 6 – typically limited; longer messages wrap awkwardly on the 840C display).
- Avoid control characters, line breaks, and the character set reserved for token substitution.
- Use consistent terminology with the existing OEM alarms so operators are not confused by synonyms.
Step 5 – Save the DB Locally
Save the modified database to the PC disk. OEMFORM 6 writes the file in the binary format the 840C MMC expects; do not attempt to "Save As" a plain-text version.
Step 6 – Update the PLC Program
Separately edit the PLC program (STEP 5 / STEP 7) to set the new alarm number on the alarm interface when the condition is true. The 840C reads the alarm request from a defined interface area; the bit-to-number mapping must match the number entered in OEMFORM 6.
Step 7 – Transfer the Modified DB to the 840C
Transfer the new OEM alarm DB to the control's MMC using the supported PC link. The exact protocol (RS-232 MMC load, or a later fieldbus-based MMC transfer, depending on the 840C hardware revision) is defined in the 840C commissioning manual. After transfer, a controlled restart of the MMC is normally required for the new text to take effect.
Step 8 – Verify
Force the alarm condition in the PLC (set the trigger flag) and confirm the new number and the new text appear on the HMI. Then clear the condition and confirm the alarm clears cleanly from the alarm line. Cycle through every active HMI language and confirm the localized text is correct in each.
Editing an Existing OEM Alarm Text
The flow for changing the text of an alarm that already exists is identical to the flow above, except Steps 3 and 6 differ:
- Step 3: locate the existing alarm number in the dialog and overwrite the text in the language column(s) you want to change. Do not change the alarm number itself – the PLC is still raising the original number; changing the number in the DB will create a "number not found" condition and the operator will see the raw number with no text.
- Step 6: no PLC change is needed unless the trigger logic is also being modified.
6043 → 7120), this is effectively a delete-plus-add. The PLC must be updated to raise the new number, and the old number's text row should be deleted from the DB to avoid confusing operators who scroll the alarm history.
Language Behavior – What the Operator Actually Sees
The 840C supports switching the HMI between installed languages at runtime (e.g. an operator changes the display from German to English via a softkey). Two different language mechanisms are in play, and confusing them is a frequent source of "the alarm text does not switch with the language" field reports.
| Alarm Range | Language Source | Behavior When HMI Language Changes |
|---|---|---|
| 1 – 3999 (Siemens standard) | Siemens-supplied catalog, resident in NCK/MMC base load | Text automatically switches to the localized Siemens-supplied message in the new HMI language, provided that language exists in the Siemens base catalog. |
| ≥ 6000 (OEM) | OEM-supplied DB, populated by OEMFORM 6 | Text switches only if the integrator provided a translation in the new language. If the language column is empty, the operator sees the German text, the English text, or a blank line – depending on control version and which language is the OEM "fallback." |
For a multilingual site, the integrator is responsible for filling every installed language column of every OEM alarm. The control will not auto-translate OEM text.
File and DB Layout (Reference)
The OEMFORM 6 tool operates on a structured database. The following is a high-level reference of the data shape; the exact on-disk filename and DB identifier depend on the 840C software version in use and should be confirmed against the active Siemens documentation set for that version.
| Element | Description | Notes |
|---|---|---|
| Alarm number (key) | Integer ≥ 6000 for OEM entries | Must be unique within the OEM DB |
| Language column | One column per installed HMI language | Set defined by MMC configuration, not by OEMFORM 6 |
| Text field | Operator-facing string in the corresponding language | Fixed character width; do not exceed |
| Attributes | Display class (e.g. clearance, power-on clear, always-clear) | Where supported by the 840C software version |
Verification Checklist
After the modified DB and updated PLC program are loaded, run the following verification sequence before releasing the machine to production:
- Alarm appears with correct text in language #1: Force the trigger; confirm the number, the text, and the clearance category are correct.
- Alarm appears with correct text in language #2..N: Switch the HMI to each installed language and repeat the force-test.
- Alarm clears correctly: Reset the trigger; confirm the alarm is removed from the active alarm line within the expected PLC cycle time.
- No collateral damage to standard alarms: Trigger a sample of known Siemens standard alarms (e.g. a deliberate feed-hold to fire a Siemens catalog alarm) and confirm the standard text still appears – a corrupt OEM DB load can occasionally mask Siemens catalog display depending on the MMC software version.
- Alarm history is consistent: After force/clear cycling, the alarm history log shows the new number with the correct text and no orphan rows for the old number.
- Power-cycle persistence: Power-cycle the 840C; confirm the new alarm text is still present (i.e. the DB was committed, not just staged in RAM).
Troubleshooting Matrix
| Symptom | Likely Cause | Action |
|---|---|---|
| New alarm number appears, but text is blank | OEM DB column for the active HMI language is empty | Fill the text in OEMFORM 6 for every installed language; re-transfer |
| New alarm number appears, but text is in the wrong language | HMI language switched after the alarm fired; OEM DB has text in the other language only | Add the missing language column; re-transfer |
| Operator sees only the raw number, no text at all | Alarm number is in the 1-3999 range (Siemens catalog) and the integrator attempted to overwrite it | Move the alarm to ≥ 6000; restore the Siemens catalog from backup |
| Control refuses to load the modified DB | File corruption from manual binary edit, or wrong DB version transferred to a control expecting a different version | Restore from backup; re-edit with OEMFORM 6 only; confirm version match |
| Alarm fires but PLC does not clear it | PLC reset logic for the new number is missing or wrong | Review the PLC alarm-clear logic; ensure the clear condition matches the trigger condition |
| New alarm text disappears after MMC restart | DB transfer did not commit, or staged in volatile memory | Re-run the transfer procedure; confirm commit; power-cycle and re-verify |
Operational Best Practices
- Number the OEM catalog with gaps. Do not pack new alarms into consecutive numbers. Leave 10-20 number slots free between functional groups so future additions do not force renumbering.
- Keep a master alarm list as a controlled document. A spreadsheet mirroring the OEMFORM 6 DB is the simplest way to track number, trigger, text per language, and revision history.
- Translate as you add, not later. Adding text in all installed languages during the initial OEMFORM 6 edit is far cheaper than coming back to a machine in production with a missing translation.
- Treat the OEM DB as a versioned artifact. Store the DB with the machine's revision-controlled documentation; the next service intervention on the machine will need it.
- Do not edit the OEM DB binary directly. Even a single byte misalignment will render the file unloadable. OEMFORM 6 is the only supported path.
-
Validate the PLC interface first. Verify that the alarm number the PLC raises is in the OEM partition before touching the DB. A PLC that raises
3300for an OEM condition will never show the OEM text no matter how the DB is edited.
FAQ
Where exactly are Sinumerik 840C OEM alarm texts stored?
OEM alarm texts are stored in a dedicated OEM alarm text database on the MMC (man-machine communication) side of the 840C, separate from the Siemens standard alarm catalog that lives in the NCK base load. The database is created and edited on a PC with the OEMFORM 6 tool, then transferred to the control. See the Siemens OEMFORM 6 documentation for the supported procedure.
What alarm number range should a new machine-builder alarm use on the 840C?
New OEM alarms must be placed at number 6000 or above. The 1-3999 range is reserved for the Siemens standard catalog and is language-switched automatically from the Siemens base load; attempting to use a Siemens-standard number for an OEM condition will not display the integrator's text and may corrupt the catalog.
Why does the text of my new alarm not switch when the operator changes the HMI language?
Siemens standard alarms (1-3999) auto-switch with the HMI language. OEM alarms (≥ 6000) switch only if the integrator supplied a translation in the new language using OEMFORM 6. If a language column is empty, the operator will see the text in whichever language is configured as the OEM fallback, or a blank line. Fill every installed language column to get full multilingual behavior.
Can I edit a Siemens standard alarm text (number 1-3999) on the 840C?
No. The 1-3999 catalog is owned by Siemens and is not editable by the OEM or end user. OEMFORM 6 is scoped to OEM alarms (≥ 6000). To add a new alarm, the integrator must use a free number in the OEM partition.
What happens if the modified OEM alarm DB is transferred to a 840C running a different software version?
The control will typically reject the DB load, leaving the existing OEM text catalog intact. Always confirm the DB version identifier in OEMFORM 6 matches the software version of the target 840C before transferring, and back up the live DB before any change so a version-mismatched load can be rolled back.