Resolving 16# Hex Display on LOGO! 8 Web Editor Calendar

David Krause11 min read
HMI / SCADASiemensTroubleshooting
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

Resolving 16# Hex Display on LOGO! 8 Web Editor Calendar Values

The Siemens LOGO! 8 Web Server and the bundled LOGO! Web Editor (LWE) tool provide browser-based access to timer, counter, and calendar setpoints on a LOGO! 8 base module (catalog family 6ED1052-xxx08-0BA0 and the LOGO! 8.3 variant 6ED1052-xxx08-0BA1). A recurring field complaint is that after the operator types a numeric value into a calendar or weekly-timer input on the integrated web server, the entered figure is echoed back prefixed with the IEC 61131-3 literal 16# (for example 16#0C08 for the time 12:08) instead of being shown as a plain decimal. This article documents the underlying cause, the data-type mapping in LSC and LWE, and the step-by-step configuration changes required to restore a normal decimal readback.

Scope: This article applies to LOGO! 8 (6ED1052-1xxx08-0BA0) and LOGO! 8.3 (6ED1052-1xxx08-0BA1) base modules running firmware FS03 through FS05, programmed with LOGO! Soft Comfort (LSC) V8.3 / V8.4 and visualized through the built-in Web Server and the LOGO! Web Editor (LWE) V1.0.x.

1. Problem Description

