Siemens LOGO! 8 Pool Heating: Hysteresis Control & Web HMI

David Krause17 min read
Other TopicSiemensTutorial / 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

This reference walks an automation engineer familiar with SIMATIC S7 / TIA Portal through building a complete pool heating controller on a Siemens LOGO! 8.3 base module. It covers hardware selection, LOGO! Soft Comfort project creation, analog scaling, hysteresis control, Text Display (TDE) parameter editing, and the dual web server configuration. Field-verified values, scaling math, and commissioning checks are included.

Prerequisite experience assumed: STEP 7 or TIA Portal background. LOGO! programming uses a Function Block Diagram (FBD) / Continuous Function Chart (CFC) model, not the S7 hardware-config + OB/FB/DB paradigm. There is no HW Config; I/O assignment is implicit from the physical wiring and the blocks you place.

1. Project Overview and Control Philosophy

The target installation is a small outdoor pool / spa, heated year-round including winter conditions. Ground (unheated) water temperature is approximately 20 °C. The control loop is a classic two-position (on/off) thermostat with selectable hysteresis:

  • Process variable (PV): Water temperature, 0–50 °C from a 0–10 V transmitter (e.g. PT1000 + head transmitter).
  • Setpoint (SP): Operator-adjustable on the TDE 6ED1055-4MH08-0BA1 or via the LOGO! web server.
  • Hysteresis band: 2–3 °C below SP turns the heater ON; 2–3 °C above SP turns it OFF.
  • Output: One digital output driving a contactor / SSR for the heating cartridge.

Two-position control is the correct strategy here: a pool has high thermal mass, slow dynamics, and the heater is a single electrical load — a continuous PID would be wasteful and over-engineered. The block to use is the analog comparator with hysteresis (analog threshold switch with adjustable upper and lower thresholds) or the on/off hysteresis block.

2. Hardware Selection

2.1 Base Module

For one analog input (0–10 V) and one digital output, a LOGO! 8 base module is sufficient — no AM2 / AM2 RTD / DM8 expansion is required. The recommended variant is:

Article No. Designation Key Specs
6ED1052-1MD08-0BA1 LOGO! 8.3 12/24 RCE 8 DI (I1–I8), of which I1–I4 / AI1–AI4 are 0–10 V analog or fast-counter; 4 DO relays Q1–Q4 (5 A, 250 V AC resistive); Ethernet; micro SD slot; integrated web server
6ED1052-1CC08-0BA1 LOGO! 8.3 230 RCE 230 V AC supply, 8 DI (no 0–10 V on inputs — analog only via AM2), 4 relay DO. Not preferred for 0–10 V sensor.
6ED1052-1FB08-0BA1 LOGO! 8.3 24 CE 24 V DC supply, 8 DI (I1–I4 analog), 4 transistor DO (24 V / 0.3 A) — only if SSR drive, not contactor coil.

Choose the 12/24 RCE when you have a 0–10 V temperature transmitter powered from 24 V DC and need dry-contact relay outputs to switch a 230 V AC contactor coil. The relay contacts handle the inrush of AC-1 / AC-3 contactor coils comfortably within the 5 A rating.

Do not connect 230 V AC to the AI inputs. Analog inputs I1–I4 / AI1–AI4 are 0–10 V only (input impedance ~ 78 kΩ) and are referenced to the LOGO! DC ground. Damage to the input stage is irreversible.

2.2 Text Display (TDE)

Article No. Use
6ED1055-4MH08-0BA1 LOGO! TDE 6-line text display, IP65 front, 3 m cable, backlit. Used for setpoint adjustment and message display.

The TDE is optional if you use the integrated web server, but recommended for outdoor pool installations where a physical keypad survives touchscreen-unfriendly conditions (wet fingers, gloves).

2.3 Software Tools

Article No. Software Purpose
6ED1058-0BA08-0YA1 LOGO! Soft Comfort V8.3 (LSC) Offline / online programming in FBD/CFC. PC ↔ LOGO! Ethernet programming.
6ED1058-0BA08-0YG1 LOGO! Web Editor (LWE) Free tool for user-defined HTML pages served by the extended web server. Requires SD card.
LOGO! Access Tool (smartphone) iOS / Android app for the simple web server — virtual TDE on a phone over Wi-Fi.

