Configuring SINUMERIK 840D sl OP Hardkeys via systemconfiguration

David Krause11 min read
HMI / SCADASiemensTutorial / How-to
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

Configuring SINUMERIK 840D sl OP Hardkeys via systemconfiguration.ini

The SINUMERIK 840D sl operator panel (OP) exposes a column of horizontal and vertical keys on the left of the display that are frequently referred to as "hardkeys" because they are physical membrane switches rather than touchscreen buttons. Configuring which PLC signal, NC function, or HMI dialog each key invokes is performed through the systemconfiguration.ini file on the TCU (Thin Client Unit) or PCU (PC Unit). This reference documents the hardware identification, the section/syntax of the INI file, the PLC interface for MLFB 6FC5203-0AF05-1AB0, and the commissioning sequence required to make custom key assignments live on the HMI.

Critical: Modifications to systemconfiguration.ini require an HMI restart and, in most cases, an NCK restart for the new key map to be picked up by the PLC and the HMI. Always back up the file before editing and verify the syntax with the HMI's INI parser (the file is rejected silently if a section header or key is malformed).

1. Hardware Identification: MLFB 6FC5203-0AF05-1AB0

The operator panel referenced in the source query carries the Siemens MLFB (machine-readable product designation) 6FC5203-0AF05-1AB0. The 6FC5203 series designates the OP 010 / OP 010C 10.4-inch TFT operator panel used with the SINUMERIK 840D sl line. The -0AF05-1AB0 suffix defines the variant:

MLFB Field Value Meaning
6FC5203 OP 010 family 10.4" operator panel, 640 x 480 resolution
-0AF05 Variant code Membrane key layout, full key set
-1AB0 Regional / firmware suffix Standard firmware, CE/UL conform

OP 010 is paired with a TCU (e.g., 6FC5312-0DA00-0AA0) or a PCU 50.5 and connected over Industrial Ethernet to the NCU (Numerical Control Unit). The membrane keys on the left side of the panel are wired to a dedicated key controller inside the OP; the controller reports key state to the HMI software through a standardized HMI/PLC interface.

2. Hardkey vs. Softkey Architecture on 840D sl

840D sl operator panels expose three classes of keys, and conflating them is the most common cause of failed configuration attempts:

  • Softkeys (horizontal): Eight function keys rendered along the bottom of the active HMI dialog (F1–F8 in the active mask). Their labels are dynamic and are driven by the dialog selected in the HMI. Configured per dialog, not globally.
  • Softkeys (vertical): The column of keys rendered on the right edge of the display. Same dynamic-label mechanism as horizontal softkeys, also dialog-scoped.
  • Hardkeys (membrane): Physical keys on the left side of the OP and along the top strip. These have fixed positions and fixed mechanical labeling (e.g., MEAS, JOG, MDA, AUTO, channel advance, feed/spindle override). They are addressed by a fixed hardware index, not by a dialog context.

The keys the source query targets are the left-side hardkeys (membrane switches). These are not freely user-definable in the same way softkeys are; the HMI hardkey layer ships with a Siemens-defined default assignment. The assignment can be extended or overridden in systemconfiguration.ini for OEM-specific functions, but the base Siemens key set cannot be removed.

The original reply in the field report calls these keys "softkeys." That terminology is technically incorrect for the 840D sl OP 010 — they are hardkeys. The PLC interface and the INI section naming are different for each class. Make sure you are editing the hardkey section, not the softkey section, when the goal is to remap the membrane keys on the left edge of the panel.

3. systemconfiguration.ini Location and Structure

The systemconfiguration.ini file is stored on the boot volume of the TCU/PCU:

C:\Program Files (x86)\Siemens\MotionControl\oem\sinumerik\hmi\cfg\systemconfiguration.ini

On older PCU 50.3 systems, the path may be:

D:\User\OEM\sinumerik\hmi\cfg\systemconfiguration.ini

The file is plain ASCII, INI-formatted, with semicolon (;) as the comment character. Its top-level sections relevant to hardkey configuration are:

Section Purpose
[HMI] Global HMI parameters: language, screen, timeouts
[KEYS] Hardkey (membrane) global mapping
[HARDKEYS] Per-key assignment with PLC signal binding
[CHANNEL] Channel-specific key behavior
[PLC] PLC interface parameters (DB numbers, byte offsets)

4. Hardkey Address Map

Each membrane key on the OP 010 has a fixed hardware address. The address is reported by the HMI runtime to the PLC on every key event (press and release) through the HMI/PLC interface. The default address map for the left-side column on OP 010 is:

Key Index Default Label PLC DB Byte Bit Function (default)
1 MEAS DB19.DBX0.0 0 Measuring function trigger
2 JOG DB19.DBX0.1 1 JOG mode select
3 MDA DB19.DBX0.2 2 MDA mode select
4 AUTO DB19.DBX0.3 3 AUTO mode select
5 CH-1 DB19.DBX0.4 4 Channel select (cycle forward)
6 CH-2 DB19.DBX0.5 5 Channel select (cycle back)
7 SP-OVR DB19.DBX0.6 6 Spindle override +/- toggle
8 FD-OVR DB19.DBX0.7 7 Feed override +/- toggle

