Siemens LOGO! 0BA7 TD Key Programming: F1-F4 and Arrow Inputs

David Krause13 min read
HMI / SCADASiemensTechnical Reference
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

1. Overview: LOGO! 0BA7 and Text Display Key Capability

The Siemens LOGO! 0BA7 (LOGO! 7 generation) programmable relay combined with the LOGO! TD (Text Display) module is a common HMI solution for small automation systems. A frequent question when designing TD-based user interfaces is which keys are exposed to the program and which are reserved by the LOGO! firmware. The short, definitive answer is:

  • Function keys F1, F2, F3, and F4 are fully programmable user inputs.
  • The four arrow keys (Up, Down, Left, Right) are programmable, but only when the ESC key is held as a modifier.
  • The OK key is not available as a logic input; it is reserved for the built-in menu system.
  • The ESC key is also not available as a standalone logic input; it functions only as a qualifier for the arrow keys and as a system back/escape key.

This reference documents the key model in detail, explains why ESC and OK are not exposed to the program, and shows how to design submenus, parallel process control, and time-based auto-return using only the four function keys and the ESC-modified arrow keys. All key IDs, block names, and configuration steps align with Siemens LOGO! 0BA7 system manual and the LOGO!Soft Comfort online help.

2. Hardware Identification and Compatible Modules

Before writing any program, confirm that you are working on a 0BA7 generation device. The generation suffix is printed on the front of the LOGO! base module and on the type label.

Component Generation / Catalog Reference Notes
LOGO! Base 12/24 RCE 0BA7 (RCE suffix = relay outputs + Ethernet) 8 DI / 4 DO onboard
LOGO! Base 230 RCE 0BA7 8 DI / 4 DO onboard, relay
LOGO! TD (Text Display) 6ED1055-4MH00-0BA1 family 4 lines × 12 chars in basic mode
LOGO! TDE (Text Display with Ethernet) 6ED1055-4MH08-0BA0 family Connects via Ethernet to 0BA7
LOGO!Soft Comfort V8.0 and later for 0BA7/0BA8 V8.4+ recommended for 0BA7 projects
Generation check: The 0BA7 introduced the integrated Ethernet port on the base unit. Earlier 0BA5/0BA6 hardware can be expanded with a TD but uses a different connector and a different key mapping. The behavior described here applies strictly to 0BA7 + TD combinations.

3. Available Programmable Keys on the LOGO! TD

When a TD is connected to a 0BA7, LOGO!Soft Comfort automatically creates dedicated input flags for the keys the firmware exposes. The flags are visible in the Tools > Simulation menu and on the I/O name table of the online test.

TD Key Internal Flag (display-side) Usable in user program? Notes
F1 I25 / F1 Yes Direct logic input
F2 I26 / F2 Yes Direct logic input
F3 I27 / F3 Yes Direct logic input
F4 I28 / F4 Yes Direct logic input
Up arrow Esc + Up Yes, only while ESC is held Modifier required
Down arrow Esc + Down Yes, only while ESC is held Modifier required
Left arrow Esc + Left Yes, only while ESC is held Modifier required
Right arrow Esc + Right Yes, only while ESC is held Modifier required
ESC — No (used as modifier and as system back) Reserved
OK — No (used for built-in menu / parameter editing) Reserved

The exact internal flag names vary between LOGO!Soft Comfort versions and firmware builds, but the contract is identical: four function keys plus four arrow keys, with the arrow keys gated by ESC. The ESC/OK inputs are consumed by the LOGO! operating system and are not re-routable to user logic.

4. Why ESC and OK Are Reserved for System Functions

The ESC and OK keys are managed by the LOGO! runtime, not by the compiled user program. ESC is used to navigate out of a submenu, cancel a parameter edit, and to qualify the arrow keys for user logic. OK is used to enter the built-in configuration menu (date/time, message text editing, program transfer, start/stop) and to confirm parameter changes. Because these keys are tied to the system UI, exposing them as raw flags would create conflicts between user logic and the TD's built-in editing functions. The firmware therefore keeps them internal and offers only F1–F4 and ESC-modified arrows to the program.

If a project truly requires a dedicated "Cancel" or "Confirm" input from the operator, the typical workarounds are:

  1. Assign F1–F4 semantically (F4 = Cancel, F1 = Confirm, for example).
  2. Use an external pushbutton wired to a digital input on the LOGO! base or expansion module.
  3. Replicate the role with a long-press timer on one of the F-keys.

5. Programming the F1–F4 Function Keys in LOGO!Soft Comfort

To use a function key in FBD/LAD programming, insert a digital input and bind it to the TD key flag. In LOGO!Soft Comfort:

  1. Open the Inputs/Outputs list, expand the TD node, and locate the F1–F4 inputs.
  2. Drag the desired flag onto the work area (or use the I/O name to reference it symbolically).
  3. Connect the flag to the Set input of an SR/RS latch, the trigger input of a counter, or a digital input pin of any other block.
  4. Open the TD's message configuration and assign the F-key to the message that will be visible to the operator. The TD will display a soft-key label (F1, F2, F3, F4) at the bottom of the screen.

