Siemens LOGO! Edge Wiping Relay Ta Value Zero: Simulation vs PLC

David Krause17 min read
PLC HardwareSiemensTroubleshooting
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

Siemens LOGO! 0BA8 Edge-Triggered Wiping Relay Ta Value Zero: Simulation vs PLC

Problem Statement

When a Siemens LOGO! 0BA8.Standard logic module runs a program that contains an edge-triggered wiping relay (a special function in the LOGO! Soft Comfort function-block library), the actual value parameter Ta of the block stays at 0 on the physical module even though the same program in LOGO! Soft Comfort simulation counts Ta from 0 to TL and then on to TH as expected. The block's digital output Q toggles correctly (visible as a red line in online mode), so the timing logic appears to function; the actual time, however, never advances. Downstream consumers such as the analog multiplexer (commonly referenced as AM3 in LOGO! Soft Comfort) read 0 as well, which means the symptom is not a display artifact but a real execution discrepancy between the simulator and the 0BA8 firmware.

Typical user-visible indicators:

  • LOGO! Soft Comfort simulation: Ta increments during the TL phase, continues during the TH phase, then resets. Q = 0 during TL, Q = 1 during TH.
  • LOGO! Soft Comfort online (connected to the 0BA8): Q toggles correctly across the cycle, but Ta remains pinned at 0 for the entire cycle.
  • The on-module LOGO! display (ESC → Parameter → Bxxx → Ta) shows 0 indefinitely.
  • Any block reading the wiping relay's actual value (e.g., AM3) reports 0 continuously.
If Ta stays at 0 only in online view but Q toggles correctly, the trigger signal is the suspect — not the wiping relay itself. The wiping relay is doing exactly what it is told: it is being re-triggered every cycle.

Affected Hardware, Firmware, and Software

Item Value / Range
LOGO! module family LOGO! 8 (0BA8 generation)
Common catalog numbers 6ED1052-1MD08-0BA8, 6ED1052-1HB08-0BA8, 6ED1052-1FB08-0BA8, 6ED1052-2MD08-0BA8, 6ED1052-2HB08-0BA8
Firmware LOGO! 8.x firmware (FS: 04 and later generally recommended)
Programming software LOGO! Soft Comfort V8.0 / V8.1 / V8.2 / V8.3 (or later 8.x)
Block type affected Edge-triggered wiping relay (Sonderfunktion / Special function, timers group)
Block instance in example B063 (wiping relay), B070 / B071 (upstream logic), AM3 (downstream consumer)
Parameter TL (low/wipe time) User-set; 15 s in the example program
Parameter TH (high/hold time) User-set; 10 s in the example program
Parameter Ta (actual value) Block output showing elapsed time; expected to count 0 → TL → TH

For authoritative information, refer to the official Siemens Industry Online Support entry for LOGO! 0BA8 (System Manual, entry ID 109751136) and the LOGO! Soft Comfort V8 online help installed with the programming software.

Functional Description of the Edge-Triggered Wiping Relay

The edge-triggered wiping relay is one of the special-function timer blocks in LOGO!. Unlike the standard wiping relay, which is level-sensitive, the edge-triggered variant only restarts its timing when a rising edge (0 → 1 transition) is detected on the trigger input. Once started, the block counts up its Ta actual value from 0 to TL. When Ta reaches TL, the block continues to count up to TH; the digital output Q is 0 during the TL phase and 1 during the TH phase. When Ta reaches TH, the block resets Ta to 0 and waits for the next rising edge on the trigger.

Block parameters (as exposed in LOGO! Soft Comfort):

Parameter Meaning Typical range
Trigger (Trg) Input that starts the timing on a 0 → 1 edge Digital (0 / 1)
Reset (R) Resets Ta to 0 and Q to 0 immediately when 1 Digital (0 / 1)
TL (Ta low) Time during which Q = 0 and Ta counts up to TL 0.05 s to 99:59 h (format hh:mm:ss)
TH (Ta high) Time during which Q = 1 and Ta continues from TL to TL + TH 0.05 s to 99:59 h (format hh:mm:ss)
Ta (output actual) Current elapsed time within the active cycle 0 s to TL + TH
Q (output) 0 during the TL phase, 1 during the TH phase 0 / 1

