Siemens LOGO! LWE Softkey Bi-Directional Control via V-Memory

David Krause18 min read
HMI ProgrammingSiemensTutorial / 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

1. Overview: The LOGO! Softkey and the Web Editor Gap

Siemens LOGO! 8 (6ED1052-xxx08-0BA8) and LOGO! 8.3 (6ED1052-xxx08-0BA9) logic modules expose four on-device softkeys (F1-F4) on the integrated display and on the LOGO! TDE (6ED1055-4MH00-0BA0). These softkeys are mapped to four softkey function blocks, B001-B004, which behave as digital contacts in the user program. They are the only operator-input elements on the LOGO! panel that are not bound to a fixed input terminal.

The LOGO! Web Editor (LWE) - invoked through the Web Server menu of LOGO! Soft Comfort (LSC) - generates a custom HTML dashboard hosted by the LOGO! on-board web server. The on-board server is split into two distinct services:

  • Standard / extended web server (firmware 8.0 onward, refined in 8.3.x and 8.4): exposes variables, flags, network inputs, and tag values through a configurable dashboard.
  • Legacy simple web server (pre-8.0): exposes a small fixed set of operands without user-defined screens.

A documented engineering rule applies across both services: a softkey can only be operated from the LOGO! display or the TDE display, and a softkey cannot be operated from the web server or displayed as a writable value on the web server. The extended web server treats the four softkey blocks purely as digital read-only values - it can display their contact state but cannot accept operator input on them, and the LWE page generator does not expose them as editable widgets.

This creates a recurring engineering problem: a binary parameter (mode switch, enable flag, manual override) must be readable and writable from both the panel and the LWE page, with state synchronized bidirectionally and retained across power cycles. The remainder of this document describes the canonical solution using V-memory bits, digital network inputs/outputs, and a pulse relay.

Important: The softkey status on the LOGO! display always reflects the trigger contact (B001-B004) state, not the actual mode state. The display text will read "Off" or "On" relative to the trigger pulse, not the controlled function. Plan the user-interface text accordingly and document the convention in the operator manual.

2. Prerequisites

Item Specification
LOGO! base module 6ED1052-1CC08-0BA8 (LOGO! 8 with display) or 6ED1052-1MD08-0BA8 (LOGO! 8.3 with Ethernet), or any 0BA8 / 0BA9 variant
Firmware Minimum 8.0 (1.80.01) for V-memory edit from LWE; 8.3.x recommended for stable NI/NO mapping
LOGO! Soft Comfort (LSC) Version 8.3 or later, matching firmware major release (8.x with 8.x)
LOGO! Web Editor (LWE) Embedded in LSC; invoked from Tools > Web Server Editor
Browser (operator side) Any modern HTML5 browser; LWE generates plain HTML forms, no JavaScript dependencies
Network I/O At least one free digital network input (NI) and one digital network output (NO) per bi-directional parameter
Marker memory At least one retentive marker (M) for each state that must survive a power cycle
Operator access Read/write access to the LWE project (.lsc) and to the LOGO! IP address for the on-board web server

Confirm firmware version by navigating on the LOGO! display to System > Diagnostics > Versions or by reading the GET request banner on the on-board web server at http://<logo-ip>/. LSC and LOGO! firmware must match within the same major release; mixing 0BA7 and 0BA8 firmware on the same PC project is not supported.

3. Why Softkeys Cannot Be Edited in the Web Editor

Softkey blocks B001-B004 appear in the LWE variable memory configuration table as digital values. The on-board web server can read them, and the LWE page can show their contact state as a colored indicator. However, the HTTP PUT handler that processes operator input on the standard/extended web server has no binding to the B001-B004 internal storage. The handler is wired to:

  • Variable memory bits V0.0-V850.7 (851 bytes / 6808 bits)
  • Flag bits M1-M64 (read-only from web in firmware 8.0; partial read/write on 8.3+)
  • Network inputs NI1-NI64 (read-only on the web; writes from the web are not allowed in 8.0, only display)
  • Cursor keys and operator panel inputs (LOGO! 8.4 with display-equipped base module)

