LOGO! 0BA0 Date and Time Range: Yearly Timer Configuration

David Krause13 min read
PLC HardwareSiemensTutorial / How-to
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

Overview

The Siemens LOGO! 0BA0 — the original LOGO! generation released between 1996 and 2000 — provides date- and time-based control through three clock function blocks: the Yearly Timer (yearly clock, German "Jahresuhr"), the Weekly Timer (weekly clock, "Wochenuhr"), and the basic time-of-day ramp functions. This reference describes how to drive a digital output (Q1) HIGH at one specific start date and time and LOW at a different end date and time — a window that crosses midnight and uses a different ON time from the OFF time.

A common request is a window such as:

  • Output OFF until 07.08.2019 12:00
  • Output ON from 07.08.2019 12:00 to 08.08.2019 09:00
  • Output OFF after 08.08.2019 09:00

The naive approach — a single Yearly Timer block — fails on 0BA0 in two situations: when the WebEditor parameter layout is mandated to keep the date and time visible as separate user-editable rows, or when the firmware version does not expose a multi-pair Yearly Timer. Two working topologies are presented below: the Single Yearly Timer method (Method 1, used on 0BA0 when Time On/Time Off are explicitly set) and the Combined Yearly Timer + Time Delay method (Method 2, the technique the field report converges on, which uses B001..B005 numbered blocks).

Prerequisites and Hardware Identification

  • LOGO! 0BA0 base module with internal real-time clock (RTC) and a healthy CR2032 backup cell
  • LOGO!Soft Comfort programming software, version 1.0 or 1.1 (the 0BA0 device is supported by LOGO!Soft Comfort V1.x)
  • LOGO! Web Editor (LWE) for browser-based parameter changes, optional
  • Free program memory: at least four logic block numbers (B001..B005)
  • 24 V indicator lamp or voltmeter connected to Q1 for verification
Catalog Number Description Supply Outputs
6ED1052-1FB00-0BA0 LOGO! 230R 115/230 V AC 4 × relay 8 A
6ED1052-2FB00-0BA0 LOGO! 230RC (with clock) 115/230 V AC 4 × relay 8 A
6ED1052-1MD00-0BA0 LOGO! 12/24R 12/24 V DC 4 × relay 8 A
6ED1052-1HB00-0BA0 LOGO! 24 24 V DC 4 × transistor 0.3 A
6ED1052-1CC00-0BA0 LOGO! AM2 analog input 24 V DC 2 × AI

Verify the 0BA0 suffix on the device label: a 0BA1 unit (released 2000) already supports a wider feature set including an astronomical clock. The remainder of this article applies to 0BA0, 0BA1, 0BA2, 0BA3, 0BA4, 0BA5, 0BA6, 0BA7, and 0BA8 — the parameter list differs slightly between generations but the logic pattern is identical.

Method 1 — Single Yearly Timer

The Yearly Timer function block in LOGO!Soft accepts four date/time parameters:

Parameter Format Example Meaning
Day On DD.MM 07.08 Month and day the output goes HIGH
Time On HH:MM 12:00 Time on Day On the output goes HIGH
Day Off DD.MM 08.08 Month and day the output goes LOW
Time Off HH:MM 09:00 Time on Day Off the output goes LOW

Configuration for a same-year window:

  • Day On: 07.08
  • Time On: 12:00
  • Day Off: 08.08
  • Time Off: 09:00

The block output is HIGH from 07.08 12:00 through 08.08 09:00 (inclusive of the start instant, exclusive of the stop instant). Wire the block output directly to Q1.

Note — Yearly Timer behavior across years: the 0BA0 Yearly Timer evaluates day/month only and does not store a year. If you need a one-time window that does not repeat annually, place an RS flip-flop downstream of the block and reset it with a one-shot pulse generated by a second Yearly Timer set to fire on the day after the stop date. This is the cleanest way to make a one-shot window on a 0BA0.

Method 2 — Combined Yearly Timer + Time Delays

The 0BA0 WebEditor parameter UI exposes each block's parameters independently. To make the start and stop times visible as separate, user-friendly parameter rows, use the topology below. It mirrors the block numbering used in the source conversation (B001..B005) and adds an explicit AND block to combine them.

Block Assignment

