1. Overview of the LOGO! 8 Numeric Data Model
The Siemens LOGO! 8 logic module (catalog family 6ED1052-1xxx and 6ED1055-4xxx) represents every analog value internally as a 16-bit signed fixed-point integer. Unlike the S7-1200 / S7-1500 controllers, the LOGO! platform does not include a native REAL (IEEE 754 single-precision) data type inside its cyclic variable memory. Every value the application reads from an analog input, computes through an arithmetic block, or writes to an analog output, network tag, or Modbus register, must fit inside the integer range -32768 to +32767. The user-visible decimal point is purely a display attribute: it does not change the underlying bit width, it does not introduce a mantissa or exponent, and it does not improve the resolution of the source analog input.
This constraint is by design. LOGO! targets compact, deterministic small-scale automation; the eight basic functions and the ~30 special-function blocks in LOGO! Soft Comfort V8.x are sufficient for typical OEM and building-services applications without a floating-point unit. The fixed-point model keeps the firmware footprint small, the cycle deterministic, and the per-I/O cost low. When the application genuinely requires IEEE 754 floating-point values—for HMI display needs, complex scaling chains, or peer-to-peer data exchange with a higher-level S7 PLC or third-party sensor—the developer must rely on the Float/Integer Converter (block 217) and Integer/Float Converter (block 218) blocks introduced with LOGO! 8 hardware revision FS04.
2. Fixed-Point Integer Architecture
Internally, every analog input (AI), analog output (AQ), analog flag (AM), network analog input/output (NAI / NAQ), shift-register analog (SR), and the result of every arithmetic or special-function block is stored as a signed 16-bit integer in two's complement representation. There is no implicit mantissa and no implicit exponent. The numeric resolution is exactly one least-significant bit (1 LSB).
| Source | Raw resolution | Mapped integer range | Notes |
|---|---|---|---|
| LOGO! 8 BM AI1-AI4 (base unit, 0-10 V / 0-20 mA) | 10-bit (0-1023) | 0 to 1000 | Internal scaling done by firmware; user sees 0-1000 |
| LOGO! AM2 (analog expansion, voltage / current) | 12-bit (0-4095) | 0 to 1000 | 0-10 V or 0-20 mA input scaled to 0-1000 |
| LOGO! AM2 RTD (Pt100 / Pt1000) | 12-bit | -500 to +500 (tenths of °C) | One implicit decimal place: integer 253 = 25.3 °C |
| LOGO! AM2 PT100 (Ni1000 / Pt1000) | 12-bit | -50 to +200 (tenths of °C) | Sign per sensor type |
| LOGO! TDE text display | n/a | Pass-through | Re-formats the integer for visualization only |
Because the integer range is finite, every scaled analog quantity must be verified to remain inside -32768 to +32767. Overflow is not flagged by the FBD arithmetic blocks; the result wraps modulo 65536 in two's complement arithmetic. For example, 32767 + 1 silently returns -32768, which is the most common source of "incorrect" values reported by first-time LOGO! programmers. The same wrap occurs on every multiplication, every PI controller integral term, and every counter overflow when the parameter is left at the default maximum.
3. Configurable Decimal Places and Value Range
Both the LOGO! on-device 6-line LCD and the external LOGO! TDE (Text Display, 6ED1055-4MH08-0BA0) allow the developer to configure how the same 16-bit integer is rendered. Up to three digits after the decimal point are supported. Configuring the decimal places affects only the HMI layer; it does not change the underlying integer value, it does not introduce additional resolution, and it does not change the wire format over Modbus or S7 communication.
| Decimal places configured | Display range | Step size (LSB) | Typical use case |
|---|---|---|---|
| 0 | -32768 to +32767 | 1 | Pulse counts, hours, integer setpoints |
| 1 | -3276.8 to +3276.7 | 0.1 | Temperatures in 0.1 °C, flow rates in 0.1 l/min |
| 2 | -327.68 to +327.67 | 0.01 | Pressures in 0.01 bar, voltages in 0.01 V |
| 3 | -32.768 to +32.767 | 0.001 | Weights in grams, precision current in mA |
To set decimal places in LOGO! Soft Comfort V8.4:
- Open the project and select the message text or parameter assignment that displays the relevant analog tag.
- Open the message configuration dialog and select the analog value placeholder.
- Under the "Symbol" / "Analog value" property, choose
Decimal pointwith 0, 1, 2, or 3. - Click OK and download the program with
PC → LOGO!.
For values that exceed ±32.767, the decimal place count must be reduced. For instance, a process temperature setpoint of 85.5 °C fits with one decimal place; a setpoint of 850.5 °C cannot use any decimal places without exceeding the 16-bit signed integer range and will therefore be displayed as an integer. In practice this means scaling decisions are part of the application engineering, not an afterthought.
4. Programming Decimal Values in LOGO! Soft Comfort
In the FBD editor, all constants entered into arithmetic block parameters, threshold parameters, and PI controller parameters are integers. To enter "0.5," the developer must enter 5 and configure the destination display with one decimal place. The same convention applies to threshold values, ramp limits, proportional bands, and switching hysteresis.
Example: a PI controller with proportional band 0.5 °C must be parameterized with proportional band = 5, and the parameter view on the LOGO! or TDE must be configured with one decimal place. Project documentation must clearly state that "5" inside the program corresponds to "0.5" in engineering units; otherwise the field engineer will misread the setpoint.
Scaling example: 0-10 V analog input mapped to 0-100 °C with one decimal place on the display.
- Sensor characteristic: linear, 0 V → 0 °C, 10 V → 100 °C.
- LOGO! base-module AI reports 0-1000 internally for 0-10 V.
- Insert a Multiply block:
AQ1 = AI1 * 10. With one decimal place configured on the LOGO! display, the integer in memory (0-1000) is rendered as "0.0" to "100.0". - For better resolution, multiply by 100 and configure two decimal places: integer range becomes 0-10000, which exceeds the 16-bit signed limit. Do not do this on LOGO! 8; instead, scale the input first if higher resolution is required (e.g., use a 4-20 mA input with hardware gain).
This "multiply inside, format outside" pattern is the foundation of every LOGO! scaling chain and works entirely without floating-point support.
5. Float/Integer Converter Blocks (FS04 and Later)
LOGO! 8 hardware revision FS04 (production start approximately 2020; identifiable by the FW-Version string starting with 1.84.x) introduced two special-function blocks specifically for floating-point interoperability with Modbus peers:
- Float/Integer Converter (block ID 217 in LOGO! Soft Comfort V8.4): converts a 32-bit IEEE 754 single-precision value into a LOGO! 16-bit integer, with configurable gain (100 to 10-3) and offset.
- Integer/Float Converter (block ID 218): converts a LOGO! 16-bit integer into a 32-bit IEEE 754 single-precision value for transmission over Modbus TCP/IP.
These blocks do not enable floating-point arithmetic inside the LOGO! program. They provide a bridge so the LOGO! can read floating-point holding or input registers from a Modbus peer (typically an S7-1200 / S7-1500, a third-party sensor with Modbus TCP, or a power meter) and present the value as an integer to the rest of the FBD program, and vice versa.
| Parameter | Function | Range |
|---|---|---|
| Gain (factor of 10) | Scales the float before truncation to integer | 100, 10-1, 10-2, 10-3 |
| Offset | Integer bias added before output | -32768 to +32767 |
| Input EN | Enable; conversion occurs once per LOGO! cycle when EN = 1 | Boolean |
Example: a Modbus temperature sensor reports 23.45 °C as IEEE 754 single-precision (0x41BB999A). The Float/Integer Converter with Gain = 100 converts it to integer 2345, which the LOGO! can display as "23.4" or "23.45" depending on decimal place configuration.
6. Modbus TCP/IP Communication on LOGO! 8 FS4
LOGO! 8 hardware revision FS04 supports Modbus TCP/IP as a server on the on-board Ethernet RJ45 port. The LOGO! does not support Modbus RTU over RS-485; the single Ethernet port is shared between S7 communication, LOGO! Soft Comfort programming, Webserver access, and Modbus TCP/IP. There is no second physical port reserved for Modbus.
| Parameter | Value / Range |
|---|---|
| IP address | Configurable via on-device menu or LOGO! Soft Comfort V8.4 (Tools → Ethernet Connections) |
| Subnet mask | Per project network plan |
| Default gateway | Optional; required if Modbus master is on a different subnet |
| Modbus TCP port | 502 (default; conforms to IANA registered port) |
| Slave / Unit ID | 1-247 supported for Modbus TCP compatibility |
| Supported function codes | 03 (Read Holding Registers), 04 (Read Input Registers), 06 (Write Single Register), 16 (Write Multiple Registers) |
| Address mapping | LOGO! VM (Variable Memory) exposed as Modbus holding registers per LOGO! System Manual chapter "Ethernet Communication" |
For deployments that require both programming access from LOGO! Soft Comfort and Modbus master access from an S7-1200 / S7-1500 / third-party SCADA, both flows share the same physical Ethernet link; the LOGO! is a server on TCP port 502 and supports multiple concurrent masters on the same port.
7. HMI Integration via Siemens Native Protocol
LOGO! 8 supports the Siemens S7 communication protocol on the same Ethernet port. Any Siemens HMI panel starting with the KTP300 Basic series, through the KTP400 Comfort, KTP700 Comfort, KTP900 Comfort, KTP1200 Comfort, and the Unified Comfort Panels, can be configured in TIA Portal with the LOGO! driver to read and write VM addresses natively. This is the preferred path for HMI integration because:
- It exposes the full LOGO! variable space without per-tag Modbus register address mapping.
- Configuration effort is significantly lower than Modbus polling.
- Floating-point values stored across two consecutive VM words by the Integer/Float Converter block can be read directly as REAL on the HMI.
To configure a Siemens HMI in TIA Portal V17 or later:
- Add a new connection in the HMI project under "Connections".
- Select driver SIMATIC LOGO! under the Siemens AG drivers folder.
- Enter the LOGO! IP address, rack 0, slot 0 (LOGO! does not use S7 rack/slot but TIA Portal requires a valid value).
- Map HMI tags directly to LOGO! VM addresses (for example, VW0, VW2, VW4, ...). Choose data type
Intfor raw LOGO! integers. - For floating-point values written by the Integer/Float Converter block, define a tag at the same VM address with data type
Real; TIA Portal reads both consecutive words in one transaction. - Format the HMI input/output field with the required number of decimal places (HMI-side formatting, independent of LOGO!-side formatting).
If the application mandates Modbus between the LOGO! and a Siemens Comfort Panel, both devices support Modbus TCP/IP, but the configuration effort is greater and the variable mapping is less direct. Use the native S7 driver whenever possible.
8. Analog Input Scaling Best Practices
The LOGO! 8 analog input (AI) provides hardware-level scaling. On the base module, AI1-AI4 accept 0-10 V or 0-20 mA and report 0-1000 internally (10-bit resolution). On AM2 RTD / PT100 modules the input is reported directly in tenths of a degree (e.g., 25.3 °C → 253). When using an AM2 RTD, the integer already includes one implicit decimal place; configure the LOGO! display with one decimal place to match.
Recommended scaling workflow:
- Determine the engineering-unit range required by the application (e.g., 0-100 °C, 0-10 bar, 4-20 mA = 0-50 l/min).
- Determine the integer range provided by the analog block (e.g., 0-1000 for 0-10 V input).
- Compute scale factor
k = (engineering_max - engineering_min) / (integer_max - integer_min). - Compute offset
b = engineering_min - k * integer_min. - Implement
y = k * x + busing LOGO! arithmetic blocks. Because LOGO! uses integer arithmetic,kmust be a rational number representable as an integer ratio; multiply through to avoid loss of precision. - Validate the result at min, mid-range, and max to ensure no overflow and no excessive quantization.
Worked example: 4-20 mA flow sensor, 0-50 l/min.
- LOGO! AM2 in 4-20 mA mode reports 0-1000.
- At 4 mA: integer = 0, flow = 0 l/min.
- At 20 mA: integer = 1000, flow = 50 l/min.
- Scale factor
k = 50 / 1000 = 0.05 l/minper LSB. To express this in integer math with two decimal places, multiply both inputs by 100: scaled integer = 5 * raw_integer / 100. Since 5 * raw_integer produces a value up to 5000, divide by 100 to get a value up to 50 with two decimal places configured. The integer in memory is flow * 100.
This pattern is reusable for every analog channel: pick the desired engineering precision (typically 0.1 °C, 0.01 bar, or 0.1 l/min), pick the matching decimal place count on the LOGO! display, and scale by the corresponding power of 10 inside the FBD program.
9. Modbus Register Address Mapping and Floating-Point Encoding
A 32-bit IEEE 754 single-precision value occupies two consecutive 16-bit Modbus registers. The LOGO! Float/Integer and Integer/Float converter blocks handle the split transparently, but the master must read or write both registers in a single transaction to avoid torn reads.
| Operation | Function code | Quantity / Byte count | Notes |
|---|---|---|---|
| Read 32-bit float (input) | 04 | Quantity = 2 | Read two consecutive input registers; combine as big-endian word + word |
| Read 32-bit float (holding) | 03 | Quantity = 2 | Same as above, holding register area |
| Write 32-bit float | 16 | Byte count = 4 | Write two consecutive registers atomically |
The LOGO! VM address-to-Modbus-register mapping follows the LOGO! System Manual chapter on Ethernet communication. As a rule of thumb, Modbus holding register address N corresponds to LOGO! VM word address N - 1 (zero-based). For example, LOGO! VW100 maps to Modbus holding register 101 (function code 03).
10. Boundary Conditions, Overflow, and Edge Cases
The 16-bit signed integer range is the most common cause of unexpected behavior in LOGO! programs. Specific traps the field engineer must know:
- Wrap-around: 32767 + 1 = -32768. The LOGO! does not raise an exception; the wrap is silent. Reserve integer headroom for the largest possible intermediate result, especially for PI controller integral terms and counter accumulators.
- Mixed scales: if one block is configured with two decimal places and another is configured with no decimal places, adding them produces a mis-scaled value. Document the scale of every analog variable explicitly in the project drawing.
- Modbus register width: a 32-bit IEEE 754 float occupies two consecutive 16-bit Modbus registers. Always use function code 03/04 with quantity = 2, or function code 16 with byte count = 4, to read or write the full value atomically.
- TDE display rollover: with three decimal places configured, a value of 32.767 is the maximum. Any computation that produces 32768 will display as "-32.768". Switch the decimal place count on the message text to 0 for setpoints that exceed +/-32.7.
- Floating-point only on FS4: the Float/Integer Converter blocks require firmware FS04 or later (1.84.x). Earlier hardware revisions (FS03, firmware 1.80.x) do not contain these blocks. Verify firmware version under LOGO! menu → Diagnostics → FW Version, or in LOGO! Soft Comfort via Online → LOGO! → Information.
- Webserver parameter view: the LOGO! 8 onboard Webserver displays values formatted as integers. Decimal place formatting in the Webserver is limited compared to the LOGO! on-device display; for engineering-unit presentation, prefer the TDE or a Siemens HMI.
- SD card parameter retention: parameter assignments, decimal place settings, and Modbus register mappings are stored in non-volatile memory and retained through power-cycle. Removing the SD card does not erase the project; it only removes the optional data-logging buffer.
11. Verification and Commissioning Checklist
Before handover, run through the following checks:
- Open LOGO! Soft Comfort V8.4 and connect online. Confirm the device is detected as FS04 (firmware version ≥ 1.84.x) via Online → LOGO! → Information.
- For every analog tag, document (a) the underlying integer range and (b) the configured decimal places on the LOGO! display, on the TDE, and on every connected HMI.
- Force a max-value analog input and verify the scaled integer stays within -32768 to +32767 on the LOGO!, the TDE, and every connected HMI.
- Trigger a Modbus master read of each Float/Integer Converter output and confirm the 32-bit IEEE 754 value matches the engineering unit. Use Wireshark with the Modbus dissector or a Modbus master tool with float-decoding to verify byte order.
- From the LOGO! on-device menu, navigate to each parameter assignment and verify the decimal place setting matches the project documentation.
- Power-cycle the LOGO! and verify that all scaling parameters, decimal place settings, and Modbus register mappings are retained in non-volatile memory.
- For projects using a TDE, verify that the TDE firmware matches the LOGO! base module firmware revision; mixing FS03 base with FS04 TDE (or vice versa) can cause display errors and is not supported.
- For projects using a Siemens HMI, verify the connection status indicator on the HMI is green and that every polled VM address responds within the configured poll cycle.
- Document the relationship between every integer in the program and its engineering-unit value on the drawing set; this is the single most effective mitigation against future field-engineer confusion.
AI1 = 0-1000 = 0.0-100.0 °C, 1 decimal place") saves hours of troubleshooting during future modifications.Does LOGO! 8 support floating-point (REAL) arithmetic natively?
No. LOGO! 8 stores every analog value as a 16-bit signed integer in the range -32768 to +32767. Floating-point values are only supported as a Modbus interworking format via the Float/Integer Converter (block 217) and Integer/Float Converter (block 218) blocks, which require FS04 firmware or later.
How do I display a value like 0.05 or 0.005 on the LOGO! or TDE?
Enter the underlying integer (5) in the program and configure the message text with the matching number of decimal places: two decimal places for 0.05, three decimal places for 0.005. The displayed value is the integer divided by 10, 100, or 1000 respectively.
Does LOGO! 8 support Modbus RTU over RS-485?
No. LOGO! 8 has a single Ethernet RJ45 port. FS04 firmware supports Modbus TCP/IP as a server on TCP port 502. For Modbus RTU bridging, use an external gateway such as a Siemens LOGO! CMR (4G router with RTU/TCP bridging) or a third-party converter.
Which Siemens HMIs can connect to a LOGO! 8?
Any Siemens HMI panel from the KTP300 Basic series upward, including the KTP400 / KTP700 / KTP900 / KTP1200 Comfort panels and Unified Comfort Panels, supports the native Siemens LOGO! driver in TIA Portal. Configure the connection with the LOGO! IP address and map HMI tags to VM addresses directly.
What happens if a calculation produces a value outside -32768 to +32767?
The integer wraps in two's complement arithmetic (for example, 32767 + 1 = -32768). The LOGO! does not flag an overflow. Reserve integer headroom in scaling equations and verify with forced max-value tests during commissioning.