Download LOGO! Soft Comfort V8.3 SP1 or later from the Siemens Industry Online Support. The installer includes the documentation and example projects.

3. Software Installation and First Project

3.1 Install LOGO! Soft Comfort

  1. Run the installer LOGO!SoftComfort_V8.3_Setup.exe as administrator.
  2. Select destination (default C:\Program Files\Siemens\LOGO!SoftComfort V8.3).
  3. Install the LOGO! Access Tool if remote mobile HMI is required.
  4. Launch LSC and accept the licensing prompt (no hardware dongle — V8 license is a soft key bound to the LOGO! over Ethernet on first upload).

3.2 Project Skeleton

  1. File → New. In the project dialog select device LOGO! 8.3 12/24 RCE (6ED1052-1MD08-0BA1). This determines the available I/O and instruction set.
  2. Set the Ethernet IP address in Tools → Ethernet Connections (default: 192.168.0.10, mask 255.255.255.0).
  3. Set time/date in Tools → Set Clock. The LOGO! has a capacitor-backed real-time clock (typical 80 h backup).
  4. Save the project as pool_heating.lsc.

There is no HW Config equivalent. The block diagram implicitly consumes I/O: placing an Analog Input block onto terminal AI1 binds physical input I1 to the block. Compiler diagnostics will flag mismatches between the selected base module and blocks you place.

4. Analog Input Scaling (0–10 V → 0.0–50.0 °C)

A LOGO! analog input converts 0–10 V to the integer range 0–1000. Display with one decimal place is achieved by the Gain / Offset math of the analog amplifier block (B001 family).

4.1 Block Math

The amplifier formula is:

Y = (X - Offset_in) × Gain + Offset_out

Simplified form (zero input offset):

Y = X × Gain + Offset

For 0–50.0 °C display, the engineering range the downstream blocks must work with is 0–500 (one decimal). For full-scale:

  • X_max = 1000 (10 V at input)
  • Y_max = 500 (50.0 °C)
  • Gain = Y_max / X_max = 500 / 1000 = 0.50
  • Offset = 0

Configure the amplifier block parameters:

Parameter Value Comment
Sensor 0–10 V Select in block properties
Gain 0.50 0–1000 → 0–500
Offset 0 Zero shift
Decimal places 1 Display as 50.0 °C, not 500

4.2 Example: 10 V Input

With sensor delivering 10 V (full scale), X = 1000. Calculation through the block:

Y = 1000 × 0.50 + 0 = 500

Rendered on the TDE / web display as 50.0 °C (one decimal place = divide by 10 at HMI layer).

4.3 Example: 5 V Input (25 °C)

Y = 500 × 0.50 + 0 = 25025.0 °C on the display.

4.4 Bipolar Sensor Scaling (−30 to +60 °C)

For an outdoor air sensor with range −30 to +60 °C and 0–10 V output, the engineering range with one decimal is −300 to +600. Solve for linear mapping:

  • Y(X) = m·X + b
  • At X = 0: Y = −300 → b = −300
  • At X = 1000: Y = 600 → m·1000 + (−300) = 600 → m = 0.9
Parameter Value
Gain 0.9
Offset −300
Decimal places 1
Verification check: X = 0 V → Y = −300 → display −30.0 °C. X = 10 V → Y = 600 → display 60.0 °C. Slope is 0.9 °C / engineering unit. If the displayed value is the raw 0–1000 value (e.g. 500 for 50 °C) instead of the engineering value, the amplifier block's "Display decimal places" parameter is set to 0 — change it to 1.

5. Hysteresis (On/Off) Control Programming

5.1 The Two Comparator Thresholds

Implement a Schmitt-trigger style thermostat using a single analog threshold switch with hysteresis. The block (B007 in older LSC, Analog Threshold Switch in V8.x with Hysteresis option) has two thresholds:

  • ON threshold (Th_low): Switches output ON when PV falls below this value.
  • OFF threshold (Th_high): Switches output OFF when PV rises above this value.

For a 2 °C hysteresis band centered on SP:

Th_low = SP − 2 °C = SP − 20 (engineering units)

Th_high = SP + 2 °C = SP + 20

