The Problem
If your PLC logic uses time-of-day comparisons to trigger actions — batch starts, valve sequencing, report generation, data logging — daylight saving time (DST) transitions can cause logic to execute twice or not execute at all.
Fall Back (November)
Clocks go from 2:00 AM back to 1:00 AM. Any logic scheduled between 1:00 AM and 2:00 AM will run twice — once before the rollback and once after. If that logic opens a valve, starts a pump, or increments a counter, you now have a double execution.
Spring Forward (March)
Clocks jump from 2:00 AM to 3:00 AM. Any logic scheduled between 2:00 AM and 3:00 AM never executes — that hour does not exist. If a critical nightly task is scheduled in that window, it simply gets skipped.
The Rule
Do not schedule time-triggered logic between 1:00 AM and 3:00 AM. This gives a safe buffer around both DST transitions.
Implementation Tips
- If you have logic that must run during overnight hours, schedule it before 1:00 AM or after 3:00 AM.
- For continuous processes, use elapsed time (e.g., a free-running timer from PLC power-up) rather than wall-clock time for interval-based triggers.
- If your PLC synchronizes time via NTP, be aware that the time value in the PLC will jump — any
TOD(time-of-day) comparison will see the discontinuity. - Consider running the PLC on UTC and performing local time conversion only at the HMI/SCADA layer. This eliminates DST issues in the controller entirely.
Testing
Before commissioning, manually set the PLC clock to 1:55 AM on a DST transition date and observe the logic behavior through both the fall-back and spring-forward scenarios. Document the results.