Because the keys are momentary in the runtime, debounce is rarely required. For latched behavior (e.g., toggling a process on/off), wire the F-key flag to the Set of an SR flip-flop, and use a second F-key (or the same key combined with a state flag) to Reset it.

6. Programming Arrow Keys with ESC Modifier

The arrow keys become available only when ESC is held down. The practical implementation in LOGO! is to add an AND block whose inputs are the arrow flag and the ESC flag:

// Pseudo-logic for "Up" while ESC is held
UpEnabled = F_Up_Arrow AND F_ESC_internal;

In LOGO!Soft Comfort, drop the arrow input on the schematic, drop the ESC input on the schematic, then place an AND block and wire both into it. The output of the AND block is a clean one-cycle pulse per arrow press while ESC is held. Use this signal to drive an Up/Down counter, a shift register, or a message-text selector.

Operator UX: Because ESC must be held to enable the arrow keys, reserve the arrows for navigation between values and screens, and reserve the F-keys for direct commands (Start, Stop, Reset, Acknowledge). This split avoids accidental arrow activations when the operator only intended to press ESC to leave a screen.

7. Multi-Process Menu Architecture with Function Keys

For a project that controls four processes in parallel from a single TD, the recommended architecture is a two-level menu:

  • Main menu — soft-key labels F1, F2, F3, F4 each select a different process (P1, P2, P3, P4).
  • Process submenu — once inside a process, the F-keys are remapped to commands (Start, Stop, Reset, Acknowledge).

The state that decides which submenu is active is held in a single state word, typically a shift register or a 2-bit counter. The F-key at the main menu level writes to that state word, and a decoder block (B001 to B004) lights the corresponding submenu message on the TD.

The key requirement expressed in the original problem is that pressing F1 in the main menu must both enter Process 1 and inhibit F2, F3, F4 from also entering their submenus. This is achieved naturally by making the F-keys Set-coils of a state latch, not by using them directly as the submenu display enable. Once one Set coil has fired, the others are ignored until the state is reset.

8. Shift Register Pattern for Menu State Tracking

The Shift Register block (Block number B36 in LOGO!Soft Comfort) is the conventional choice for stepping through menu pages. The basic wiring is:

Shift Register Pin Connection Behavior
S_IN Logic 1 (constant) Loads a '1' into bit 0 on each trigger
TRIG F1 (or whichever F-key advances the menu) Shifts on rising edge of F1
DIR Logic 0 or F2 depending on direction Direction control
S_OUT Not used in menu applications Last bit of register
Q1..Q8 Decoded to TD message enables One bit per submenu / screen

A clean pattern for four processes is to dedicate Q1 to the main menu and Q2..Q5 to Process 1..4. Pressing F1 shifts from Q1 to Q2, pressing F2 shifts from Q1 to Q3, and so on. From any Q2..Q5 state, the operator can return to Q1 by triggering the Reset logic described in the next section.

// Pseudo-block for main menu routing
// Q1 = Main menu visible
// F1 -> Shift to Q2 (Process 1)
// F2 -> Shift to Q3 (Process 2)
// F3 -> Shift to Q4 (Process 3)
// F4 -> Shift to Q5 (Process 4)

SREG.S_IN  := 1;
SREG.TRIG := F1 OR F2 OR F3 OR F4;
SREG.DIR  := 0;          // always shift forward
SREG.Q1   -> ShowMainMenu;
SREG.Q2   -> ShowProcess1;
SREG.Q3   -> ShowProcess2;
SREG.Q4   -> ShowProcess3;
SREG.Q5   -> ShowProcess4;

9. Auto-Return to Main Menu: Resetting the Shift Register

The Shift Register block has no dedicated Reset pin. The supported reset techniques are:

  1. Reload via S_IN and TRIG: Drive S_IN to the value you want at the first bit, then issue a TRIG pulse. This forces bit 0 and shifts everything else by one — useful for "clear all" patterns.
  2. Force a wrap-around: Wire the highest used bit (Q5 in the example above) to a NOT gate whose output is fed to S_IN. When the operator has stepped past the last submenu, the next trigger returns the register to all-zeros, which can be decoded as "main menu".
  3. OR all bits into an inactivity timer: If no F-key is pressed for X seconds, the timer fires, sets a Reset latch, and the Reset latch drives S_IN to 0 and forces a TRIG. This is the technique the original problem asked for.

The inactivity timer is built from an On-delay (B04) whose input is the OR-combination of all F-key flags. The timer's output triggers a one-shot pulse that drives the S_IN/TRIG path back to the Q1 (main menu) state.

// Inactivity auto-return (30 s)
IdleTimer.IN := F1 OR F2 OR F3 OR F4 OR Up OR Down OR Left OR Right;
IdleTimer.T  := T#30s;

AutoReturn.PULSE := IdleTimer.Q;