5.2 Reference Circuit (FBD)

  1. Place an Analog Input block on AI1 → 0–10 V.
  2. Insert an Analog Amplifier block (B001) with Gain = 0.50, Offset = 0, 1 decimal place. Output PV = water temperature × 10.
  3. Place a Setpoint block (B002) that holds the operator-adjustable SP. Tag it as editable from the message text and TDE.
  4. Place an Analog Threshold Switch with Hysteresis block (B003):
    • Input Ax = PV (B001 output)
    • Th_low = B002 SP − 20
    • Th_high = B002 SP + 20
    • Gain = 1 (no scaling inside this block)
  5. Route B003 output Q to digital output Q1 (heater contactor).
  6. Optional: AND B003 Q with a "Heating Enable" flag (from a digital input or scheduled timer) to allow summer shut-off.

5.3 Sample Equivalent Statement List (LSC View → STL)

While LOGO! 8 does not offer text-based programming, the equivalent netlist is generated by the compiler. The relevant boolean equivalent:

// PV is in 0..500 (×0.1 °C)
// SP is in 0..500 (×0.1 °C), editable
// HYST = 20  (i.e. 2.0 °C)

IF PV < (SP - HYST) THEN
    Q1 := TRUE;          // heater ON
ELSIF PV > (SP + HYST) THEN
    Q1 := FALSE;         // heater OFF
END_IF;

6. Text Display (TDE) Setup

6.1 Physical Connection

The TDE 6ED1055-4MH08-0BA1 ships with a 3 m RJ45-to-RJ45 cable. Plug one end into the LOGO! base module's second Ethernet port, the other into the TDE. Power is supplied via PoE-style phantom (no separate supply needed). Maximum cable length is the standard Ethernet limit (≤ 100 m with Cat 5e / Cat 6).

6.2 Message Text with Editable Setpoint

To allow the operator to change the setpoint from the TDE:

  1. In the LSC diagram, double-click the Setpoint block (B002). Tick Parameter set / Remanence as required and check Editable from message text / TDE.
  2. Place a Message Text block on the diagram.
  3. Set Display target:
    • LOGO! display only
    • TDE only
    • Both LOGO! and TDE
    • + Web server (simple web server can render the message text)
  4. In the message text configuration, set the line content to SP: followed by the B002 tag, and tick Editable for the SP field.

6.3 Editing a Setpoint from the TDE

  1. Navigate to the message text containing the setpoint.
  2. Hold ESC for > 2 s. A black highlight bar appears over the first editable field.
  3. Use ▲ / ▼ to move the bar between fields.
  4. Press OK on the chosen field — it turns into a blinking box.
  5. Use ◀ / ▶ to move between digit positions, ▲ / ▼ to change the digit value.
  6. Press OK to commit, ESC to exit edit mode.

6.4 Manual Push-Buttons F1–F4

The TDE has four function keys F1–F4 that map to LOGO! digital inputs (M17–M20 in the FBD flag area). Wire them as digital flags into AND / OR logic to:

  • F1 — Manual filter pump ON (latched).
  • F2 — Manual filter pump OFF.
  • F3 — Force heating program enable.
  • F4 — Acknowledge alarms.

Create a latching RS flip-flop for each manual load so that the operator can start and stop the filter pump from the keypad independent of the automatic program.

7. Web Server Configuration

LOGO! 8.2 and 8.3 ship with two web servers running in parallel. The MAC address label and QR code on the front of the base module provide the default IP (192.168.0.10).

7.1 Simple Web Server

URL: http://<LOGO_IP> (default port 80). No SD card required. The simple web server mirrors the on-device display and TDE:

  • Virtual LOGO! display and TDE representation.
  • Programmed message texts render here too (if "Display target" includes the web server).
  • Buttons are clickable from a browser / LOGO! Access Tool app.
  • Setpoint edit and acknowledgment work the same as on the TDE.
Security: The simple web server has no built-in authentication. In a residential pool installation this is acceptable on a segmented guest VLAN, but never expose LOGO! directly to the public internet.

7.2 Extended Web Server

URL: http://<LOGO_IP>/<user_dir> (default port 80, separate path). The extended web server serves user-defined HTML pages authored in LOGO! Web Editor (LWE). Features:

  • Custom graphics, your pool layout, gauges, trend plots (JavaScript-driven from JSON status).
  • Read/write of all LOGO! process variables, markers, and block parameters.
  • Programmed message texts are not rendered here — only your custom pages.

7.3 SD Card Requirements (Extended Web Server)