The 16-bit input word from the HMI to the PLC is DB19.DBB0 (also readable as DB19.DBX0.0 through DB19.DBX0.7 and the second byte DB19.DBB1 for keys 9–16). The acknowledgement word from the PLC back to the HMI is DB19.DBB2.

Address assignments above are the Siemens default for the OP 010 / 840D sl standard machine configuration. The exact DB layout is defined by the machine manufacturer's project file (*.ssp or *.hmi project) and may differ on retrofit machines. Always confirm against the project's PLC interface list before assuming the default map applies.

5. systemconfiguration.ini Hardkey Section Syntax

To remap a key, add or modify the [HARDKEYS] section. Each line uses the form:

KeyID = Action

Where KeyID is the index from the address map and Action is one of:

  • A Siemens internal action token (e.g., JOG_MODE, AUTO_MODE, MEAS_TRIGGER)
  • A PLC address trigger in the form PLC:DB<n>.DBX<byte>.<bit>
  • An HMI dialog launch: HMI:dialog_name
  • A custom OEM action defined in oem.ini

Example [HARDKEYS] section binding the second hardkey to a custom PLC bit on DB100:

[HARDKEYS]
; Remap hardkey 2 to set OEM bit DB100.DBX10.0 on press
Key2 = PLC:DB100.DBX10.0
; Hardkey 5 launches custom measuring dialog
Key5 = HMI:smeas_custom
; Hardkey 7 reserved for spindle override (default)
Key7 = SPINDLE_OVERRIDE
; Hardkey 8 reserved for feed override (default)
Key8 = FEED_OVERRIDE

For pulse (edge-triggered) versus level-triggered behavior, the syntax supports an optional modifier:

Key2 = PLC:DB100.DBX10.0:EDGE
Key3 = PLC:DB100.DBX10.1:LEVEL

Default behavior is EDGE (single press sets the bit until the HMI acknowledges the press), matching Siemens convention.

6. PLC Interface Programming

The PLC side of the interface is an FB (function block) in the machine project. The default block for the HMI hardkey interface on 840D sl is FB2 (HMI Interface) within the Siemens base PLC program. The signal direction is:

Direction Address Description
HMI → PLC DB19.DBB0 Hardkey state byte (1 = pressed, 0 = released)
HMI → PLC DB19.DBB1 Reserved for extended key set
PLC → HMI DB19.DBB2 LED control byte (lamp on/off per key)
PLC → HMI DB19.DBB3 Reserved

To respond to a hardkey press in the PLC, monitor the appropriate bit in DB19.DBB0 and latch a state bit in the user program. Minimal STL snippet:

// FB1 - Hardkey Handler (called each PLC cycle)
A DB19.DBX0.0 ; // Hardkey 1 (MEAS) pressed
S M100.0 ; // Latch OEM meas trigger
AN DB19.DBX0.0 ; // Released
R M100.0 ; // Unlatch if level-triggered

// LED control: turn on key 1 LED while in JOG
A "Mode_JOG_active" ; // user mode bit
= DB19.DBX2.0 ; // Hardkey 1 LED on

For an S7-1500-based 840D sl PROFINET variant, the same addresses are accessible from the user program via the data block "HMI_Interface" created by the project wizard.

7. Language and Regional Parameters

The source query also asks about "the meaning of the language" in the hardkey configuration context. Within systemconfiguration.ini, the relevant language parameter is in the [HMI] section:

[HMI]
Language = en_US ; or de_DE, zh_CN, etc.
; Language affects hardkey label rendering if labels are
; taken from text resources (HMI.txl) rather than hardcoded

The default label set for hardkeys is stored in HMI.txl in the language directory of the HMI runtime. To add a second language for the OEM key label layer, supply a parallel HMI.txl in the OEM folder. The HMI runtime falls back to the OEM copy if the active language has no entry for the custom keys.

8. Commissioning Procedure

Follow this sequence to bring a custom hardkey configuration live on the OP 010:

  1. Backup. Copy the existing systemconfiguration.ini to a dated backup directory on the same volume or to a USB stick.
  2. Edit offline. Use a plain-text editor (Notepad++ is the de-facto choice, with INI syntax highlighting) to modify the file. Do not use Word or any rich-text editor; it will corrupt the line endings.
  3. Validate syntax. Open the file in the HMI's built-in INI checker (Service menu → Diagnostics → INI Files) or run slsnhmicfg -v from a TCU shell if SSH/service access is enabled.
  4. Stop the HMI. From the Service menu, select Stop HMI, or use the equivalent command line slsnhmictrl stop. Wait for the "HMI stopped" confirmation.
  5. Replace the file. Overwrite systemconfiguration.ini with the edited version.
  6. Start the HMI. From the Service menu, select Start HMI. Allow 60–90 seconds for the runtime to come back up.
  7. Verify. Press each remapped key and confirm the expected PLC bit is set in the online monitor. Check DB19.DBB0 in the PLC online view.
  8. Document. Save a copy of the final systemconfiguration.ini to the machine documentation directory and add a note to the project's configuration change log.