Softkey block writes are not exposed because the softkey is an HMI input device, not a writable operand. The internal input is the physical button on the display PCB. This is by design and is not affected by firmware updates or LWE revisions.

Engineering implication: Any binary parameter that must be writable from the web must be backed by a V-memory bit (or a network input that the LOGO! program reads), not by a softkey block. The softkey can still trigger a mode change but cannot be the storage element of the mode itself.

4. Architecture: V-Memory and Network I/O as the Bridge

The canonical bridge between the LOGO! panel, the LOGO! program, and the LWE page uses three resources per binary parameter:

  1. A V-memory bit (e.g., V0.0) bound to a Digital Network Input (e.g., NI1). The on-board web server can write to V0.0; the LOGO! program reads NI1 as the operator-supplied toggle.
  2. The four softkey blocks B001-B004, used strictly as trigger contacts (pulse sources) feeding a logic block.
  3. An OR block that merges the softkey trigger and the network-input trigger into a single edge for a pulse relay, and a network output (e.g., NO1) that reflects the resulting state back to the web.

The pulse relay (current-flow sensing, function block group "Other") outputs a stable 0 or 1 that is the actual mode state. This output is the only memory of the mode and is the value displayed in the LWE page. The softkey blocks B001-B004 are not latched; they reset to 0 immediately after release, which is why they cannot serve as the mode storage.

The mapping is summarized below.

Resource Address Direction Purpose
Softkey 1 B001 Display → LOGO! Trigger pulse from F1 key on panel
Softkey 2 B002 Display → LOGO! Trigger pulse from F2 key on panel
Variable memory bit V0.0 Web → LOGO! Operator input from LWE page
Network input NI1 LOGO! program input Reads V0.0 inside the program
OR block OR (B001, NI1) Internal Merge softkey pulse and web pulse
Pulse relay B005 (example) Internal Edge-triggered bistable storing the mode
Retentive marker M2 Internal / web Mode state, persists across power cycle
Network output NO1 LOGO! → web Exposes M2 to LWE page for status display
B001 SoftkeyF1 button V0.0 / NI1Web toggle OR Pulse Relayedge-triggered M2 Markerretentive NO1 NetworkOutput to LWE M2 → NO1 (state back to web for status display)

5. Mapping the Softkey to a Pulse Trigger

Open the LOGO! program in LSC and confirm that the softkey is configured as a momentary contact, not as a latched switch. The default softkey block latches its output while the button is held, which is not desired for an edge-triggered system. To use the softkey as a momentary push button, configure the block as follows:

  1. In the program editor, double-click the softkey block (B001).
  2. In the block properties dialog, set the function to Edge-triggered reset (pulse), or wire a rising-edge contact in front of the OR block.
  3. Verify that the softkey output goes high only on the rising edge of the F1 button press and resets immediately on release.

If you leave the softkey in latched mode, every press of F1 will hold the contact closed indefinitely, and the OR block output will stay high. The pulse relay will toggle once on the first press but the second press will not register because the input is still high. Always use edge-triggered logic for the softkey path.

Tip: You can also keep the softkey as a latched switch and place a rising-edge detection block (positive edge detector, function group "Other") between the softkey and the OR block. This decouples the softkey behavior from the toggle logic and allows the softkey to be reused as a status indicator later without rewriting the trigger network.

6. Building the Web-Side Button with a V-Bit

The on-board web server can set a V-memory bit to 1 through the standard web page, but it does not have a native "momentary" or "push-button" action - each V-bit write is a level assignment. To emulate a button press from the LWE page:

  1. In LSC, open the project and select Tools > Web Server Editor.
  2. On the left-hand variable tree, drag the desired digital value into the LWE page. Most LWE projects bind a checkbox or a button to a V-memory bit.
  3. Click the variable to open its properties. Set the Access attribute to Read/Write and bind it to V0.0 through the parameter VM mapping. The on-board web server will display a checkbox-style control bound to V0.0.
  4. Save the LWE project and download it to the LOGO!. The generated configuration is stored on the LOGO! flash and served by the on-board web server.