Parameter Requirement
File system FAT32
Maximum capacity 32 GB
Minimum capacity 2 GB (1 GB usually fine)
Card type micro SD, industrial grade recommended for outdoor cabinets
Insertion Push until the spring-loaded latch clicks; card retracts ~ 2 mm. To eject, push again — do not pry.

7.4 Transferring an LWE Project to the LOGO!

  1. Author the web pages in LWE on a PC. Use placeholders linked to LOGO! variable tags.
  2. Build the LWE project (LWE exports a ZIP archive and an upload index file).
  3. Insert the SD card into the PC and copy the LWE export files into the directory structure expected by the extended web server (default user folder under /<user>).
  4. Insert the SD card into the LOGO! base module. The LOGO! will detect logo_user.aff / logo_user.lwf and mount it.
  5. Browse to http://<LOGO_IP>/userdir/index.htm to view the custom pages.

8. Commissioning Procedure

  1. Pre-power checks: Verify the 24 V DC supply polarity, 0–10 V sensor wiring (signal +, ground), and that the heater contactor coil voltage matches the relay contact rating (5 A / 250 V AC).
  2. Power up LOGO!. Observe the RUN/STOP LED — should be solid green within 5 s.
  3. Connect LSC: Tools → Ethernet Connections → Connect. Online → observe should show all block I/O states live.
  4. Sensor calibration: Immerse the PT1000 (with transmitter) in an ice/water slurry (0 °C) — adjust transmitter zero until the LOGO! reads 0.0 °C. Place in boiling water (100 °C, altitude-adjusted) — adjust transmitter span. Most 0–10 V transmitters have multi-turn pots on the front.
  5. Force the heater output: In LSC online view, force Q1 to TRUE; verify the contactor pulls in and the heater draws rated current.
  6. Functional test of hysteresis: Lower SP below current PV; heater should turn OFF. Raise SP above PV + hysteresis; heater should turn ON after the band is crossed.
  7. Test the TDE setpoint edit per the procedure in §6.3.
  8. Test web access: From a phone on the same SSID, open http://192.168.0.10. Verify the virtual TDE renders and setpoint changes propagate to the program.
  9. Test extended web server (if used): Browse the custom LWE pages; toggle a flag from the web and confirm the LOGO! responds.
  10. Run for 24 hours: Log PV and Q1 history if you wired the LOGO! data log to a micro SD card. Verify cycle rate is reasonable (a few cycles per hour, not short-cycling).

9. Field-Proven Caveats

  • SD card holder alignment. The micro SD socket is spring-latched. If the card will not seat fully, the card is misaligned, not stuck — pull it out, inspect the pins for bent tines, and re-insert squarely. Forcing it bends the pins permanently; the holder is a replacement part (not a service item, replace base module).
  • Sensor cable length. A 0–10 V signal is sensitive to induced noise on long cable runs. Use shielded cable, ground the shield at the LOGO! end only, and keep the analog cable physically separated from contactor coil wiring.
  • PT1000 vs 4–20 mA. PT1000 + head transmitter is the most common residential pool solution. If the pool is > 30 m from the LOGO!, switch to 4–20 mA with a 250 Ω shunt — the LOGO! AI cannot read 4–20 mA directly; use an external 250 Ω → 1–5 V conversion resistor and re-scale.
  • Heater inrush. A 3 kW heating cartridge switched by a 25 A contactor has a coil inrush of ~ 10× holding current for 50 ms. The LOGO! relay is rated 5 A steady; derate to 3 A for > 100 k cycles. The contactor coil is well within the relay's surge capability, but a dedicated interposing relay is wise if a latching contactor or three-phase contactor is used.
  • Winter operation. At ~ 0 °C ambient, condensation inside the cabinet is a real risk. Use a 20 W cabinet heater and an IP65 enclosure.
  • Time-of-use tariffs. If the pool is heated on a time-of-use tariff, add a weekly timer block and gate the heater enable with the cheap-rate window.

10. Troubleshooting Matrix