Because the block restarts on every rising edge of the trigger, any 0 → 1 transition during an active cycle will reset Ta back to 0 and start a fresh count. This is the documented behavior and is the source of the bug if the trigger signal is unstable.

Root Cause: Single-Cycle Trigger Dropout

Detailed online tracing of the affected program shows that the trigger input to the edge-triggered wiping relay (block B063) drops to 0 for a single LOGO! scan cycle at exactly the moment the block would otherwise transition from the TL phase to the TH phase. When the trigger re-asserts on the next cycle, the block sees a fresh 0 → 1 edge and restarts Ta from 0. Because the same single-cycle dropout occurs at the same point in every cycle, Ta is observed to remain at 0 indefinitely.

The trigger source in the example is block B071, whose output is connected directly to the trigger pin of B063. B071 produces a 0 on its output for one cycle as a consequence of internal feedback with the wiping relay's own output — when B063 transitions from Q = 0 to Q = 1, the change to B071's input propagates within the same scan and B071 outputs 0 in the next evaluation. In simulation, B071's output is treated as continuous and never shows the 0; hence the simulation runs the full cycle and Ta counts correctly.

Why the Simulation Disagrees with the Real PLC

LOGO! Soft Comfort's simulator and the 0BA8 firmware use two different evaluation models for the same program:

Aspect LOGO! Soft Comfort simulator LOGO! 0BA8 firmware
Evaluation order Iterative fixed-point: re-evaluates blocks until stable Single-pass: inputs snapshotted at start of cycle, outputs latched at end
Block outputs visible to other blocks in the same cycle Yes, after the first pass No, only from the previous cycle
Single-cycle glitch visibility Hidden (iterative evaluation smooths it out) Visible (the next cycle sees a 0 where the simulator sees a 1)
Cycle time dependency None — purely logical Real: 2 – 100 ms depending on program load

The net effect is that the simulator never produces the single-cycle 0 on the trigger, while the 0BA8 firmware does. The wiping relay correctly interprets that 0 as a trigger dropout and restarts on the next rising edge, pinning Ta at 0.

A wiping relay showing Ta = 0 online but counting in simulation is a clock-vs-trigger timing problem on the 0BA8 platform, not a firmware defect in the wiping relay block.

Diagnostic Procedure

  1. Open the program in LOGO! Soft Comfort and connect to the 0BA8 module: Tools → Connect → LOGO! → Online.
  2. Switch the LOGO! to RUN mode (the on-module display shows "LOGO! RUN").
  3. Click on the edge-triggered wiping relay (block B063 in the example). In the online overlay, observe the trigger input pin and the value of Ta over a full cycle.
  4. If Ta resets to 0 every cycle, the trigger is dropping out. Proceed to step 5. If Ta counts correctly to TL and TH but the displayed value lags by one cycle, the issue is purely visual and the program is fine.
  5. Click on the upstream block (B071 in the example) and place an observation flag on its output. Confirm that the output goes 0 for exactly one cycle at the moment the wiping relay transitions from TL to TH.
  6. Capture a screenshot of the online trace as evidence and proceed to the solution.

If the trigger is stable (no single-cycle dropout), then check the reset input. A reset pulse that occurs at the wrong point in the cycle has the same effect on Ta as a trigger dropout.

Solution 1 — Off-Delay Timer on the Trigger Source

The simplest and most universally applicable fix is to insert an off-delay (TOF) timer between the trigger source and the wiping relay's trigger input. The TOF holds its output at 1 for its configured time after the input goes 0, which means a one-cycle dropout of the upstream block will be absorbed by the TOF and the wiping relay will continue to see a stable high trigger across the entire TL → TH transition.