When the operator clicks the checkbox in the LWE page, the on-board web server sends an HTTP POST to the variable servlet with the value 1. The next click sends 0. The LOGO! program reads the value through NI1 (which is mapped to V0.0 in the network input configuration table) and feeds it to the OR block as a level signal. To make the LWE page behave like a push button - the standard expectation for a "change mode" action - configure the LOGO! program to detect a rising edge on NI1 rather than treat it as a level input. The edge detection block (function group "Other") converts the level to a single-cycle pulse on each press.

For a clean toggle button on the LWE page, wire the rising-edge output of NI1 directly to the pulse relay's TRG input alongside the softkey edge. The pulse relay will then toggle on either input - one from the panel, one from the web.

7. Synchronizing Display, Panel, and Web with OR + Pulse Relay

The OR block merges the two edge-triggered trigger sources (softkey F1 and web V0.0/NI1) into a single signal that drives the TRG input of a pulse relay (current-flow sensing). The pulse relay's output is the actual mode state and is the value the rest of the LOGO! program reads.

Pulse relay configuration in LSC:

  • Block type: Pulse relay (current flow sensing), function group "Other".
  • TRG input: connected to the OR block output.
  • Output: connected to marker M2 and to a network output block (e.g., NO1).
  • Retentive: enable retention on the M2 marker so the state survives a power cycle.

Expose the M2 marker (or the NO1 network output) on the LWE page as a read-only indicator. The indicator updates on every cycle, so the operator sees the new mode within 100-200 ms of pressing either the softkey on the panel or the button on the LWE page. The typical LOGO! 8 scan cycle is 5-20 ms, so the visible latency is dominated by browser polling or page reload, not by the LOGO! itself.

A common improvement is to add an XOR block between the mode state and a constant 1, which inverts the logic for display. Wire the XOR output to a Meldetext (message text) block on the LOGO! display that shows "Auto" or "Manuell". The XOR output is purely cosmetic and has no effect on the program logic; it simply maps the bistable state to a human-readable string.

8. Retentive Persistence Across Power Cycles

By default, the standard web server initializes all V-memory bits to 0 on every power-up, and the network inputs read those zeros. The on-board web server also loses its session state. To retain the mode across a power cycle:

  1. In LSC, double-click the M2 marker. In the marker properties dialog, enable Retentive.
  2. Confirm that the pulse relay output is wired to M2 (not just to a transient internal flag).
  3. Configure the marker in the LOGO! display Retentive markers list under System > Retentivity. The number of retentive markers is hardware-limited; LOGO! 8, 8.3, and 8.4 each support up to 250 retentive markers in the standard block range.
  4. Verify on the LOGO! display that the marker is listed under the retentive range. If the retentive count is exceeded, the program will compile but the excess markers will revert to 0 on power-up.

The network output NO1 is automatically updated from the M2 marker on the next cycle after power-up, so the LWE page will show the correct mode within one scan cycle of the LOGO! being reachable on the network. There is no need to "resync" the web page manually.

Important: The on-board web server starts its HTML service only after the LOGO! has completed its startup routine (typically 3-5 seconds after power-on). During this interval the LWE page will return a 503 or timeout. Plan any SCADA polling with a 5-10 second startup delay, and avoid treating the first 5 seconds of web-server silence as a fault.

9. Reference Implementation: Auto/Manual Rollup Motor Control

A common real-world application is a pair of rollup shutter motors controlled either automatically (temperature, wind) or manually (operator button). The two modes must be selectable from both the panel (softkey F1) and the LWE page (checkbox), and the current mode must be visible on both. The reference implementation below is the recommended starting point.

9.1 Functional Requirements

  • Softkey F1 on the LOGO! display toggles between Auto and Manual.
  • A checkbox on the LWE page does the same.
  • The current mode is shown on both the LOGO! display and the LWE page.
  • Mode survives a power cycle.
  • Auto mode enables the temperature/wind sensor path; Manual mode enables the operator push-buttons.

9.2 LSC Program

