Overview
This technical reference describes how to program a four-output alternating pulse sequencer on a Siemens LOGO! 12/24RC logic module using LOGO! Soft Comfort V8.4. The application drives two independent solenoid coils with one-second pulses that rotate across the four relay outputs (Q1, Q2, Q3, Q4) without ever leaving a coil continuously energized. Coil 1 is switched through Q1 and Q3 wired in parallel; coil 2 is switched through Q2 and Q4 wired in parallel. By alternating which output pair carries the one-second pulse, the program distributes contact wear, limits the per-cycle duty on any single relay, and prevents the LOGO! 12 V / 24 V supply rail from being pulled down when both coils attempt to pull in during a transition.
The solution uses the B002 Asynchronous Pulse Generator special function, four cascaded timing stages, a single AND block for global enable, and direct output markers. The complete program fits in nine function blocks, well inside the LOGO! 0BA8 resource budget of 400 blocks and 8,000 program lines per circuit diagram. The same technique scales linearly to five, six, or eight outputs by adding identical stages and increasing the master B002 TL value.
Target Hardware: LOGO! 12/24RC
The 12/24RC designation indicates a LOGO! logic module with a 12 V DC or 24 V DC power supply and electromechanical relay outputs. The hardware relevant to the four-output sequencer is summarized in the table below. The most common order numbers for the 12/24RC family across the 0BA5, 0BA6, 0BA7, and 0BA8 generations are also listed; LOGO! Soft Comfort V8.4 supports all of them.
| Parameter | Value |
|---|---|
| Order number (0BA8, current) | 6ED1052-1MD08-0BA0 |
| Order number (0BA7, legacy) | 6ED1052-1MD00-0BA7 |
| Order number (0BA6, legacy) | 6ED1052-1MD00-0BA6 |
| Supply voltage | 12 / 24 V DC |
| Digital inputs | 8 (I1 – I8); I1, I2, I7, I8 also usable as 0 – 10 V analog |
| Relay outputs | 4 (Q1 – Q4), normally-open volt-free contacts |
| Continuous current per output (resistive) | 5 A (0BA5) / 10 A shared (0BA6 to 0BA8) |
| Switching voltage max | 240 V AC / 30 V DC |
| Mechanical contact life | 10 million operations |
| Cycle time (typical scan) | 0.4 ms – 8 ms per program sweep |
| Retain memory | 250 bytes persistent |
| Program memory | 400 function blocks, 8,000 lines per diagram |
Refer to the LOGO! 0BA8 System Manual on the Siemens Industry Online Support portal for the complete electrical, mechanical, and EMC specifications. The Siemens LOGO! product page lists the latest firmware versions and ordering data. For users still on the older 0BA6 / 0BA7 hardware, the historical LOGO! Manual (A5E00380834) is also available on the same support portal.
Prerequisites
- One LOGO! 12/24RC module, any generation from 0BA5 onward. Earlier 0BA0 / 0BA4 units also support B002 but require LOGO! Soft Comfort V5 or V6 for programming.
- LOGO! Soft Comfort V8.4 installed on Windows 10 or Windows 11. Download the current service pack from the Siemens LOGO! download center on the Industry Online Support portal. The trial version is fully functional for offline simulation.
- LOGO! PC cable (USB on 0BA5/0BA6, USB or Ethernet on 0BA8) or a micro SD card for program transfer.
- Two pilot-rated solenoid coils, each rated 24 V DC and not exceeding 3 A continuous inrush.
- Four 1N4007 (or faster UF4007) flyback diodes, one across every coil, cathode to the positive terminal.
- A 24 V DC power supply sized to deliver at least 1.5 × the largest coil inrush to keep the LOGO! supply rail above 10.5 V DC during transitions.
- Optional: a 4-channel logic analyzer or a hand-held scope to verify timing during commissioning.
B002 Asynchronous Pulse Generator Deep Dive
The Asynchronous Pulse Generator is one of LOGO!'s special function blocks (SF catalog identifier B002 in LOGO! Soft Comfort V8.4). Unlike the standard Pulse Generator (B003, also labeled "Pulse Output" in the palette), which derives its high and low edges from the LOGO! scan cycle, the asynchronous variant uses an internal hardware timer that is decoupled from the program scan. The result is jitter-free timing that remains accurate to ±1 % even when the rest of the program grows to several hundred blocks or the LOGO! scan stretches to its 8 ms worst case.
| Parameter | Range / Setting | Description |
|---|---|---|
| TH (high time) | 00:00 s – 99:59 h | Time the output stays at logic 1 |
| TL (low time) | 00:00 s – 99:59 h | Time the output stays at logic 0 |
| Remanence | On / Off | Preserves the elapsed time through a power cycle |
| Input (Trg) | Boolean, edge-triggered | A rising edge starts a fresh TH + TL cycle |
| Resolution | 10 ms | Smallest selectable increment in the time field |
For this application, B002 supplies a continuous 1 s high / 3 s low pattern that becomes the master clock of the sequencer. Because the asynchronous generator is not reset by the LOGO! scan, the same 1 s pulse is reproducible on every physical LOGO! regardless of how many other blocks are added around it. The B002 block diagram in the LOGO! Soft Comfort editor shows the timing relationship between TH and TL graphically and updates live as you edit the values.
Power Budget and Coil Drive Calculations
Before driving any load, calculate the LOGO! internal power budget to confirm that the 12/24RC can deliver the worst-case simultaneous demand without brown-out. The internal 5 V DC rail that powers the LOGO! CPU, the relay coils, and the inputs is rated for 200 mA continuous on a 0BA8. The relay contact load is decoupled from that 5 V rail, but the inrush of the driven coil pulls the 24 V rail down through the LOGO! internal diode bridge.
For a 24 V DC coil with a holding current of IH = 0.5 A and an inrush of IIN = 2.0 A, the energy per pulse is:
E = (V_coil × I_H) × t_on = (24 V × 0.5 A) × 1 s = 12 J
The peak power during inrush is:
P_peak = V_coil × I_IN = 24 V × 2.0 A = 48 W
For two coils that never overlap, the worst-case 24 V demand is 48 W for the 50 ms inrush, followed by 12 W steady state. A 24 V / 75 W supply sized with a 1.5 × inrush margin holds the LOGO! supply rail above the 10.5 V brown-out threshold even when both 24 V rails are summed momentarily through the snubber network. If the application requires a shorter transition, add a 50 ms gap between adjacent pulses by increasing the B002 TL from 3 s to 3.05 s on every stage; this prevents the previous coil's inductive kick from coinciding with the next coil's inrush.
Solution Architecture
The complete program consists of three logical stages that are all drawn on a single FBD diagram in LOGO! Soft Comfort V8.4.
- Master clock: one B002 Asynchronous Pulse Generator configured TH = 1 s, TL = 3 s. The output is a 1-second pulse that repeats every 4 seconds.
- Three-stage shift cascade: the master pulse drives the Trg input of B002_2, B002_3, and B002_4 in series. Each generator adds a 1-second phase shift relative to its predecessor, producing four pulse streams offset by 1 s, 2 s, and 3 s respectively.
- Output combinator: Q1 = B002_1, Q2 = B002_2, Q3 = B002_3, Q4 = B002_4. No additional logic is required; each generator output drives its corresponding relay directly.
An equivalent implementation uses a single Shift Register block (B009) clocked by a 1 s / 3 s B002. That approach uses fewer blocks but is harder to troubleshoot from the online monitor because the bits of the shift register are not labeled with the output they represent. The four-cascade method described below is preferred for field commissioning.
Timing Diagram
Step-by-Step Programming in LOGO! Soft Comfort V8.4
Step 1: Create a new project
- Launch LOGO! Soft Comfort V8.4. From the File menu, choose New > LOGO! Project.
- In the Hardware panel that opens at the right of the workspace, select LOGO! 12/24RC (or the exact 0BAx variant you own). LOGO! Soft Comfort pre-populates the input / output pin list (I1 – I8, Q1 – Q4).
- From the Tools menu, open Options and confirm the cycle time is set to its default Continuous mode. This setting keeps the asynchronous pulse edges deterministic regardless of program size.
- Set the project comment field to 4-Output Alternating Sequencer, Coil 1 = Q1∥Q3, Coil 2 = Q2∥Q4 for documentation purposes.
Step 2: Insert the master clock (B002 stage 1)
- From the function block palette on the left, open the Special Functions tree.
- Drag Asynchronous Pulse Generator (catalog label B002) onto the FBD workspace.
- Double-click the block to open the block properties dialog. Set:
- TH (high time) =
00:01s - TL (low time) =
00:03s - Remanence = Off
- TH (high time) =
- Wire the block's Trg input to a constant Boolean 1 (right-click the input, choose Constant, set value = 1). This arms the generator to run continuously from the moment the LOGO! enters RUN.
- Label the block output B002_Q by right-clicking the output pin and choosing Comment.
Step 3: Build the first output (Q1)
Q1 carries the master pulse directly. This is the only output that follows B002_1 with zero delay.
- Insert a digital output marker onto the FBD bus by dragging Q1 from the right-hand output palette.
- Wire B002_Q to the Q1 marker.
Step 4: Build the 1-second delay for Q2
- Insert a second B002 block. Configure it with TH =
00:01s, TL =00:03s, Remanence = Off. - Wire the B002_1 output to the Trg input of B002_2. Each rising edge of B002_1 re-arms B002_2, producing a pulse that starts exactly 1 s after Q1 went high.
- Wire the B002_2 output directly to the Q2 output marker.
Step 5: Build Q3 and Q4 the same way
- Add B002_3 with TH = 1 s, TL = 3 s, Remanence = Off. Wire B002_2 output to B002_3 Trg. Connect B002_3 to Q3.
- Add B002_4 with the same timing. Wire B002_3 output to B002_4 Trg. Connect B002_4 to Q4.
The cascaded configuration produces the timing shown in the diagram above. The four-output activation table summarizes the per-step coil state.
| Time window | 0 – 1 s | 1 – 2 s | 2 – 3 s | 3 – 4 s |
|---|---|---|---|---|
| Q1 | 1 | 0 | 0 | 0 |
| Q2 | 0 | 1 | 0 | 0 |
| Q3 | 0 | 0 | 1 | 0 |
| Q4 | 0 | 0 | 0 | 1 |
| Coil 1 (Q1 ∥ Q3) | energized | – | energized | – |
| Coil 2 (Q2 ∥ Q4) | – | energized | – | energized |
Note that coil 1 sees 1 second ON, 1 second OFF, 1 second ON, 1 second OFF across the full 4-second cycle, and coil 2 sees the complementary waveform. The two coils are never energized at the same instant, eliminating the worst-case inrush load on the LOGO! 12 V / 24 V supply.
Step 6: Add a global enable / disable
In production a sequencer is rarely allowed to free-run. Tie the four B002 Trg inputs through an AND gate that is conditioned by an external enable input, for example I1.
- Insert an AND block (B001).
- Connect I1 and the constant 1 to its two inputs.
- Re-wire each B002 Trg to the AND output.
When I1 is OFF, the entire sequencer halts. When I1 returns to ON, the master B002 re-arms and the sequence starts from Q1 again.
Step 7: Add a cycle-complete indicator (optional)
Wire the Q4 output back through a 1-second on-delay (B004) to a free marker, e.g. M1. M1 will pulse high for one second at the end of every 4-second cycle, providing a "cycle complete" signal that an HMI or upstream PLC can latch for cycle counting.
Step 8: Save and simulate
- From the File menu, choose Save As and store the project as
alternating_4out.logo. - Press F5 or click the Simulate toolbar icon to launch the on-screen simulator.
- Force I1 high. Watch Q1 → Q2 → Q3 → Q4 light up in the simulator at exactly 1 s intervals. The cycle should repeat indefinitely.
Wiring the Loads
Coil 1 is wired in parallel between +24 V and the OR of Q1 and Q3. The simplest physical implementation is to install two 1N4007 flyback diodes, both cathodes to the +24 V rail, with their anodes tied to Q1 and Q3 respectively. The two diode anodes then feed the high side of coil 1. Coil 2 follows the same pattern with Q2 and Q4. The COM terminals on the LOGO! 12/24RC are used only if the load is sourced from a different rail; for 24 V DC sourced by the same supply, the COM terminals can be left unused because the relay contacts are volt-free.
Verification and Commissioning
- Connect the LOGO! 12/24RC to the PC with the USB cable. In LOGO! Soft Comfort, choose Tools > Transfer > PC → LOGO!. Enter the IP address (or use USB auto-detect) and click Send.
- After the download completes, the LOGO! restarts in RUN. Toggle I1 to ON with a jumper wire to 24 V (or 12 V, depending on the supply you used).
- Use a multimeter in continuity mode, or a clamp-on DC ammeter on the +24 V coil rail, to confirm that the four outputs pulse in order. Each output should show 24 V DC for exactly 1 s followed by 0 V for 3 s, with the 1-second windows rotated by 1 s between adjacent outputs.
- Verify coil current at the high side of each coil. The clamp reading should rise from 0 to IH within 50 ms, hold for 1 s, and fall to 0 within 30 ms when the relay opens.
- Read the LOGO! diagnostic buffer from Tools > Diagnostics > Error Log. The buffer should be empty during normal operation. Common error codes are summarized in the table below.
| Error code | Meaning | Typical cause |
|---|---|---|
| 0001 | Power failure | 24 V rail dipped below 10.5 V during coil inrush |
| 0002 | Program checksum error | Transfer interrupted, re-send the program |
| 0003 | Scan time exceeded | Program too long; shorten the cascade to free CPU bandwidth |
| 0004 | Retain memory error | Battery low on 0BA5; replace the CR2032 cell |
| 0005 | I/O expansion failure | Address conflict with a downstream DM8 / DM16 module |
For users with an HMI connected via the integrated Ethernet port of a 0BA8, expose the four Q bits and the I1 enable bit as variables and graph them on a trend view. The trend provides a visual confirmation that the 1 s high / 3 s low windows are rotating correctly and that the enable input is honored.
Troubleshooting Matrix
| Symptom | Likely cause | Corrective action |
|---|---|---|
| All four outputs stay OFF | I1 enable is not wired, or constant 1 was deleted | Reinsert a constant 1 on the AND gate driving the B002 Trg inputs |
| Q1 works but Q2 – Q4 never fire | B002_2 / B002_3 / B002_4 missing a Trg wire, or TL is set to 0 s | Verify each generator has TH = 1 s, TL = 3 s, and a connected Trg |
| Outputs overlap (two coils energized at once) | TL set to 0 s on one of the cascaded generators, causing it to free-run | Set TL = 3 s on every generator and re-download |
| Timing is short by 50 – 100 ms | Wrong function block used (standard Pulse Generator B003 instead of Asynchronous B002) | Replace B003 with B002 in every stage |
| One relay contact welds after a few hours | No flyback diode on the coil, or inductive kick exceeds 30 V DC | Install 1N4007 (or faster UF4007) directly across every coil, cathode to +V |
| LOGO! restarts randomly | Supply voltage drops below 10.5 V during coil inrush | Use a 24 V supply rated for 1.5× coil inrush, or stagger coil energization with a 50 ms gap |
| Online monitor shows Q1 but no physical action | Wiring mistake: coil connected to the COM terminal of the wrong group | Re-check the LOGO! wiring diagram: Q1 and Q2 share COM1; Q3 and Q4 share COM2 |
| Sequence advances too fast on power-up | Remanence left on, leftover elapsed time contaminates the cycle | Set Remanence = Off on every B002 block |
Resource Budget and Scaling
The four-stage cascade consumes 4 B002 blocks plus 1 AND block plus 4 output markers, for a total of 9 function blocks. On a 0BA8 LOGO!, this leaves 391 of the 400 available block slots free. The same pattern can be extended to 5, 6, or 8 stages by adding more B002 blocks with the same 1 s timing; the master B002's TL must equal (N − 1) s to keep exactly one output active at a time. The limit is reached when the 1-second pulse becomes shorter than the LOGO! scan time, which for a 0BA8 with a complex program is around 5 ms. In practice, an 8-stage cascade is the practical upper limit if a clean 1-second window is required on each output.
For applications that need a longer or shorter pulse, edit the TH field on every B002 block in the project simultaneously using the LOGO! Soft Comfort Cross References view. Highlight B002 in the project tree, right-click, and choose Edit All Instances to open a single dialog that updates every instance of the block in one operation.
Extended Application: Safety Interlock
If the alternating outputs drive a maintenance-of-operation sequence (for example, two pneumatic clamps that must never release simultaneously), add a safety interlock to the AND gate driving the B002 Trg inputs:
- Wire a normally-closed emergency-stop pushbutton to I2.
- Add I2 to the AND gate that enables the B002 chain.
- When E-stop is pressed, I2 opens and every B002 output drops to 0 within one scan. All four relays release together, ensuring the safety state is reached deterministically.
Note that LOGO! 12/24RC is not a safety PLC and carries no SIL rating. For SIL 2 / SIL 3 applications, route the enable through a SIMATIC S7-1200 F-CPU paired with a Sirius 3SK safety relay, and use the LOGO! only for the non-safety timing function. The 3SK series offers pre-built logic for dual-coil monitoring with cross-fault detection that the LOGO! cannot provide.
Migrating from ZelioSoft to LOGO! Soft Comfort
Engineers familiar with Schneider Electric ZelioSoft will notice that LOGO! Soft Comfort V8.4 uses a different block catalog and a different timing model. ZelioSoft's "Cycling" timer is comparable to LOGO!'s B002, but the parameter labels differ. The mapping is summarized below.
| ZelioSoft parameter | LOGO! Soft Comfort V8.4 equivalent |
|---|---|
| T on (cycling time) | TH (B002 high time) |
| T off (cycling time) | TL (B002 low time) |
| Run / Stop input | Trg input on a B002 (with constant 1 to free-run) |
| Auxiliary relay ladder output | Output marker (Q1 – Q4) or marker (M1 – M27) |
Once the mapping is internalized, porting any ZelioSoft cycling program to LOGO! Soft Comfort is a matter of swapping the block library and re-wiring the output pins to match the LOGO! 12/24RC Q1 – Q4 layout.
FAQ
Which Siemens LOGO! models support the B002 Asynchronous Pulse Generator?
Every LOGO! generation from 0BA4 onward supports the B002 block, including the 12/24RC variants (0BA6 / 0BA7) and the current 0BA8 hardware (6ED1052-1MD08-0BA0) targeted by LOGO! Soft Comfort V8.4. The block is part of the standard SF catalog and does not require any firmware option.
Why not use a single Shift Register (B009) instead of four cascaded B002 blocks?
LOGO!'s Shift Register B009 advances by one bit on every rising edge of a single clock, which is the cleanest solution for many applications. However, on a 12/24RC with only digital I/O, building a four-stage shift register requires feeding the Q1 output back into a 1 s / 3 s B002 to generate the clock, then driving B009 with that clock. The four-cascade method described in this article uses fewer blocks and is easier to debug from the online monitor.
Can I change the 1-second pulse width without rewriting the program?
Yes. Open the project in LOGO! Soft Comfort V8.4, double-click any B002 block, and edit the TH field. After saving, transfer the updated program to the LOGO! 12/24RC. The new timing takes effect on the next RUN transition. TL must be updated on every block in the cascade to keep the four outputs phase-shifted by exactly TH.
What happens if the LOGO! loses power mid-cycle?
Each B002 block in this program is configured with Remanence = Off, so the elapsed high / low counters reset to zero on power-up. The first B002 starts its 1 s high / 3 s low cycle from the beginning, and the cascade rebuilds itself within 4 seconds. To preserve the cycle position across a brownout, change every B002 to Remanence = On and increase the program size to take advantage of the 250-byte retain memory available on the 0BA8.
Is it possible to drive 230 V AC loads from the same sequencer?
Yes. The 12/24RC relay contacts are volt-free and rated to 240 V AC. Wire the AC load between the L (line) conductor and the relay output, with the N (neutral) conductor connected directly to the load. Install a 100 Ω + 100 nF RC snubber across any AC coil to suppress the inductive kick that would otherwise shorten contact life and inject noise back into the LOGO! supply rail.