Safety warning: Hardkey remapping that affects mode select (JOG/MDA/AUTO) or feed/spindle override must be reviewed and signed off by the machine manufacturer's safety engineer. Bypassing or overriding these keys can defeat category-1 stop circuits if the PLC program assumes the default assignment. Follow the safety integration guidance in the SINUMERIK 840D sl Safety Integrated manual.

9. Verification Checklist

After commissioning, run through the following to confirm correct hardkey behavior:

Check Expected Result Method
Remapped key triggers correct DB bit DB bit sets on press, clears on release (or as configured) PLC online monitor
Default key function preserved Siemens default function still works on unmodified keys UI test
LED feedback DB19.DBB2 bits drive the correct key LED Force in PLC online monitor
Mode switching safe Mode select keys (JOG/MDA/AUTO) drive the standard mode DB Online monitor DB11
Channel switching CH-1 / CH-2 cycle through active channels UI test
Override keys Spindle/feed override keys move the override up/down UI test with override displayed

10. Troubleshooting Matrix

Common issues encountered when configuring OP 010 hardkeys via systemconfiguration.ini:

Symptom Likely Root Cause Remedy
Edited file is ignored after HMI restart File written to wrong path (user directory vs system directory) Confirm file is in ...\oem\sinumerik\hmi\cfg\; HMI reads OEM copy with higher priority
Keys do nothing at all Section header typo (e.g., [HARDKEY] missing the trailing S) Verify section header is exactly [HARDKEYS]
Key triggers but PLC bit does not set PLC DB number mismatch with project Cross-check the project's PLC interface list; update INI to point to correct DB
LED does not light on key press DB19.DBB2 not driven by PLC program Add LED control in PLC user program; FB2 handles default Siemens key LEDs only
HMI rejects INI on startup Non-ASCII characters or UTF-8 BOM in the file Save the file as plain ANSI/UTF-8 without BOM
Mode select key stuck or inverted logic LEVEL modifier on a mode select bit Switch to :EDGE for mode keys
Custom HMI dialog does not launch Dialog name typo or missing .com file Verify dialog is registered in oem.ini and compiled *.com exists in the OEM folder

11. Reference Documentation

The authoritative Siemens documentation for SINUMERIK 840D sl operator panel configuration is the Guide for the SINUMERIK 840D sl machine configuring, available from Siemens Industry Online Support. The manual contains the full INI section reference, the complete hardkey address map for the OP 010, OP 010C, OP 010S, OP 015, and OP 019 panels, and worked examples of OEM key remapping projects.

When evaluating the INI sections or PLC interface addresses cited in this article against the live machine, always cross-check with the project-specific configuration that the machine builder supplied. Standard Siemens defaults apply only to projects generated from the standard machine configuration templates; customized projects (especially retrofits) frequently remap DB19 to a different DB number.

What is the difference between hardkeys and softkeys on the SINUMERIK 840D sl OP 010?

Hardkeys are the physical membrane keys on the left edge and top of the operator panel with fixed mechanical labels (MEAS, JOG, MDA, AUTO, channel select, override). Softkeys are the function keys rendered along the bottom or right edge of the active HMI dialog with labels that change depending on which screen is active. Hardkeys are addressed by a fixed hardware index and configured globally in systemconfiguration.ini; softkeys are configured per-dialog.

Where is the systemconfiguration.ini file located on a 840D sl TCU/PCU?

The default path is C:\Program Files (x86)\Siemens\MotionControl\oem\sinumerik\hmi\cfg\systemconfiguration.ini. On PCU 50.3 systems the path may be D:\User\OEM\sinumerik\hmi\cfg\systemconfiguration.ini. The OEM copy takes priority over the Siemens base installation copy.

Does configuring hardkeys require PLC programming?

Yes, the PLC user program must monitor the HMI hardkey input byte (default DB19.DBB0) and respond to the bits set there. The PLC can also drive the LED feedback byte (DB19.DBB2) to illuminate the lamp on a given hardkey. Siemens FB2 provides the default interface handling for the standard key set; custom keys require user-code logic on the appropriate DB bits.

Can the default Siemens hardkey functions be disabled?

Mode select keys (JOG/MDA/AUTO) and the standard channel/override keys cannot be disabled because they are part of the safety-relevant machine interface. Custom hardkeys can be added to unused key positions, but the base Siemens key set is reserved. Document any remap that affects a Siemens default key in the machine's safety review file.

Why does my edited systemconfiguration.ini not take effect after an HMI restart?

Common causes are: (1) the file was edited in the wrong directory and the OEM copy was never updated, (2) the file was saved with a UTF-8 BOM or non-ASCII characters, (3) a section header is misspelled (e.g., [HARDKEY] instead of [HARDKEYS]), or (4) the line ends use mixed CRLF/LF. Save as plain ANSI/UTF-8 without BOM, with consistent CRLF line endings, into the OEM cfg directory, and verify the HMI's INI parser accepts the file before starting the runtime.

Back to blog