LOGO! TDE Large Number Display: Workarounds for the 32767 Integer Limit
Siemens LOGO! 8 base modules and the LOGO! TDE external text display (6ED1055-4MH08-0BA1 family, also referenced as the LOGO! TD) use 16-bit signed integer math for nearly every analog operand, threshold, counter, and on-screen numeric field. This bounds every single displayed value to -32 768 ... +32 767. When a process variable legitimately exceeds that range - a 70 000 L tank, a 250 000 pulse count, a 1 000 000 m flow total - the TDE cannot show the real number. The variable clips, wraps, or is suppressed depending on the source block. This reference documents four field-proven methods to push past the limit without changing the controller: Analog Amplifier Gain/Offset scaling, decimal-point repositioning, multi-zone message composition, and unit-suffix scaling, with concrete configuration values, math, TDE commissioning checks, and a troubleshooting matrix.
1. Hardware and Software in Scope
The methods below apply to the LOGO! 0BA8 generation and its associated TDE. Earlier generations (0BA0 ... 0BA7) carry the same 16-bit limit; later firmware adds higher counter resolution but not a wider TDE numeric format.
| Component | Typical Order Number | Relevant Limits |
|---|---|---|
| LOGO! 8 base (with display) | 6ED1052-1MD08-0BA1 / 2MD08-0BA1 / 1HF08-0BA1 | 16-bit signed operand space |
| LOGO! 8 base (pure) | 6ED1052-1CC08-0BA1 | No on-board display; TDE required |
| LOGO! TDE | 6ED1055-4MH08-0BA1 | 6 lines x 20 chars, IP20, white backlight |
| LOGO! TDE (door-mount, IP65) | 6ED1055-4MH08-0BA2 | Same character grid, IP65 front |
| Programming software | LOGO!Soft Comfort V8.x (8.3 and newer recommended) | Drag-and-drop FBD/Ladder with simulation |
Reference the official LOGO! 0BA8 system manual and the LOGO! TDE operating instructions for part-number details and pinout.
2. Why the Display Caps at 32 767
Inside the LOGO! 0BA8 runtime the CPU stores I/O flags, analog thresholds, message-text numeric inserts, on-delay / off-delay setpoints, counter values, and timer values as 16-bit signed words with the range -32 768 ... +32 767 (i.e. -2^15 ... 2^15 - 1). Any operand forwarded to the TDE that exceeds +32 767 is treated in one of three ways depending on the source block:
- Clipping at +32 767 - typical of message-text numeric fields and the Analog Multiplexer.
- Modulo wrapping - the value rolls over to a negative number. The 70 000 L case in the field report will appear as 70 000 - 2 x 32 768 = 4 464 if the underlying integer is treated as unsigned, or simply 0 if the value source is signed-clipped.
- Suppression - the TDE message line is blanked or shows asterisks (*).
LOGO! 0BA8 does support a 32-bit high-speed counter (HSC) on the fast digital inputs I1 / I2 / I3 / I4 / I5 / I6 with counts up to 2 000 000 when using the high-speed counter block, and recent firmware exposes double-word (DWORD) for specific blocks. However, the TDE message numeric field format is still a 16-bit signed render, so a 32-bit HSC value displayed directly will still clip at 32 767. The fix is therefore always at the display boundary, not the counter boundary.
3. Worked Example - 70 000 L Tank Volume
The source scenario is a 70 000 L process tank whose actual level is multiplied by the tank cross-section to yield a volume word. If the analog input AI1 reports 0 ... 10 000 (representing 0 ... 100.00 % of probe span) and the geometry block multiplies by 7 to obtain 0 ... 70 000, the result exceeds 32 767 and is un-displayable.
| Raw AI1 (counts) | Probe % | True Volume (L) | Word as 16-bit signed | What TDE Shows |
|---|---|---|---|---|
| 0 | 0 % | 0 | 0 | 0 |
| 2500 | 25 % | 17 500 | 17 500 | 17500 (correct) |
| 4660 | 46.6 % | 32 620 | 32 620 | 32620 (last correct value) |
| 5000 | 50 % | 35 000 | 2 232 (wrap) | 2232 (wrong!) |
| 10 000 | 100 % | 70 000 | 4 464 (wrap) | 4464 (wrong!) |
From 46.6 % level upward the operator sees a value that no longer correlates to tank content. The four solutions below all bring the displayed value back into the 16-bit signed window.
4. Solution 1 - Analog Amplifier Gain / Offset Scaling
The Analog Amplifier block (block number B20 in LOGO!Soft Comfort) is the cleanest way to compress a 0 ... 70 000 signal into a 0 ... 7 000 word. Place the block on the FBD canvas, double-click, and configure:
| Parameter | Value (70 000 L case) | Meaning |
|---|---|---|
| Sensor type | 0 ... 10 000 (or 0 ... 32 000 if scaling from %) | Native input range |
| Gain | 0.1 | Output = Input x Gain + Offset |
| Offset | 0 | No zero shift |
| Output range (display) | 0 ... 7 000 | New readable value, max 6 999 |
With Gain = 0.1 and 0 offset the analog amplifier divides the input by 10. The 70 000 L maximum compresses to 7 000, which the TDE can render. Configure the on-screen message text to read Volume: [B20] x 10 L using a static text suffix, or place the unit "L" (or "kL") after the numeric field. Resolution becomes 10 L per step, which is acceptable for most tank-level applications.
An alternative is to keep Gain = 7 (as referenced in the field report) and set the display to two decimal places. The TDE message numeric format has limited decimal control; LOGO!Soft Comfort exposes the format via the message block's "Number of decimal places" attribute. With two decimal places a value of 0 ... 70 000 is rendered as 0.00 ... 700.00. If the application interprets the value as 100 L per unit (i.e. Gain 7 + divide by 100), the operator reads 70 000 L from a "700.00" display with a "x100 L" suffix.
5. Solution 2 - Decimal-Point Repositioning (kL Display)
If the process is happy in kilolitres, scale the underlying value by 0.001 before it reaches the TDE. With a 0 ... 70 000 L input and a divisor of 1 000, the displayed number is 0 ... 70. The TDE shows "70" with a "kL" suffix. This frees an entire order of magnitude and removes the need for decimal places.
| Engineering Unit | Scale Factor Applied | Displayed Range | Suffix Text on TDE | Resolution |
|---|---|---|---|---|
| L | x 1 | 0 ... 70 000 (overflows) | L | 1 L |
| kL (scaled 1:1000) | x 0.001 | 0 ... 70 | kL | 1 kL = 1000 L |
| m^3 with 1 decimal (scaled 1:100) | x 0.01 | 0.0 ... 700.0 | m^3 | 100 L |
| ML (scaled 1:1 000 000) | x 1e-6 | 0.000 ... 0.070 | ML | 1000 L |
Use the Math Instruction block (block number B25) or the Analog Amplifier for the scale. Both blocks accept a constant that LOGO!Soft Comfort can express as a float (e.g. 0.001), and the result is integerised by the runtime. This is the most readable solution for an operator: the TDE shows "70 kL" and the meaning is unambiguous.
6. Solution 3 - Multi-Field Display Zones
The TDE is 6 lines x 20 characters. For very large numbers you can split the value across two message lines and concatenate. The typical trick is to show the most-significant 2-3 digits on the top line and the least-significant 2-3 digits on the second line, separated by a header:
Line 1: Tank 1 Volume
Line 2: --------------------
Line 3: 70
Line 4: 000 L
Line 5:
Line 6: -- High --
The top "70" is a B20 amplifier with Gain = 0.0001, the bottom "000" is the same source with Gain = 1 and Offset = 0, then masked to the lower 3 digits using the Analog Threshold Trigger combined with a Math Instruction. In practice, this is cumbersome; it is mostly useful when the existing two analog amplifiers are already present and only display formatting is needed. Most engineers will prefer Solution 1 or 2.
7. Solution 4 - Unit Conversion with the Math Instruction
The Math Instruction block (B25) accepts the formula A = (B + C) x D + E in free form, where B and C are the inputs and D, E are constants. The block is fully integer internally, so to scale 0 ... 70 000 down to 0 ... 7 000 use:
- Input Bx = raw volume word (0 ... 70 000)
- Operator = multiply, factor = 0.1 (gain)
- Operator = add, constant = 0 (offset)
- Output Ax = scaled value (0 ... 7 000)
LOGO!Soft Comfort allows the gain to be a non-integer constant; the runtime rounds the result to the nearest signed 16-bit word. Math Instruction is functionally equivalent to Analog Amplifier for simple scaling. Use Analog Amplifier when you also need to apply a sensor zero-shift (Offset <> 0) or when the result must drive an analog output AQ; use Math Instruction when the scaled value is only destined for the TDE message field.
8. TDE Text Alignment Constraints
The field report notes that the user attempted to append a literal text "0" to a numeric value on the TDE, expecting it to look like "70000". The TDE does not align free text against a numeric field pixel-for-pixel. The grid is fixed 6 x 20 characters with a single font and fixed character cell. You cannot right-align a custom text fragment against the rendered number, so the hack of appending a static "0" produces the typical "7000 0" result. There is no in-built leading-zero suppression, no decimal padding, and no sub-character positioning.
Consequences for the design:
- Choose a scaling factor (Solution 1, 2, 3 or 4) so the natural integer fits without manual padding.
- If the value must be shown as 5 digits and the source maxes at 4 digits, scale the source - do not pad with text.
- If the value is < 10 000, the TDE will left-pack the number with leading spaces; this is the natural behaviour and cannot be disabled.
- The negative sign occupies a full character cell, so the positive-only range 0 ... 32 767 effectively renders as up to 5 characters with the leading sign only on negatives.
9. Configuring the Analog Amplifier in LOGO!Soft Comfort V8.x
- Open the project and switch to FBD view (the LOGO!Soft Comfort default).
- Drag the Analog Amplifier block from the analog functions palette on to the canvas.
- Double-click the block header to open the properties dialog.
- Set the Sensor range to match the upstream source block (for example, 0 ... 10 000 if the source is the percentage output of an arithmetic block, or 0 ... 32 000 if the source is already a raw integer).
- Set Gain to the desired scale (0.1 for the 70 000 L case).
- Set Offset to 0 unless you need a zero shift.
- Click OK; the block is now ready to drive a TDE message text numeric field.
- Open the LOGO! Message Text configuration (drag the message block from the special functions palette), enable it, and in the message body place the analog amplifier tag (e.g.
001if it is the first amplifier). In the right-hand attributes set "Number of decimal places" to 0 for an integer, or 1 / 2 if you prefer to keep precision in the visible digits. - Add a static text suffix such as " kL" to the message line. The suffix does not shift position when the numeric value changes digit count.
- Save the project and transfer to the LOGO! via Ethernet or LOGO! USB cable. Trigger the message by enabling the message text enable flag from your program.
10. Verification and Commissioning Steps
- Use the LOGO!Soft Comfort Simulation mode to drive the input block through its full range (0, 25 %, 50 %, 75 %, 100 %). Confirm the TDE message field shows the expected scaled value at each step.
- Force the LOGO! into the Online Test view; right-click the Analog Amplifier block and choose "Watch". Verify the block output stays within -32 768 ... +32 767 at all reachable input levels. If the output ever exceeds the limit, the TDE will clip - reduce Gain or apply a divisor.
- Disconnect simulation and connect to the live controller via the LOGO!Soft Comfort Ethernet connection. Transfer the project and observe the physical TDE.
- Apply the real sensor input and walk the process from empty to full. Record the TDE readings at 0 %, 10 %, 25 %, 50 %, 75 %, 90 % and 100 % level. Compute the linearity error = (TDE reading - expected reading) / expected reading x 100. Acceptable for tank level indication is typically ± 2 %; tighter (± 0.5 %) requires re-calibration of the sensor, not the scaling.
- Check the rollover boundary. If the TDE value ever wraps from 32 767 to -32 768, scaling is still wrong. Add a 10 % safety margin: keep peak TDE value ≤ 28 000.
- Document the scaling in the project comments. Future engineers must be able to reconstruct the display logic from the project file alone.
11. Troubleshooting Matrix
| Symptom on TDE | Likely Root Cause | Verification | Corrective Action |
|---|---|---|---|
| Display shows 0 at any input | Analog amplifier output > 32 767 clips to +32 767; message text field sees "+32767" but tag config shows 0 (signed wrap edge case) | Use Online Test to read B20 output directly | Reduce Gain so output maxes below 28 000 |
| Display reads negative at high level (e.g. -3000 when level is 80 %) | Signed overflow; raw value > 32 767 wraps to negative | Compute 70 000 - 65536 = 4 464; expect 4 464 at 100 % | Add a Math Instruction divisor of 10 or use Solution 1 |
| Display reads 7000 with a floating "0" text fragment | Manual text padding attempt (the source case) | Inspect message text - look for two adjacent text fields | Remove the static "0"; use Solution 1 to scale by 10 |
| Display value does not change when process changes | Message enable flag is latched and never re-asserted | Toggle the message enable input via simulation | Use a one-shot on enable, or a refresh on significant change |
| Decimal point missing or wrong number of decimals | Message text "Number of decimal places" attribute not set | Open message block properties | Set decimal places to 0, 1 or 2 as required |
| TDE shows asterisk (*) instead of value | Source operand is not yet initialised (cold start) or block is faulted | Power-cycle LOGO! and observe the first 5 seconds | Add an initial-value constant to the source block |
| TDE flickers rapidly | Message enable retriggering on every scan because source value changes every cycle | Hold the process constant and observe the TDE | Hysteresis on the message enable trigger |
| Value is correct in simulation but wrong on real TDE | Online > PC <-> LOGO! transfer not yet done, or project mismatch | Compare the LOGO!-onboard project version with the Soft Comfort file | Re-transfer the project and verify checksum in Online Test |
12. Edge Cases and Field-Proven Caveats
- Sensor zero drift: If the analog input drifts (e.g. capacitive probe with temperature), a non-zero Offset on the Analog Amplifier can absorb up to 4 000 counts of zero shift without rescaling. Use Offset = -drift, Gain = 1.0 and then divide further downstream.
- Negative values: If the level sensor can read slightly negative (submersion, condensation), the TDE will reserve one character for the minus sign. Plan for 6 character positions when the value can swing -32 768 ... 0.
- Two-scale systems: Some applications need to show both litres and kilolitres on the same TDE - use the second line of the message for the secondary value with a different suffix. Keep them on separate blocks (B20 + B25) to avoid accidental cross-coupling.
- LOGO! 0BA7 compatibility: The same 16-bit limit applies; Analog Amplifier is block B13 on 0BA6 / 0BA7. The configuration dialog is similar but the decimal-place attribute is exposed differently. Check the firmware-specific manual.
- High-speed counters above 32 767: On 0BA8 the HSC can count to 2 000 000 but the TDE field is still signed 16-bit. If a pulse total is required, use a separate slow counter with a divisor of 100 or 1000 and a "pulse x 100" suffix on the TDE.
- Multiple TDEs on the same LOGO!: Up to two LOGO! TD/TDE modules can be chained; each shows the same message text by default. If you need different views per TDE, split the message into multiple Message Text blocks and select them in the TDE menu.
13. Frequently Asked Questions
What is the actual maximum number the LOGO! TDE can display?
The TDE message text numeric field is a 16-bit signed integer, so the positive maximum is +32 767 and the negative minimum is -32 768. Anything beyond +32 767 clips, wraps, or shows asterisks depending on the source block. This is a runtime limit of the LOGO! 0BA8 CPU, not a defect of the TDE hardware.
Can I show 70 000 L on a LOGO! TDE without any scaling?
No. 70 000 is larger than 32 767, so the raw word will not render. You must scale it first with the Analog Amplifier (Gain = 0.1) or the Math Instruction (multiply by 0.1), or change the engineering unit to kL (divide by 1 000) and label the suffix "kL".
How do I configure the Analog Amplifier for 70 000 L full scale?
Set Sensor to 0 ... 10 000 (or the range that matches the source block), Gain to 0.1 and Offset to 0. The output maxes at 7 000. Reference that amplifier tag from the message text, add a "x10 L" suffix, and the operator reads 70 000 L full scale with 10 L resolution.
Why does the TDE show "7000 0" when I append a text zero?
The TDE has a fixed 6 x 20 character grid with a single non-proportional font. The numeric field is left-aligned and you cannot right-align a custom text fragment against it. The proper fix is to scale the underlying value so the natural integer reads 70 000 (or a kL/m^3 equivalent), not to pad with static text.
Does the LOGO! 8 high-speed counter bypass the 32 767 limit?
The 0BA8 HSC counts to 2 000 000 internally as a 32-bit value, but the TDE message numeric field still renders only a 16-bit signed word. The HSC must be divided before it reaches the TDE; the cleanest approach is the same Analog Amplifier Gain = 0.01 (or 0.001) plus a "pulse x 100" / "pulse x 1000" suffix.
Can I connect two TDEs and show different numbers on each?
Yes. Up to two LOGO! TDE / TD modules can be daisy-chained to a single LOGO! 8 base. Define separate Message Text blocks in the program and use the TDE menu (SETUP / TDE SELECT) to choose which block each physical TDE displays. Each TDE can show its own scaled value, suffix, and decimal place configuration.