Step-by-Step Implementation

  1. In LOGO! Soft Comfort, locate the wire that feeds the trigger input of the edge-triggered wiping relay (B063). In the example, this wire comes from the output of B071.
  2. Break the wire at the trigger pin of B063.
  3. From the toolbox, insert a new Off-delay block: Special Functions → Timers → Off-delay.
  4. Set the off-delay time parameter to a value comfortably larger than one LOGO! scan cycle. A safe default is 100 ms; for a heavily loaded program (200+ blocks), use 250 – 500 ms.
  5. Connect the input of the TOF to the original trigger source (B071's output) and the output of the TOF to the trigger input of B063.
  6. Recompile the program (F5 or right-click → Compile → Program).
  7. Download the modified program to the 0BA8 module: Tools → Transfer → PC → LOGO!.
  8. Switch to Online mode and verify that Ta now counts from 0 to TL (15 s in the example) and then on to TH (10 s), then resets.

Off-Delay Parameter Recommendations

Program size (blocks) Typical cycle time Recommended TOF time
< 50 2 – 8 ms 100 ms
50 – 150 8 – 20 ms 200 ms
150 – 300 20 – 50 ms 500 ms
> 300 50 – 100 ms+ 1000 ms (1 s)

The exact TOF value is not critical for correctness of the wipe timing — what matters is that the TOF time exceeds one full LOGO! cycle. A TOF of 100 ms is sufficient for the vast majority of 0BA8 programs.

Solution 2 — Self-Holding RS Flip-Flop on the Trigger

If a TOF is not desirable (for example, the trigger needs to drop out sharply when the upstream block goes low), replace the TOF with a self-holding RS flip-flop. Wire the original trigger to the Set input and a low-active copy of the wiping relay's Q output to the Reset input. The RS flip-flop then latches the trigger high for the entire wipe cycle, regardless of any single-cycle dropout from the upstream block.

Implementation outline:

  • Block: Special Functions → Flip-flops → RS flip-flop
  • Set input (S): original trigger source (B071's output in the example)
  • Reset input (R): inverted output of the wiping relay (use a NOT block on Q)
  • Output (Q): connect to the trigger input of the edge-triggered wiping relay

When the upstream trigger goes high, the RS flip-flop latches its output high and stays latched until the wiping relay's Q transitions back from 1 to 0 (at the end of the TH phase). Any single-cycle dropout from the upstream block is masked.

Solution 3 — Pulse Generator Pre-Filter on the Trigger

When the upstream logic is fast-changing and a TOF is not an option, insert a pulse generator (clock) ahead of the trigger. The pulse generator re-asserts the trigger at a rate faster than the LOGO! cycle time, so any dropout is filled in by the next clock pulse.

Implementation outline:

  • Block: Special Functions → Timers → Pulse generator or Asynchronous pulse generator
  • Output period: 50 – 100 ms (a fraction of the LOGO! cycle time, e.g., 20 – 50 ms)
  • Output pulse width: 25 – 50 ms
  • Gate input: original trigger source (B071's output)
  • Output: connect to the trigger input of the edge-triggered wiping relay

This approach is appropriate when the trigger needs to be conditioned for noise immunity rather than for cycle-time gap-filling, and it converts the edge-triggered wiping relay into a quasi level-triggered arrangement.

Solution 4 — Restructure the Upstream Logic to Eliminate Feedback

The deepest cause in the example is a feedback loop between the wiping relay's Q output and block B071's input. Whenever the wiping relay's Q changes state, the upstream block re-evaluates and may produce a transient 0 at the trigger. Decoupling this feedback — for example, by adding a flag block as a one-cycle delay between the wiping relay's Q and B071's input — removes the single-cycle dropout at the source and avoids the need for any trigger conditioning.

This is the preferred structural fix for new programs; the TOF and RS-flip-flop solutions are appropriate for retrofitting existing programs without rewriting the upstream logic.

Verification

  1. With the modified program downloaded to the 0BA8, connect in online mode: Tools → Connect → LOGO! → Online.
  2. Place the LOGO! in RUN mode.
  3. Force the trigger input of the wiping relay high (via the upstream logic or by direct simulation in LOGO! Soft Comfort).
  4. Observe Ta in the LOGO! Soft Comfort online view: it should count from 0 to TL (15 s in the example), then continue from TL to TH (10 s in the example), then reset to 0.
  5. Verify on the on-module display: ESC → Parameter → B063 → Ta. The value should increment visibly second by second.
  6. Verify the analog multiplexer or any other downstream consumer (AM3 in the example) reads the same actual value, no longer constant 0.
  7. Run the test for at least 10 consecutive cycles to confirm no further dropouts occur.

Related Special Functions with Similar Single-Cycle Sensitivity

Block Behavior on trigger glitch Recommended fix
Edge-triggered wiping relay Restarts Ta on every rising edge TOF on trigger; RS latch on trigger; eliminate feedback
Wiping relay (level-sensitive) May end the wipe cycle prematurely on trigger dropout RS latch; off-delay on trigger
On-delay Restarts the on-delay on a trigger edge TOF on trigger; pre-filter with pulse generator
Off-delay May be re-triggered by a noisy input Add a short pulse generator ahead of input
On-/Off-delay Restarts both phases on any trigger edge Stable trigger via RS latch
Pulse generator (clock) Output width sensitive to input glitch Use a debounced digital input or low-pass filter
Counter blocks (up/down) May not increment if count input glitches Hysteresis on count input via short TOF
Analog threshold trigger May chatter near threshold Add hysteresis parameter or analog filter

The same diagnostic approach (online trace of the trigger input across a full cycle) applies to all of these blocks.

LOGO! 0BA8 Scan Time Reference

Understanding the cycle time of the 0BA8 is essential when diagnosing single-cycle dropouts. The values below are typical for a 6ED1052-1xxx08-0BA8 module at room temperature with LOGO! Soft Comfort V8.2 compiled code:

Program load (active blocks) Typical cycle time Maximum cycle time observed
< 50 2 – 8 ms ~ 12 ms
50 – 150 8 – 20 ms ~ 30 ms
150 – 300 20 – 50 ms ~ 70 ms
> 300 (large programs) 50 – 100 ms ~ 150 ms

The 0BA8 cycle time includes the time to read all digital inputs, evaluate all function blocks, update all digital outputs, and handle Ethernet / display housekeeping. A heavily loaded program can approach 100 ms per cycle, which is more than long enough for transient one-cycle glitches to be observable in the timing of any edge-triggered function.

When the Fix Does Not Work

If Ta remains at 0 after applying the TOF, RS latch, or restructuring the upstream logic, work through the following secondary checks:

  1. Reset input active: Open the block properties of the wiping relay in LOGO! Soft Comfort and verify that the reset input is not driven high. In the online view, the reset pin must remain 0 throughout the cycle.
  2. Retention enabled: If retention is enabled on the wiping relay, the actual value of Ta is preserved across power cycles. With retention on, a cold start that begins in RUN mode may initialize Ta to a value other than 0, but should not pin it at 0 indefinitely. If it is pinned at 0 with retention on, the trigger is still the problem.
  3. Block-number conflict after online edit: Online edits can in some cases leave the program in a state where block numbers no longer match the schematic. Disconnect, recompile, and re-download to renumber.
  4. Firmware version: Specific early 0BA8 firmware versions (FS: 01, FS: 02) had known issues with several special functions. Upgrade the module firmware to the latest available revision. The firmware revision is visible on the on-module display under ESC → Diagnostics → Firmware.
  5. SD card mismatch: If the program is loaded from an SD card, the card may contain an older revision of the program. Re-copy the latest compiled .lsc file to the SD card and restart.
  6. Multiple instances of the wiping relay in the program: If two wiping relays share the same trigger source, the second one may see the output of the first as a 0 → 1 edge and behave as if it is being re-triggered. Verify with a single instance first.

Best Practices for Trigger Stability on 0BA8

  • Avoid direct feedback from a special-function output back into its own trigger input. Use a flag block as a one-cycle delay if feedback is required by the application.
  • Pre-filter noisy triggers with a 50 – 100 ms hysteresis timer (TOF or pulse generator) when the trigger source is the output of a fast-changing block.
  • Trust the on-module display over the LOGO! Soft Comfort simulation when validating timing-critical blocks. The on-module Ta value is authoritative for the 0BA8 platform.
  • Document timing-critical blocks in the program header (File → Properties → Comment) so that future edits do not inadvertently introduce single-cycle dropouts.
  • Test the program on the physical module before commissioning. Simulation is a logical check; it is not a substitute for hardware validation, especially for edge-triggered blocks.
  • Upgrade the LOGO! module firmware before troubleshooting any timing issue; many older 0BA8 firmware revisions have been superseded by stability fixes.

Cross-Reference: Other LOGO! Generations

The single-cycle trigger dropout mechanism described in this article is not unique to the 0BA8. It exists in all LOGO! generations (0BA0 through 0BA8) because the underlying evaluation model is the same: a single-pass scan with a non-zero cycle time. The 0BA8 is the first generation where the discrepancy with LOGO! Soft Comfort became widely reported, because Soft Comfort V8 introduced a new evaluation engine that differs significantly from the V7 engine used for older modules.

When porting a program from a 0BA6 or 0BA7 to a 0BA8 (or to a 0BA8.1 / 0BA8.2 variant), always re-validate timing-critical blocks. The cycle time envelope is similar across generations, but the Soft Comfort evaluation order can mask or expose issues that were not visible on the older platform.

Why does the edge-triggered wiping relay show Ta = 0 on the 0BA8 in online mode but not in simulation?

The trigger input is dropping to 0 for one LOGO! scan cycle at the moment the block transitions from TL to TH. The wiping relay interprets the next 0 → 1 edge as a fresh trigger and restarts Ta from 0. LOGO! Soft Comfort simulation uses iterative evaluation that masks the single-cycle glitch, but the 0BA8 firmware uses a single-pass scan that exposes it. Insert a 100 – 500 ms off-delay (TOF) on the trigger source to absorb the glitch.

How do I confirm that the trigger is dropping out?

Open the program in LOGO! Soft Comfort online mode, click on the upstream block (e.g., B071 in the example), and observe its output over a full cycle. If the output goes 0 for exactly one cycle at the moment the wiping relay transitions from TL to TH, the trigger is dropping out. Capture a screenshot of the online trace for the maintenance log.

What off-delay time should I use on the trigger source?

Set the TOF to a value larger than one LOGO! scan cycle. For programs under 150 blocks, 100 ms is sufficient. For 200+ block programs with 50 ms scan time, use 250 – 500 ms. The exact value is not critical for the wipe timing; what matters is that the TOF time exceeds one full cycle so the single-cycle dropout is absorbed.

Can I use a pulse generator instead of an off-delay on the trigger?

Yes. A pulse generator (e.g., a 50 ms clock) feeding the trigger input of the wiping relay re-asserts the trigger faster than the LOGO! cycle can produce a visible dropout. This is a common alternative when the upstream logic cannot easily be wrapped in a TOF. Gate the pulse generator with the original trigger source so the wipe cycle only runs when the upstream logic permits.

Does this issue affect other LOGO! generations such as 0BA6 or 0BA7?

Yes, the underlying mechanism (single-cycle trigger dropout) exists in all LOGO! generations. The 0BA8 platform is the first where the discrepancy with LOGO! Soft Comfort simulation became prominent because Soft Comfort V8 introduced a different evaluation engine. The fix (off-delay on the trigger) is identical across all generations and applies to any edge-triggered special function that uses an actual-time output (Ta).

Why does the LOGO! on-module display show Ta = 0 when the LOGO! Soft Comfort simulation shows the correct value?

The on-module display reads directly from the 0BA8 firmware's internal block state. The simulation is a logical model that does not reproduce the single-pass scan behavior of the firmware. If the two disagree, the on-module value is authoritative. Treat the simulation as a development tool, not as a verification of the real-time behavior of the physical module.

Can I work around the issue without modifying the program by upgrading the LOGO! firmware?

No. Firmware upgrades address defects in the special-function implementation itself, not in the application logic. If the trigger signal is genuinely dropping for one cycle, no firmware version will mask that. The fix is in the program (off-delay, RS latch, or pulse generator on the trigger source), not in the firmware. Always upgrade to the latest firmware first as good practice, then apply the program-level fix.

Back to blog