Block # Function Parameters Comment
B001 Yearly Timer (gate 1) Day On = 07.08, Day Off = 08.08, Time On = 00:00, Time Off = 00:00 Outputs 1 throughout the date window
B002 On-delay (rising edge) Setpoint = 12:00:00 (12 h 00 m 00 s) Triggers at 12:00 every day the gate is HIGH
B003 AND Inputs: B001, B002 Combines B001 ∧ B002
B004 Yearly Timer (gate 2) Identical parameters to B001 Provides the second gate for the OFF trigger
B005 Off-delay (rising-edge variant) Setpoint = 09:00:00 (9 h 00 m 00 s) Triggers at 09:00 on the stop day, then resets the output
B006 AND (optional) Inputs: B004, B005 Generates a clean reset pulse

Logic Flow Diagram

B001 Yearly Timer B002 On-delay 12:00 AND (B003) Set RS = 1 (Q1 ON) B004 Yearly Timer B005 Off-delay 09:00 AND (B006) Reset RS = 0 (Q1 OFF)

Why Two Yearly Timers?

The source conversation records the user's observation that the WebEditor forces the user to enter Day Off twice — once for B001 and once for B004. The functional reason is that B001 gates the ON edge and B004 gates the OFF edge. If B001 is wired to both edges, the OFF transition races the same block output and cannot be cleanly separated by the time delays. The duplication is a WebEditor artifact, not a logic requirement: the underlying gate signal is identical.

Optimization — single Yearly Timer + SR flip-flop: Replace B001 and B004 with a single Yearly Timer whose Time On = 00:00 and Time Off = 23:59, and feed the rising edge into an RS flip-flop whose Set input is ANDed with the 12:00 On-delay and whose Reset input is ANDed with the 09:00 Off-delay. This reduces block count to four (YT + 2× On-delay/Off-delay + RS) and eliminates the duplicated Day Off parameter visible to end users in the WebEditor.

WebEditor Parameter List — User-Facing Layout

When the program is exposed via LOGO! Web Editor, the parameter list renders the editable values for each block in a vertical table. The user sees:

Row Block Parameter Default Visible to User
1 B001 Day On 07.08
2 B001 Day Off 08.08
3 B002 On setpoint 12:00
4 B004 Day On 07.08
5 B004 Day Off 08.08
6 B005 Off setpoint 09:00

To minimize user input, combine B001 and B004 (single Yearly Timer, Method 1) so only one Day On/Day Off pair is exposed. If a user-facing setup is required, expose only the Method 1 block and document the Time On / Time Off as fixed in the program. Avoid the source-thread's reported UX problem by collapsing to a single block in the first revision.

Verification Procedure

  1. Connect a 24 V indicator lamp or voltmeter to Q1 (or use LOGO!Soft online monitor on the output flag).
  2. In LOGO!Soft, set the LOGO! RTC to 06.08.2019 23:59:55 and start online monitoring. Confirm Q1 = 0.
  3. Step the clock to 07.08.2019 11:59:55. Q1 should still be 0.
  4. At 07.08.2019 12:00:00, confirm Q1 transitions to 1. The status of B001 should also be 1 and B002 should fire its on-delay completion flag.
  5. Step to 08.08.2019 08:59:55. Q1 should remain 1.
  6. At 08.08.2019 09:00:00, confirm Q1 transitions to 0. B005 should fire its off-delay completion flag and the RS flip-flop should reset.
  7. Step to 08.08.2019 12:00:00. Q1 must remain 0 — the field report explicitly warns that without a one-shot gate the output can re-trigger on the stop day if the Yearly Timer is misconfigured.
  8. Step to 09.08.2019 00:00:00. Confirm Q1 is still 0 and B001/B004 outputs have returned to 0 (date window has closed).
  9. Power-cycle the LOGO! module and re-verify the clock retained the configured values. If the display shows --:--, replace the CR2032 backup cell.

Troubleshooting Matrix