When a user navigates to the LOGO! Web Server in a browser (default URL http://<LOGO-IP> on port 80) and opens a custom dashboard built with LWE, numeric input widgets bound to LOGO! variables display the IEC hex literal prefix 16# immediately after a value is submitted. The variables in question are typically:

  • Weekly timer (B001-B019 block) setpoints such as hour, minute, weekday, or on/off time.
  • Annual timer (B001-B012) setpoints such as month, day, hour, minute.
  • Astronomical clock (B050-B058) latitude, longitude, and time-zone offsets.
  • Up/down counter (B002-B011) on/off, threshold, and hysteresis parameters.
  • Analog threshold trigger (B003) setpoints for analog timers.

Symptom sequence observed in the field:

  1. Operator clicks an input field, types a value (for example 1208 for the time 12:08).
  2. The web server briefly shows "submitted" feedback text.
  3. When focus is removed from the field, the value reappears as 16#04B0 (hex of 1208) or 16#0C08 depending on byte order.
  4. Despite the cosmetic echo, the LOGO! program still processes the decimal value correctly — only the display format is wrong.

The issue is purely a visualization / representation problem in the LWE numeric widget; no logic is corrupted and the write to the LOGO! tag succeeds. Operators who interpret 16# as an error may, however, re-enter values, leading to parameter drift.

2. Root Cause Analysis

The 16# prefix is the canonical IEC 61131-3 notation for a hexadecimal literal. LOGO! 8 stores all timer/counter setpoints internally as 16-bit WORD values (data type UINT in the LOGO! tag database, range 0..65535). When a numeric widget in LWE is bound directly to a WORD-typed variable without an explicit display-format override, the LWE runtime library falls back to the safest unambiguous representation for a 16-bit word — hexadecimal with the 16# prefix.

2.1 LSC Tag Data Types Relevant to LWE

LOGO! Block Parameter LSC Symbol Type Bit Width LWE Default Render
Weekly timer hour / minute WORD (UINT) 16 Hex (16#…)
Annual timer month / day WORD (UINT) 16 Hex (16#…)
Counter threshold / on-off WORD (UINT) 16 Hex (16#…)
Analog threshold setpoint WORD (UINT) 16 Hex (16#…)
Variable memory (VW/VM) WORD (UINT) 16 Hex (16#…)
Variable memory (VD) DWORD (UDINT) 32 Decimal (no prefix)
Analog input IWx (0..1000 = 0..10 V) WORD scaled 16 Decimal if scaling enabled

2.2 Why LWE Chooses Hex by Default

The LWE widget library exposes a single NumericInput class for both decimal and hexadecimal variables. Internally, it inspects the LSC project file (.lsc) tag definition to determine whether the underlying symbol is a WORD (16-bit, ambiguous — could be flags, BCD time, or decimal integer) or a DWORD (32-bit, almost always decimal). Because the LOGO! firmware does not propagate a format hint across the Web Server JSON interface, the widget defaults to hex for any 16-bit tag to avoid silently misrepresenting bit-mapped values.

The format selection logic in the LWE runtime is roughly equivalent to:

if (tag.bitWidth == 16) format = "hex";
else format = "dec";

That heuristic is the reason the calendar fields render in hex even when the operator always enters them in decimal.

3. Solution 1 — Apply the Decimal Display Override in LWE

The most direct fix is to override the format on the widget itself. The LWE widget property panel exposes a Format selector for NumericInput and NumericOutput widgets.

3.1 Procedure

  1. Open the LOGO! Web Editor and load the dashboard project (*.lwe) that targets the affected LOGO! base module.
  2. Select the numeric input widget that is bound to the timer or counter setpoint.
  3. In the Properties pane, expand the Display section.
  4. Change the Format drop-down from Auto / Hex to Decimal.
  5. If available, set MinValue and MaxValue to the logical range of the parameter (for example 0..23 for hour, 0..59 for minute).
  6. Click Apply and save the project.
  7. Transfer the updated dashboard to the LOGO! via the Web Server user page or the LWE Deploy function.

3.2 Verification

  1. Reload the dashboard in the browser (Ctrl+F5 to bypass cache).
  2. Type a test value such as 1208 into the affected field and click Submit.
  3. Confirm the field re-renders as 1208 without the 16# prefix.
Limitation: If the underlying variable is a 16-bit value that is genuinely bit-packed (for example weekday bitmask Mo|Tu|We|Th|Fr|Sa|Su), forcing decimal will render the raw integer (0..127) rather than friendly names. Use Solution 2 for those cases.

4. Solution 2 — Use a 32-bit DWORD Mirror Variable

When the display format is non-negotiable (the operator must see plain decimal) and you cannot use Solution 1 — for example when the project is exported as a static HTML dashboard — add a 32-bit DWORD mirror tag in the LOGO! program, copy the timer setpoint into the mirror on every cycle, and bind the LWE widget to the mirror instead of the raw 16-bit parameter.

4.1 LSC FBD Example

Insert an Analog Flag block and a Math Instruction block in a free UDF region of the circuit diagram. The Math block computes VD200 := UINT_TO_DWORD(VW100), where VW100 is the calendar time setpoint exposed by the weekly timer block.

4.2 LWE Binding

  1. In the LWE variable selector, choose VM DWORD and pick VD200.
  2. Insert a NumericInput widget and bind it to VD200.
  3. Leave the widget format as Auto — the 32-bit width forces a decimal render.
  4. Deploy the dashboard.

4.3 Verification

  1. Browse to the LOGO! Web Server.
  2. Type 1208 into the new mirror field; the value should persist as decimal.
  3. In the LOGO! program monitor (LSC online view), confirm that the original timer block still receives the integer 1208.

5. Solution 3 — Update LWE and LOGO! Firmware

Earlier LWE revisions (V1.0.0 and V1.0.1) shipped with the 16-bit auto-format heuristic hard-coded. Siemens released LWE V1.0.2 in conjunction with LOGO! Soft Comfort V8.3 Service Pack 2 to expose a Format = Auto/Decimal/Hex/Binary selector per widget. Always run the latest combination of the two packages.

Component Recommended Version Source
LOGO! 8 base module firmware FS05 or newer Siemens Industry Online Support
LOGO! Soft Comfort (LSC) V8.4.0 or newer Siemens Industry Online Support
LOGO! Web Editor (LWE) V1.0.2 or newer Bundled with LSC installer
Browser (client side) Chromium 100+, Firefox 95+, Edge 100+ LOGO! Web Server release notes

5.1 Procedure

  1. Download the latest LSC package from Siemens Industry Online Support and install it. The LWE plug-in is part of the bundle.
  2. Open the LSC project, then re-open the LWE dashboard. The new widget properties will be detected.
  3. Re-apply Solution 1 (or use the new Auto default which now respects the bit width and tag comment metadata).
  4. Transfer the program and the dashboard to the LOGO! base module via Ethernet or SD card.
Compatibility note: LOGO! 8.3 (6ED1052-1xxx08-0BA1) modules from firmware FS04 onward support the new VM tag-comment metadata field. If a project is loaded into an older LOGO! 8 (FS03) module, the metadata is stripped and the format will revert to the legacy hex default.

6. Solution 4 — Use the Built-in Calendar Custom Page (No LWE)

For installations that do not need a custom LWE dashboard, the LOGO! 8 Web Server already exposes a standardized calendar view that renders all weekly and annual timers in friendly decimal text. This view is generated from the program itself and is not affected by the LWE widget heuristic.

  1. In LSC, open File → Web Server Settings and enable Allow Web Server Access plus Allow Custom Web Pages.
  2. Set a user password (mandatory for write access on firmware FS04+).
  3. Compile and transfer the program to the LOGO!.
  4. Browse to http://<LOGO-IP>/, log in, and click the Calendar tab. All timer setpoints will appear in decimal hh:mm.

This page is built into the firmware and bypasses the LWE widget stack entirely, so the 16# issue cannot occur.

7. Cross-Verification Matrix

Observed Symptom Likely Cause Fix Verify In
16# prefix on every numeric input LWE default 16-bit hex heuristic Apply Solution 1 (widget format = Decimal) Browser field echo
16# prefix only on calendar time fields Timer setpoints are 16-bit WORD Apply Solution 2 (32-bit mirror) LSC online monitor
16# prefix persists after LWE update Stale browser cache or LWE version mismatch Clear cache, redeploy LWE V1.0.2+ LWE Help → About
16# prefix on analog input display AIN scaled as raw 0..1000 WORD Enable analog scaling in LSC and bind scaled VM Web Server dashboard
16# prefix intermittent (some widgets, some not) Mixed WORD / DWORD tags in same dashboard Set format explicitly per widget LWE Properties pane
16# prefix on input but correct decimal on output Write path uses ASCII parser, read path returns raw JSON Force format on both read and write widgets Browser DevTools network tab

8. Edge Cases and Field-Proven Caveats

  1. Bit-packed weekday fields. The weekly timer Day of week parameter is a 7-bit mask, not a decimal number. Forcing decimal will show values such as 62 for Mon..Fri. Use a separate Text widget with seven Boolean tags instead.
  2. Time-zone offsets for astronomical clock. These are signed 16-bit integers ranging from -720 to +720 minutes. Hex rendering wraps at 4096 minutes, so always use the 32-bit mirror pattern from Solution 2.
  3. BCD-encoded time words. Some legacy LSC V7 libraries expose timer setpoints in BCD. The LWE widget will not auto-detect BCD; use the Math block BCD_TO_INT to convert before binding to the LWE widget.
  4. User permission level. The Web Server write API requires Operator or higher on firmware FS04+. If a low-privilege user types a value, the server silently discards it but the LWE widget still displays the previous value with the 16# prefix, which can be mistaken for a successful write.
  5. SD card project transfer. LWE dashboards are stored under /logo/webuser/ on the SD card. If the SD card is removed or the webuser folder is empty, the LOGO! falls back to the default hex view. Verify the SD card is seated and the folder is populated.
  6. Network MTU and JSON truncation. A 32-bit mirror widget returning values above 32767 (for example 65535) will be serialized as a 5-digit decimal. If the browser truncates the response due to an MTU bottleneck, the field may appear blank. Use a wired Ethernet connection for commissioning.

9. Safety and Operational Notes

Safety: Always disable the affected output before changing a calendar or weekly timer setpoint over the Web Server. A weekly timer that is currently energizing a load will not interlock the write — the new time becomes active immediately and may cause unexpected switching.
  • Activate the LOGO! Web Server password protection (FS04+) to prevent unauthorized calendar edits that could affect production schedules.
  • Document the affected VM addresses in the LSC project header comment to help future maintenance engineers understand the 32-bit mirror mapping.
  • When deploying a new LWE dashboard, back up the existing webuser folder from the SD card to a versioned repository.
  • Do not run a live production system on a LOGO! 8 base module below firmware FS03; the Web Server stability fixes in FS03 are required for reliable write-back.

10. Quick Reference — Decision Flow

16# prefix on LWE value? LWE widget format = Hex Tag is 16-bit WORD, no hint Solution 1: set Decimal Solution 2: 32-bit mirror Solution 3: update LWE Verify: type 1208, see 1208 decimal

11. Frequently Asked Questions

Why does my LOGO! Web Editor show values like 16#0C08 instead of 12:08?

LOGO! 8 stores timer setpoints as 16-bit WORD values, and the LWE numeric widget defaults to hexadecimal display for any 16-bit tag without an explicit format hint. Change the widget Format property to Decimal in the LWE Properties pane, or mirror the value into a 32-bit VM DWORD tag and bind the widget to the mirror.

Does the 16# prefix mean the value was not written to the LOGO!?

No. The write succeeds; the LOGO! program processes the decimal value (for example 1208). The 16# prefix is only a display representation in the LWE widget, equivalent to the IEC 61131-3 hex literal syntax. Verify successful writes in the LSC online monitor rather than relying on the Web Server echo.

Which LOGO! Soft Comfort and LWE versions fix the 16# hex echo?

LOGO! Soft Comfort V8.3 SP2 (released together with LWE V1.0.2) added the per-widget Format selector that defaults to Decimal when the bound tag is a WORD with a calendar/comment metadata flag. Always run LSC V8.4.0 or newer and LWE V1.0.2 or newer for the most reliable behavior.

Can I use the built-in Calendar page of the Web Server instead of LWE?

Yes. Enable the Web Server in LSC (File → Web Server Settings), set a user password, transfer the program, and browse to http://<LOGO-IP>. The Calendar tab displays all weekly and annual timer setpoints in decimal hh:mm without the 16# prefix, because the page is rendered by the LOGO! firmware and does not use the LWE widget library.

My calendar values show as 16# but the input field still accepts decimal — is this a bug in the LOGO! firmware?

It is not a firmware bug. The LOGO! firmware stores the integer correctly; only the LWE widget render path uses a hex default for 16-bit tags. Either upgrade LWE to V1.0.2+ and select Decimal per widget, mirror the value into a 32-bit VM DWORD, or use the firmware-native Calendar page to avoid the issue entirely.

Back to blog