Problem Summary
A PT100 RTD wired to a Siemens LOGO! 8 base module on AI3 or AI4, configured for PT100 sensor type, displays a raw integer between 230 and 270 in LOGO! Soft Comfort online test and in the Excel LogoLogger worksheet. The operator expects a value close to the pool water temperature (typically 5-10 °C) and concludes the sensor or the LOGO! program is faulty. The actual cause is the LOGO! representation: the analog input is published as a unitless integer between 0 and 1000 mapped to -50 °C through +200 °C. The "230 to 270" reading is exactly correct and corresponds to 7.5 °C to 17.5 °C. The fix is to add an Analog Amplifier block (B017 / B018) that converts the raw count to engineering units (°C) and routes the result into an analog flag so that the LogoLogger Excel macro can record the actual temperature value.
This article covers the complete conversion chain: from the PT100 resistance at the sensor terminals, through the AI3/AI4 digitisation in the LOGO! 8 base module, into the Analog Amplifier block, and finally into the AM1/AM2 analog flags that LogoLogger polls over Ethernet.
How LOGO! Maps PT100 Resistance to the Analog Value
The Siemens LOGO! 8 base module (LOGO! 8 product page) accepts a PT100 sensor on AI3 and AI4 when the input's sensor type is set to PT100 in the input properties dialog of LOGO! Soft Comfort. AI1 and AI2 are fixed 0-10 V inputs; AI3 and AI4 can be reconfigured. When PT100 mode is active, the module performs a resistance-to-temperature conversion internally and produces a linear 0 to 1000 count mapped to -50 °C through +200 °C, as documented in the LOGO! 8 system manual available at the Siemens Industry Online Support portal.
| Temperature | PT100 resistance (Ω) | AI3 / AI4 raw value |
|---|---|---|
| -50 °C | 80.31 | 0 |
| -25 °C | 90.19 | 100 |
| 0 °C | 100.00 | 200 |
| 25 °C | 109.73 | 300 |
| 50 °C | 119.40 | 400 |
| 100 °C | 138.51 | 600 |
| 150 °C | 157.33 | 800 |
| 200 °C | 175.86 | 1000 |
The conversion is a straight-line equation across the published range:
T(°C) = (RawValue / 1000) × 250 - 50
T(°C) = RawValue × 0.25 - 50
Verify with the observed values from the field:
- Raw 230 → 230 × 0.25 − 50 = 7.5 °C
- Raw 270 → 270 × 0.25 − 50 = 17.5 °C
- Raw 500 → 500 × 0.25 − 50 = 75.0 °C (typical solar collector target)
The 0.25 coefficient is the reciprocal of 1000 ÷ 250 = 4, where 1000 is the full span in raw counts and 250 is the full span in °C (−50 to +200 = 250 K). The offset of −50 shifts the raw 200 count (which is the 0 Ω nominal reference inside the LOGO! firmware) down to a true 0 °C reading.
Root Cause: Raw Integer vs Engineering Unit
The value displayed in the online-test "goggles" tooltip and in the LogoLogger Excel cell is the LOGO! raw count, not the temperature. Three facts about the LOGO! architecture collide here:
- Internal representation. LOGO! Soft Comfort, the LogoLogger macro, and the LOGO! firmware VM all store analog values as signed 16-bit integers where 0 represents the lower range bound and 1000 represents the upper range bound. The online test shows this raw value because that is the integer the LOGO! CPU has placed in memory at the AI pin.
- No automatic scaling. The Analog Amplifier, Analog Math, and other function blocks can transform the raw value into engineering units, but until one of those blocks is wired in, no scaling is performed. The user is therefore reading the sensor's "native" LOGO! representation, not a temperature.
- LogoLogger scope. The LogoLogger Excel macro can only poll LOGO! memory areas (I, Q, M, AM, shift register, VM). It cannot read the output of an arbitrary function block. The scaled °C value must be deposited into an analog flag (AM) memory location that LogoLogger is configured to poll.
This is a documentation / program-layer issue, not a wiring or hardware fault. A multimeter on the LOGO! AI3 input terminals with the PT100 still connected will read 0 V; the LOGO! inputs are passive, not active current sources. The resistance measurement must be performed at the sensor or with the wires disconnected from the LOGO! terminal block.
Solution Architecture
The recommended fix scales the raw count into °C and stores the scaled value in an analog flag (AM) memory location that LogoLogger can read. The minimum-viable circuit is two Analog Amplifier blocks (one per sensor) feeding AM1 and AM2:
After this change, the LogoLogger Excel sheet should display AM1 and AM2 cells with the actual temperature (e.g., 7.5 and 17.5), which is the engineering-unit value the operator originally expected.
Prerequisites
- Siemens LOGO! 8 base module whose AI3 / AI4 can be set to PT100 sensor type. Confirm by opening LOGO! Soft Comfort, dragging an AI input onto the worksheet, and checking that the Sensor Type dropdown lists PT100. Compatible module families are listed in the compatibility matrix below.
- LOGO! Soft Comfort V8.0 or later installed; the dialog for sensor selection on the AI input is available from V8.0 onward (consult the Siemens Industry Online Support portal for the Soft Comfort V8.3 release notes and minimum firmware requirements).
- PT100 RTD wired in 3-wire configuration for best accuracy, or 2-wire for short cable runs under 5 m.
- Ethernet connection between the LOGO! base module and the PC running LogoLogger so the macro can poll the analog flags.
- LOGO! firmware 8.0 or later to support AM memory access via Modbus TCP (used by LogoLogger).
Step-by-Step Configuration
Step 1 - Configure AI3 and AI4 Sensor Type
- Open the program in LOGO! Soft Comfort.
- Double-click the AI3 input block (or use the Tools → Inputs / Outputs menu) to open the input properties dialog.
- Set Sensor Type to
PT100. - If using a 3-wire PT100, no additional setting is needed; 2-wire requires either jumper compensation at the LOGO! terminals or an expected tolerance allowance.
- Repeat for AI4.
- Download the program to the LOGO! base module.
Step 2 - Place the Analog Amplifier Block
- In the Programming toolbar, select the Analog Amplifier block (folder: Analog → Amplifier).
- Place two amplifier blocks on the worksheet; typical block numbers used in this scenario are B017 and B018, but any free B-number works.
- For B017, drag the AI3 input pin to the amplifier's input pin (Ax).
- For B018, drag the AI4 input pin to the amplifier's input pin.
Step 3 - Configure Gain, Offset, and Sensor Selection
- Open B017's block properties dialog.
- Set Sensor to
No sensor. The AI3 input already performs PT100 scaling, so the amplifier must not double-scale. - Set Gain to
0.25. - Set Offset to
-50. - Confirm the Output Range is set to a range that covers -50 °C (e.g., ±10000 if your LOGO! Soft Comfort version offers that choice; otherwise leave at 0-1000 and accept that negative values display as 0 in the goggles tooltip but are still correct in the AM register).
- Repeat for B018 with the same parameters.
The amplifier applies the linear equation Output = (Gain × Input) + Offset. With Gain = 0.25 and Offset = -50:
- Input 230 → 0.25 × 230 + (-50) = 7.5
- Input 500 → 0.25 × 500 + (-50) = 75.0
- Input 1000 → 0.25 × 1000 + (-50) = 200.0
Step 4 - Route Outputs to Analog Flags
- Drag the output of B017 onto an Analog Flag pin; select
AM1from the flag list. - Drag the output of B018 onto another Analog Flag pin; select
AM2. - Save the program and download it to the LOGO! base module.
LOGO! provides 64 analog flag locations, AM1 through AM64. Each holds a signed 16-bit integer ranging from -32768 to +32767, which is more than enough to express the full PT100 range with 0.25 °C resolution.
Step 5 - Configure LogoLogger to Poll AM1 and AM2
- Open the LogoLogger Excel workbook.
- Click the Settings or Config button (varies by version of the macro).
- Add
AM1andAM2to the list of polled memory addresses. - Set the LOGO! IP address and Modbus TCP port (default 102).
- Confirm the polling interval; 1-10 s is appropriate for a solar heater.
- Start logging; the AM1 and AM2 columns should now populate with °C values in the expected -50 to +200 range.
Alternative: Scale in Excel Instead of LOGO!
For users who want to leave the LOGO! program untouched, the raw count can be converted in Excel with a single formula:
= A1 * 0.25 - 50
Place this formula in the column immediately to the right of the raw AI3 / AI4 logging column, then plot the formula column instead of the raw column. This is the lightest-touch fix and requires no program change. It does mean that anyone reading the spreadsheet later must understand the conversion; a header comment in row 1 is recommended:
' PT100 sensor 1 - LOGO! AI3 raw 0-1000. Engineering units = raw * 0.25 - 50
Both approaches are valid. The LOGO!-side scaling has the advantage that any LOGO! display, the on-board web server (on LOGO! 8.2 / 8.3 base modules), or a connected HMI also shows the correct temperature without further translation.
Why the Analog Comparator Does Not Solve This
The user observed that an Analog Comparator block "set to PT100" was active, and assumed it was performing the scaling. The Analog Comparator is a two-input threshold switch with hysteresis; it produces a digital 0 or 1 output. The PT100 selection in the comparator (or amplifier) controls which sensor type the block itself interprets on its input pin, but the comparator output is boolean, not scaled.
| Block | Input unit | Output unit | Use case |
|---|---|---|---|
| Analog Comparator | PT100 or 0-10 V | 0 or 1 (digital) | Threshold detection, hysteresis control |
| Analog Amplifier | PT100, 0-10 V, or scaled 0-1000 | Scaled integer | Engineering-unit conversion |
| Analog Math | Any combination | Scaled integer | Custom formulas (differential, average, peak hold) |
For displaying and logging the temperature, the Analog Amplifier is the correct tool. The Analog Comparator can stay in the program if it is being used to trigger a pump or valve based on a temperature threshold (e.g., turn the circulation pump on when collector temperature exceeds pool temperature by 5 °C). It is simply not the block that produces the °C value you want to log.
LogoLogger Memory Map
The LogoLogger Excel macro communicates with the LOGO! over Ethernet using the Modbus TCP server that the LOGO! exposes. The relevant register addresses for analog flags are listed below; the exact mapping should be confirmed against the LOGO! communication manual published on the Siemens Industry Online Support portal because Siemens has shifted the Modbus base address between firmware revisions.
| LOGO! tag | Modbus holding register (typical FW 8.x) | Data type | Range |
|---|---|---|---|
| AM1 | 0 | 16-bit signed | -32768 to +32767 |
| AM2 | 1 | 16-bit signed | -32768 to +32767 |
| AM3 | 2 | 16-bit signed | -32768 to +32767 |
| ... | ... | ... | ... |
| AM64 | 63 | 16-bit signed | -32768 to +32767 |
Verification Procedure
- Raw path check. With a 100 Ω precision resistor across the AI3 terminals (simulating 0 °C), confirm that the AI3 raw value reads 200 in online test. This proves the AI3 input is correctly digitising the PT100-equivalent resistance.
- Amplifier path check. With the resistor still in place, AM1 should read 0 (± 1 count, i.e., 0 °C ± 0.25 °C).
- High-end path check. Replace the 100 Ω resistor with a 138.51 Ω precision resistor (or decade box). AI3 should read 600 and AM1 should read 100 (i.e., 100.0 °C).
- Negative path check. Use 80.31 Ω to simulate -50 °C; AM1 should read -50.
- Live cross-check. For a live system check, compare AM1 against an independent reference thermometer in the same water. Acceptable deviation is ± 1 °C for 3-wire PT100, ± 2 °C for 2-wire with copper cable under 5 m.
Edge Cases and Field Notes
2-Wire vs 3-Wire PT100
The PT100 sensor can be wired to the LOGO! in 2-wire or 3-wire configuration. 2-wire adds the cable resistance directly to the PT100 resistance. A 10 m run of 0.5 mm² copper wire is approximately 0.7 Ω loop resistance, which translates to roughly 1.8 °C of positive offset error. For accuracy below ± 1 °C, use 3-wire and short cable runs. The wiring diagrams for both modes are shown in the LOGO! 8 system manual on the Siemens Industry Online Support portal.
Wire Resistance Compensation
If a long 2-wire cable is unavoidable, measure the loop resistance with the PT100 disconnected and subtract it as a fixed offset. The Analog Amplifier offset parameter can absorb this correction. For example, a 0.7 Ω loop resistance adds 0.7 / 0.385 ≈ 1.8 °C of error; change the Amplifier offset from -50 to -51.8 (or -52 to round). If a calibration thermometer is available, iterate on this offset until the AM1 reading matches the reference thermometer.
Broken Sensor Detection
An open PT100 produces a raw value at one extreme (0 or 1000 depending on which lead is broken). Use an additional Analog Comparator block with hysteresis to alarm on these extremes; this prevents the control loop from misinterpreting a fault as a real temperature.
| Condition | AI3 raw | AM1 °C | Recommended action |
|---|---|---|---|
| Sensor short or one lead open (low) | 0 | < -49 °C | Alarm + disable pump |
| Sensor lead open (high) | 1000 | > +199 °C | Alarm + disable pump |
| Normal range (pool application) | 200-800 | 0 to 150 °C | Run normally |
Gain Precision
The Amplifier block applies Gain × Input in integer arithmetic. With Gain = 0.25, every 4 counts of raw input produces 1 count of output. This is the resolution of the displayed temperature: 0.25 °C. For a swimming-pool solar heater this is more than sufficient. If finer resolution is needed, use Gain = 250 and Offset = -50000, then divide the AM register by 1000 in the Excel column (or with a second Amplifier chain if you must stay inside the LOGO!).
Using Analog Math for Differential Control
For differential temperature control (collector − pool, the most common solar-heating control law), the Analog Math block can perform the subtraction in a single expression without an intermediate offset:
OUT = (AI3 × 0.25 - 50) - (AI4 × 0.25 - 50)
This simplifies to OUT = (AI3 - AI4) × 0.25; the offset cancels out automatically. Configure the Analog Math block with the expression (AI3 - AI4) * 0.25 and route the result to AM3 for logging.
Retentive Behavior
Analog flags AM1 through AM64 are volatile by default in LOGO! Soft Comfort. If the LOGO! loses power, the AM values reset. To retain the last temperature across a power cycle, enable Retentivity for AM1 and AM2 in the program properties. Be aware that retaining an analog flag occupies one of the limited retentive slots (LOGO! base modules offer a small number of retentive bytes; consult the LOGO! 8 manual for the exact count per module variant).
Compatibility Matrix
| LOGO! base module family | PT100 on AI3 / AI4 | AM memory access via Modbus | Notes |
|---|---|---|---|
| LOGO! 8 BM with display, no Ethernet | Yes (FW 8.0+) | No | Use a LOGO! AM2 PT100 expansion module if Modbus is required |
| LOGO! 8 BM with Ethernet | Yes (FW 8.0+) | Yes | Recommended for LogoLogger integration |
| LOGO! 8.2 BM (FW 8.2) | Yes | Yes | On-board web server for visualisation |
| LOGO! 8.3 BM (FW 8.3) | Yes | Yes | Web server V2 with custom pages |
| LOGO! AM2 PT100 expansion module | Yes (always) | Yes (via base module) | Adds two additional PT100 channels for older base modules |
| LOGO! 6 / LOGO! 7 base modules | No native PT100 on AI | Limited | Requires AM2 PT100 expansion module for PT100 |
Verify the exact catalog number and PT100 capability of your base module by checking the AI input properties in LOGO! Soft Comfort; if PT100 appears in the Sensor Type dropdown, the hardware supports it. Older LOGO! 6 / LOGO! 7 base modules do not support PT100 on AI3 / AI4 natively and require the external AM2 PT100 expansion module.
Why does my Siemens LOGO! PT100 input show 230 instead of 7 °C?
The AI3 / AI4 raw value is a unitless count from 0 to 1000 that maps linearly to -50 °C...+200 °C. A reading of 230 corresponds to 230 × 0.25 - 50 = 7.5 °C, and 270 corresponds to 17.5 °C. Both are valid measurements. Add an Analog Amplifier block (Gain 0.25, Offset -50) to convert to engineering units.
How do I scale PT100 raw values to °C in LOGO! Soft Comfort?
Place an Analog Amplifier block on the AI input, set the Gain parameter to 0.25, set the Offset parameter to -50, leave Sensor set to "No sensor" so the AI's existing PT100 scaling is not duplicated, and route the amplifier output to an analog flag (AM). The amplifier applies Output = Gain × Input + Offset, which produces the temperature in °C at 0.25 °C integer resolution.
Can LogoLogger read function block outputs directly?
No. LogoLogger can only read LOGO! memory areas such as digital inputs (I), outputs (Q), digital flags (M), and analog flags (AM). It cannot poll the output of a specific function block such as B017. To make a scaled value visible to LogoLogger, route the block's output into an analog flag and add that flag to the LogoLogger polling list.
What is the formula to convert a LOGO! PT100 raw value to temperature?
For PT100 mode on AI3 / AI4, use T(°C) = Raw × 0.25 - 50, where Raw is the integer shown in online test. The same formula applies in Excel: =Raw*0.25-50. The mapping is valid across the full -50 °C to +200 °C PT100 range supported by the LOGO! base module.
Do I need an amplifier if I already use an Analog Comparator with PT100?
Yes. The Analog Comparator compares two values and outputs a 0 or 1 digital state; it does not produce a scaled °C reading. Use the Analog Amplifier (or Analog Math) for the scaled °C value, and keep the comparator only if you need threshold-based switching such as turning a pump on above a setpoint.