Symptom Probable Cause Fix
Q1 never turns on Yearly Timer Day On set to MM.DD instead of DD.MM (regional mismatch) or RTC not initialized Re-enter Day On as 07.08; set LOGO! clock via menu or LOGO!Soft online time sync
Q1 turns on at midnight instead of 12:00 Time On parameter not entered — LOGO! defaults Time On to 00:00 Set Time On = 12:00 explicitly in the Yearly Timer properties dialog
Q1 stays on past 09:00 on the stop day Off-delay not configured as one-shot; B005 re-arms each cycle Use the rising-edge variant of the Off-delay in 0BA0 or place an AND with the negated Yearly Timer output
Q1 flickers at the boundary instant Cycle-time race between Yearly Timer and time block Increase LOGO! cycle time to 100 ms minimum; feed Q1 through a retentive RS flip-flop
Output triggers annually instead of once Yearly Timer's retentivity is enabled Clear the retentivity flag in the block's properties dialog (LOGO!Soft: Properties → Remanence)
WebEditor shows "--:--" for time fields Block parameter not exposed in LWE Right-click block → Block Properties → Parameter assignment; tick the time parameter checkbox
Yearly Timer does not fire after a power cycle CR2032 backup cell depleted; RTC lost Replace the CR2032 cell; reseat the module; reset the clock from LOGO!Soft or keypad
Window crosses 1 January Day On > Day Off — 0BA0 Yearly Timer does not handle this Use two Yearly Timers (one for Dec portion, one for Jan portion) ORed together, or use a counter-based scheme with the LOGO!Soft calendar
WebEditor parameter UI does not update LWE cache stale; browser refresh needed Clear browser cache; restart the LWE server on the LOGO! module
Q1 toggles when the LOGO! is restarted RS flip-flop retentivity is OFF and the window is currently open Enable RS flip-flop retentivity (LOGO!Soft: Properties → Remanence) so the latched state survives a power cycle

Cross-Year Window — Alternative Topology

If the window must span New Year (e.g., 28.12.2019 12:00 → 03.01.2020 09:00), a single Yearly Timer cannot express it because Day On = 28.12 and Day Off = 03.01 fails the day-month comparison. Use two Yearly Timers and an OR gate:

  • YT1: Day On = 28.12, Day Off = 31.12, Time On = 12:00, Time Off = 23:59
  • YT2: Day On = 01.01, Day Off = 03.01, Time On = 00:00, Time Off = 09:00
  • OR(YT1, YT2) → drives the ON logic

Edge case: 31.12 23:59 → 01.01 00:00 leaves a 1-minute overlap window during which both blocks are HIGH. To eliminate the overlap, set YT1 Time Off = 23:58 and YT2 Time On = 00:01, leaving a 2-minute dead-band on New Year's Eve/Day. Confirm with the application requirement whether the dead-band is acceptable.

Real-Time Clock and Backup Behavior on 0BA0

The 0BA0 RTC accuracy is specified at ±5 s/day at 25 °C, drifting to ±15 s/day at 0 °C and +50 °C. For windows of one minute or less, accept that the boundary can shift by up to 15 s. For longer windows the drift is negligible. The CR2032 backup cell retains the clock for approximately 4 weeks without supply. If the battery is depleted, the LOGO! displays --:-- on the display and the Yearly Timer remains at 0. After replacing the cell, the clock must be re-initialized either from the LOGO! keypad (ESC → Set clock) or via LOGO!Soft online → Set PC Time.

Cycle Time, Memory Limits, and Field Commissioning

Limit 0BA0 Value Note
Function blocks per program 56 Method 2 uses 6; Method 1 uses 1
Block number range B001..B056 LOGO!Soft assigns sequentially
Retentive flags 14 Use for RS flip-flop state preservation
Program memory 2 KB (RAM/EEPROM) EEPROM holds program through power cycle
Minimum cycle time 0.1 ms per function block Total cycle ≈ 0.6 ms for Method 2
Yearly Timer resolution 1 minute Cannot express seconds
Weekly Timer days Mon..Sun individually selectable Use for recurring weekly windows

Field commissioning checklist:

  1. Verify the LOGO! device label reads 0BA0 (or compatible suffix).
  2. Replace CR2032 cell if the LOGO! has been de-energized for more than 4 weeks.
  3. Set the real-time clock to local time; confirm DST handling on sites that observe daylight saving.
  4. Transfer the program from LOGO!Soft; record the program checksum.
  5. Run the verification procedure above with the actual loads connected.
  6. Document the WebEditor parameter values in the maintenance manual.

Migration Notes — 0BA0 → 0BA8 / LOGO! 8