Block Type Inputs / Notes
B001 Softkey (edge) F1 - trigger pulse
NI1 Network input Bound to V0.0 (web toggle)
Edge1 Edge detector Monitors NI1 rising edge
OR1 OR Inputs: B001 (edge), Edge1.out
B005 Pulse relay TRG ← OR1, Output → M2
M2 Marker (retentive) Auto=1, Manual=0
NO1 Network output Source: M2, feeds LWE indicator
AND1 AND Inputs: M2 (Auto), temperature OK, wind OK → drive Q1 (motor 1 up)
AND2 AND Inputs: NOT M2, manual up button I3 → drive Q1
XOR1 XOR Inputs: M2, 1 → drives Meldetext "Auto" / "Manuell"

The Auto path uses M2 to enable the analog sensor comparisons; the Manual path uses M2 inverted (through XOR1, or through an explicit NOT block) to enable the operator push-buttons. This guarantees that exactly one path is active at any time and that the two paths cannot fight each other for control of the motor output. The XOR1 output also drives a Meldetext block that displays the current mode on the LOGO! display.

9.3 LWE Page

  • Checkbox 1: bound to V0.0, label "Change mode (Auto/Manual)". The checkbox is read/write.
  • Indicator 1: bound to NO1 (which mirrors M2), label "Current mode: Auto / Manual". The indicator is read-only.
  • Indicator 2: bound to NI1 or the edge detector output, label "Last trigger source: Panel / Web". Optional but useful for diagnostics.

9.4 Scaling to Multiple Parameters

For each additional bi-directional parameter, allocate one V-memory bit, one network input, one network output, one pulse relay, and one retentive marker. LOGO! 8 supports 64 NI and 64 NO, 851 V-bytes, and up to 250 retentive markers - sufficient for most small-machine dashboards. Label the variables consistently (e.g., V0.0/NI1/NO1 for mode, V0.1/NI2/NO2 for enable, etc.) to keep the LWE page readable. Reserve V0.0-V0.7 for the most frequently toggled parameters to keep the variable table compact.

10. Step-by-Step Commissioning Procedure

  1. Open the existing LOGO! program in LSC and confirm the LOGO! base module and firmware match the prerequisites in Section 2.
  2. Add a new pulse relay (function group "Other") and wire its TRG input to an OR block whose inputs are the softkey B001 and a network input NI1 (bound to V0.0).
  3. Connect the pulse relay output to a retentive marker M2.
  4. Connect the same M2 to a network output NO1.
  5. In the LWE editor, add a checkbox bound to V0.0 and a read-only indicator bound to NO1. Save the LWE project and download to the LOGO!.
  6. On the LOGO! display, navigate to the program and test: press F1; the marker M2 should toggle and the LWE indicator should update within 200 ms after a browser refresh.
  7. From a PC browser, open http://<logo-ip>, log in, and click the checkbox; the M2 marker should toggle and the LOGO! display should show the new mode string.
  8. Cycle power to the LOGO! and confirm that the mode is retained. The LWE page should show the same mode it had at power-down within 5 seconds of the on-board web server becoming reachable.
  9. Document the softkey label ("F1 - Mode"), the LWE checkbox label, and the expected indicator strings in the operator manual.

11. Verification Matrix

Test Procedure Expected Result
Panel → mode Press F1 on LOGO! display M2 toggles, LWE indicator updates within 1 scan after refresh
Web → mode Click LWE checkbox M2 toggles, LOGO! display string updates
Retentivity Set mode = Auto, power-cycle LOGO! After restart, LWE page shows Auto within 5 s
Concurrent press Press F1 and click LWE within 50 ms Final state matches last-pressed source; no glitch
Web-only environment Disconnect the LOGO! display Web toggle still works; pulse relay still toggles
Network loss Disconnect Ethernet, press F1, reconnect Mode updated while disconnected; LWE page reflects new mode after reconnect
Memory limit Configure 300 retentive markers (exceeds 250 limit) LSC warns; excess markers do not retain
Contact bounce Press F1 rapidly five times within 1 s Pulse relay toggles five times; no double-toggle per press

12. Troubleshooting and Edge Cases