Symptom Likely Cause Diagnostic Fix
Display shows 500 instead of 50.0 Amplifier block decimal places = 0 Open B001 properties Set decimal places = 1
PV always reads 0.0 °C Sensor wiring / transmitter unpowered Measure 0–10 V at AI1 vs LOGO! GND Power transmitter; correct polarity
PV always reads 50.0 °C (max) Sensor input open or shorted at 10 V Disconnect sensor, measure transmitter output Repair wiring; replace transmitter if stuck at full scale
Heater chatters ON/OFF rapidly Hysteresis set to 0 in threshold switch Inspect B003 thresholds Set Th_low = SP − 20, Th_high = SP + 20 (2.0 °C band)
TDE shows black bar that does not respond to OK Message text not configured as editable, or TDE is not the display target Inspect message text "Display target" and "Editable" tick boxes Tick TDE display + Editable; re-transfer program
Simple web server URL works; extended does not SD card not FAT32, or no LWE project on card Power down, remove card, mount on PC, inspect files Re-format FAT32 (full format, not quick); copy LWE export to /userdir/
LOGO! Access Tool cannot find LOGO! Phone and LOGO! on different subnets, or mDNS blocked Ping LOGO! IP from phone Set static IP on phone or enable router mDNS
Heater output never energizes Q1 wired to wrong output, or heater enable flag is FALSE Force Q1 in LSC online view Remap block output to physical Q1; review enable logic
SD card holder pins bent Card forced in at angle Visual inspection Replace base module; do not attempt to straighten with needle-nose pliers
LOGO! reports "No program" on power-up after card removal Program was stored on SD card as auto-load Check Card → Program on Card setting Re-upload from LSC, or re-insert the original SD card

11. Acceptance Checklist

  • [ ] AI1 reads 0.0 °C in ice water and 50.0 °C in boiling water (±0.5 °C).
  • [ ] Heater turns ON when SP is raised 5 °C above PV, OFF when PV exceeds SP + 2 °C.
  • [ ] Hysteresis band is symmetric (2 °C below, 2 °C above) and the cycle rate is < 6 starts/hour.
  • [ ] TDE setpoint is editable per the §6.3 procedure; new value persists across power cycle.
  • [ ] Simple web server is reachable from a phone on the LAN; setpoint edit propagates to the program within 1 s.
  • [ ] Extended web server (if used) loads the LWE custom page; toggle a flag and verify LOGO! response.
  • [ ] All message texts configured for both LOGO! and TDE display targets.
  • [ ] SD card (if used) is FAT32, ≤ 32 GB, and seated correctly without play.
  • [ ] Manual F-key push-buttons toggle the filter pump and heater enable as expected.
  • [ ] 24-hour soak test recorded with cycle count < 30 (1 start every 1.5–2 h typical for 3000 L pool).
Documentation pointer: Keep a printed copy of the LSC circuit diagram and the LWE project inside the cabinet door. Future service calls (years later) by other technicians will rely on this — the LOGO! does not retain online comments in the field.

How do I scale a 0–10 V sensor to 0–50 °C in LOGO! 8.3?

Insert an analog amplifier block on the AI input, set Gain = 0.50, Offset = 0, and one decimal place. The internal 0–1000 units map to 0–500 (× 0.1 °C) and the TDE displays 0.0–50.0 °C. Verify by injecting 5 V: B001 output should read 250 → 25.0 °C.

What is the difference between the simple and extended web server on LOGO! 8?

The simple web server mirrors the on-device display and TDE, renders programmed message texts, and needs no SD card. The extended web server serves user-defined HTML pages authored in LOGO! Web Editor, requires a FAT32 SD card (≤ 32 GB), and does not render programmed message texts — only the custom pages.

Can the operator change the setpoint from the TDE and from the web?

Yes. Mark the setpoint block as "editable from message text" and include it in a message text whose display target includes the TDE and the simple web server. On the TDE, hold ESC > 2 s, navigate to the SP field with ▲/▼, press OK, and edit digit-by-digit. On the web, click the field in the virtual TDE page and use the same keypad widget.

What SD cards work with the LOGO! extended web server?

microSD cards formatted as FAT32 only, maximum 32 GB. Use a full (not quick) format. Industrial-grade cards from SanDisk, Transcend, or Swissbit are recommended for outdoor pool cabinets where temperature swings and humidity are common.

How do I prevent the heater from short-cycling?

Set the analog threshold switch hysteresis to at least 2.0 °C below and 2.0 °C above the setpoint (Th_low = SP − 20, Th_high = SP + 20 in engineering units). A 3 kW pool heater in a 3000 L pool should not exceed 4–6 starts per hour. Lower the hysteresis if cycle count is low, raise it if cycle count is high or the contactor is buzzing.

Back to blog