LOGO! 8 (0BA8) devices, released 2014 onward, expose the same Yearly Timer parameters via LOGO!Soft Comfort V8.x and add:

  • Up to 4 ON/OFF pairs per Yearly Timer (the older 0BA0 block supported only one pair)
  • Direct year input (Day On = 07.08.2019) eliminating the manual year override
  • Astronomical clock function (sunrise/sunset by latitude/longitude)
  • Up to 400 function blocks versus 56 on 0BA0
  • Built-in Ethernet on the base module (0BA8 standard and 0BA8 + Ethernet variants)

Programs written for 0BA0 that use only the Yearly Timer + AND topology transfer to 0BA8 without code changes; the WebEditor UI renders the block parameters in a single row rather than duplicated. The block numbering (B001..B005) is preserved in the migration tool. Refer to the LOGO! 8 system manual for the full feature comparison.

Related Function Blocks

Block Function Use in this Pattern
Weekly Timer Day-of-week + time window Recurring weekly schedules — not required for one-shot date+time windows
On-delay Setpoint delay on rising edge Used as B002 to convert the date window's midnight pulse into the 12:00 ON instant
Off-delay Setpoint delay on falling edge Used as B005 to convert the date window's pre-midnight drop into the 09:00 OFF instant
RS / SR flip-flop Latching output Replacement for the duplicated Yearly Timer — see the optimization note above
NOT Inverter For the off-day gate in the SR-flip-flop variant
Wiping relay (pulse output) Generates a one-shot pulse from a sustained input Use to clear the RS flip-flop at the end of the window without retriggering

Reference Documentation

For the full LOGO! 0BA0 function block reference, parameter boundaries, and program limits, consult the LOGO! system manual on the Siemens Industry Online Support portal.

  • Siemens Industry Online Support — LOGO! documentation: support.industry.siemens.com (search for "LOGO! 0BA0" or "LOGO! manual")
  • LOGO!Soft Comfort V1.x online help — function block reference and parameter dialogs
  • LOGO! 8 system manual — migration reference for 0BA0 → 0BA8

Frequently Asked Questions

Can a single Yearly Timer block on a LOGO! 0BA0 express different ON and OFF times within the same year?

Yes. The 0BA0 Yearly Timer accepts four parameters: Day On (DD.MM), Time On (HH:MM), Day Off (DD.MM), and Time Off (HH:MM). Set Day On = 07.08, Time On = 12:00, Day Off = 08.08, Time Off = 09:00. The output is HIGH from 07.08 12:00 through 08.08 09:00. Time On defaults to 00:00 if left blank, which is the most common cause of "fires at midnight" symptoms.

Why does the WebEditor ask for the Day Off value twice in this topology?

B001 and B004 are two independent Yearly Timer blocks that gate the ON and OFF edges respectively. Because the 0BA0 WebEditor exposes each block's parameters in separate rows, the same Day Off value must be entered in both. To eliminate the duplication, use a single Yearly Timer (Method 1) or an RS flip-flop driven by a single Yearly Timer plus two time delays.

How do I handle a window that crosses 1 January on a LOGO! 0BA0?

A single Yearly Timer cannot express Day On > Day Off. Use two Yearly Timers — one for the December portion (28.12..31.12) and one for the January portion (01.01..03.01) — ORed together, then continue with the same time-delay pattern. Verify the 1-minute overlap at midnight and accept a small dead-band if necessary.

What happens to the Yearly Timer output if the LOGO! loses power?

The Yearly Timer evaluates the real-time clock and is therefore non-retentive for the output state; the output returns to 0 within one cycle after power restore. The clock itself is retained for approximately 4 weeks by the CR2032 backup cell. Replace the cell if the LOGO! displays "--:--" after a power cycle. Enable RS flip-flop retentivity if you need the latched state to survive a power cycle mid-window.

Can the LOGO! 0BA0 Yearly Timer be configured for a single year only, not annually repeating?

Yes. The 0BA0 Yearly Timer evaluates month and day only and triggers every year on those dates. To restrict to a single occurrence, clear the block's retentivity flag and place an RS flip-flop downstream whose Reset input is triggered by a separate one-shot Yearly Timer set to fire on the day after the stop date, or feed a one-shot pulse into a counter that disables the logic after the first match. The 0BA8 generation supports a direct year parameter for one-shot windows.

Back to blog