Symptom Likely Cause Resolution
Softkey always shows "Off" on LOGO! display Softkey is configured as a latched switch; its contact is released after the button is released Add a positive-edge detector in front of the OR block, or use the edge-triggered softkey option
LWE page shows "0" but LOGO! shows mode is active Network output not bound to the marker; or wrong VM address in the LWE variable memory configuration Verify the NO1 source is M2 and that the LWE indicator is bound to NO1 with the correct VM address
LWE checkbox does nothing V-memory bit is not mapped to a network input in the LSC program; checkbox is bound to a read-only operand In LSC, open Network Inputs and confirm NI1 is mapped to V0.0; ensure the LWE variable has Read/Write access
Mode resets to Manual after power cycle M2 marker is not retentive; or retentive count is exceeded Enable retention on M2; check the System > Retentivity list for overflow
Pulse relay toggles twice on one F1 press Contact bounce on the softkey; OR block receives two rising edges within one scan Add an on-delay block (function group "Other") of 50 ms after the OR block, before the pulse relay
LWE page returns 503 immediately after power-on On-board web server has not completed its startup routine Wait 5-10 seconds and reload the page; the on-board server is not yet ready
Softkey text is fixed as "On"/"Off" and cannot be changed Softkey block properties do not allow custom text labels Replace the softkey text with a Meldetext (message text) block; the Meldetext is fully customizable and can show "Auto" / "Manuell" / "Change mode"
Browser cache shows stale mode value LWE page is plain HTML; the browser may cache the value and not refresh Hard-reload (Ctrl+F5); or append a cache-busting query string to the page URL in operator documentation
Web write returns 401 Unauthorized LOGO! on-board web server has password protection enabled and the operator session expired Re-enter the LOGO! web server password under System > Security; consider relaxing the session timeout for kiosk mode
Pulse relay toggles but motor does not respond AND1 / AND2 conditions are not satisfied (e.g., wind sensor out-of-range); or output Q1 is forced by STOP mode Check the analog sensor inputs with LSC online test; verify Q1 in the I/O status

13. Frequently Asked Questions

Why does the softkey status on the LOGO! display always read "Off"?

The softkey function block (B001-B004) is a momentary or latched contact that reflects the physical button state, not the controlled function. In the edge-triggered configuration used for bi-directional control, the contact closes for one scan cycle on each press and immediately returns to 0, so the on-screen indicator reads "Off" almost all the time. Use a Meldetext block to show the actual mode state (e.g., "Auto" or "Manuell") instead of the softkey contact state.

Does V-memory retain its value after a power cycle?

No - V-memory bits are cleared to 0 on every power-up. To retain the mode, route the pulse relay output to a retentive marker (M) and enable retention on that marker in the LOGO! system settings (up to 250 markers can be retentive on LOGO! 8/8.3/8.4). Then expose the marker back to the web through a network output (NO).

Can I edit the softkey text label (e.g., show "Switch mode" instead of "Off")?

No. The softkey block has a fixed two-line label that is hard-coded in the LOGO! firmware. To show a custom label, use a Meldetext (message text) block and bind its acknowledge softkey to the softkey function. The Meldetext accepts arbitrary Unicode strings and can show "Switch mode", "Auto", "Manuell", or any other operator-readable label.

What is the difference between NI/NO and V-memory bits?

NI (network input) and NO (network output) are program-internal references to V-memory bits configured under Network Inputs and Network Outputs in LSC. The V-memory bit is the actual storage; the NI is the read alias used inside the LOGO! program, and the NO is the write alias used by the LOGO! to publish the value to the on-board web server. Each V-bit that must be visible on the LWE page requires a corresponding NO binding.

Can the same V-bit be read both as a network input and as a flag?

Yes. V-memory bits are read-only operands within the LOGO! program - they can be referenced by both a network input binding and a direct contact block. The program can read V0.0 through NI1 and also wire V0.0 directly into a contact block. Writes, however, are exclusive: the on-board web server owns the write path for V-memory bits and the program should not attempt to write to the same V-bit, or the web write will be overwritten on the next scan.

For the official LOGO! Web Editor user guide, see the LOGO! Web Editor Online Help (LWE_Help_en-US.pdf). Additional LOGO! system manuals, application examples, and firmware notes are available on the Siemens Industry Online Support portal.

Back to blog