SREG.S_IN  := AutoReturn.PULSE ? 1 : 1; // 1 to enter Q1, retrigger returns to 0
SREG.TRIG  := F1 OR F2 OR F3 OR F4 OR AutoReturn.PULSE;
SREG.DIR   := 0;
Tip: For the auto-return to be predictable, ensure that S_IN is 0 (not 1) when the inactivity timer fires if you want the register to be cleared to all-zeros. If S_IN is 1 and TRIG fires, the register will load 1 at bit 0 and shift everything up, which may not return the display to the main menu.

10. Step-by-Step: Configuring Keys in LOGO!Soft Comfort

  1. Create a new project in LOGO!Soft Comfort and select the target device LOGO! ... 0BA7.
  2. Add the TD to the network configuration (Tools > Ethernet Connections or simply simulate with a TD panel on the schematic).
  3. Insert digital input blocks. In the I/O Name column, assign the input to F1, F2, F3, or F4. For arrow keys, assign the input to Esc + Up, Esc + Down, Esc + Left, or Esc + Right.
  4. Build the FBD/LAD program. Use the F1–F4 flags as the user input source, the Shift Register block (B36) to track menu state, and an On-delay (B04) for the inactivity auto-return.
  5. Configure the TD messages: open the TD/Display editor, create a message for the main menu and a message for each submenu, and assign F-key soft-key labels to the bottom line.
  6. Compile the program (F2 in LOGO!Soft Comfort) and verify no warnings about unmapped flags.
  7. Simulate with F3 (Start simulation). The TD panel can be opened from the View menu to test the keys without a physical device.
  8. Download to the LOGO! 0BA7 via Ethernet using Tools > Transfer > PC -> LOGO!.

11. Verification and On-Line Test Procedure

After download, run the following checks to confirm the key wiring is correct:

  1. Enter online test (Tools > Test) and watch the F1–F4 input bits in the I/O status table. Each press of a physical F-key must toggle the corresponding bit high for one cycle.
  2. Press the arrow keys without holding ESC. The arrow bit must remain low. Hold ESC and press the arrow — the bit must pulse high. This validates the modifier logic.
  3. Press OK or ESC alone. The OK and ESC bits must never appear in the I/O status table; if they do, you have accidentally selected a flag that is not present in the firmware, and the online test will mark it invalid.
  4. Step through the menu and confirm the Shift Register Q-bits advance one position per F-key press.
  5. Leave the TD idle for the configured timeout (e.g., 30 s) and confirm the display returns to the main menu without operator input.
  6. Cycle the LOGO! power and confirm the menu starts at Q1 (main menu) on cold boot.
Symptom Likely Cause Corrective Action
F-key does not trigger the user logic Wrong flag mapped in I/O name Re-assign the F1–F4 input block to the correct TD flag
Arrow keys do nothing ESC modifier not wired through an AND block Insert AND with arrow flag and ESC flag as inputs
OK key does not trigger user logic Expected behavior — OK is reserved Reassign to F-key or wire an external input
ESC key does not trigger user logic Expected behavior — ESC is reserved Use ESC only as modifier for arrows or as system back
Submenu does not return to main menu Auto-return timer not wired to shift register reset Connect On-delay output to S_IN and TRIG of the shift register
Multiple submenus activate at once F-keys wired directly to display enable Use a state latch (shift register) and decode the state to a single display
Shift register never resets S_IN is stuck high Force S_IN to 0 through the auto-return path

12. Frequently Asked Questions

Can I use the ESC and OK keys in my LOGO! 0BA7 program?

No. The ESC and OK keys on the LOGO! TD are managed by the LOGO! firmware for system navigation and parameter editing, and they are not exposed as digital input flags in the program. Use F1–F4 for direct commands, and use the arrow keys (with ESC held as a modifier) for navigation.

How do I activate the arrow keys on the LOGO! TD?

Hold ESC and press the desired arrow key. In your program, the arrow signal is only valid while ESC is held, so wire an AND block whose inputs are the arrow flag and the ESC flag. The output of the AND block is your usable arrow signal.

How do I navigate between four submenus with only four function keys?

Reserve F1–F4 for the four submenu entries in the main menu, and remap the same F-keys to commands (Start/Stop/Reset/Ack) inside each submenu. Use a shift register or state latch to remember which submenu is active, and decode the state to drive the TD message display.

How do I reset a Shift Register block in LOGO! 0BA7?

The Shift Register block (B36) has no dedicated Reset pin. To reset it, drive the S_IN input to the desired bit pattern (0 to clear all bits) and pulse the TRIG input. For an auto-return after inactivity, use an On-delay timer whose output drives a one-shot pulse into S_IN and TRIG to return the register to the main menu state.

Will this key behavior change on LOGO! 0BA8 or 0BA9?

No. The TD key model has remained consistent across 0BA7, 0BA8, and 0BA9 generations: four programmable function keys, four ESC-modified arrow keys, and reserved ESC/OK for system use. Newer generations add a TDE with the same key layout plus an Ethernet port, but the program-side key contract is unchanged.

Back to blog