Flasher
OnTime times while the lamp is on, then OffTime times while it is off. When OffTime is done, both reset and the cycle starts again.
Step by step
Pick a step. The rungs are drawn by the editor after Core scans the program up to that step.
Global.EnableXIC
Global.OffTime.DNXIO
Global.OnTimeTON
PRE 1200 ACC 0 EN 1 TT 1 DN 0
Global.OnTime.DNXIC
Global.OffTimeTON
PRE 1200 ACC 0 EN 0 TT 0 DN 0
Global.EnableXIC
Global.OnTime.DNXIO
Global.LampOTE
1. Enable on. OnTime starts timing and Lamp is on.
Global.EnableXIC
Global.OffTime.DNXIO
Global.OnTimeTON
PRE 1200 ACC 600 EN 1 TT 1 DN 0
Global.OnTime.DNXIC
Global.OffTimeTON
PRE 1200 ACC 0 EN 0 TT 0 DN 0
Global.EnableXIC
Global.OnTime.DNXIO
Global.LampOTE
2. Scan 2. OnTime reaches PRE. XIO OnTime.DN turns Lamp off, and OffTime starts.
Global.EnableXIC
Global.OffTime.DNXIO
Global.OnTimeTON
PRE 1200 ACC 1200 EN 1 TT 0 DN 1
Global.OnTime.DNXIC
Global.OffTimeTON
PRE 1200 ACC 0 EN 1 TT 1 DN 0
Global.EnableXIC
Global.OnTime.DNXIO
Global.LampOTE
3. Scan 3. OffTime reaches PRE.
Global.EnableXIC
Global.OffTime.DNXIO
Global.OnTimeTON
PRE 1200 ACC 1200 EN 1 TT 0 DN 1
Global.OnTime.DNXIC
Global.OffTimeTON
PRE 1200 ACC 600 EN 1 TT 1 DN 0
Global.EnableXIC
Global.OnTime.DNXIO
Global.LampOTE
4. Scan 4. XIO OffTime.DN breaks rung 0, so OnTime resets. Its DN clears, so Lamp is on again and OffTime resets.
Global.EnableXIC
Global.OffTime.DNXIO
Global.OnTimeTON
PRE 1200 ACC 1200 EN 1 TT 0 DN 1
Global.OnTime.DNXIC
Global.OffTimeTON
PRE 1200 ACC 1200 EN 1 TT 0 DN 1
Global.EnableXIC
Global.OnTime.DNXIO
Global.LampOTE
5. Scan 5. OnTime is timing again. The cycle repeats: on for 1.2 s, off for 1.2 s.
Global.EnableXIC
Global.OffTime.DNXIO
Global.OnTimeTON
PRE 1200 ACC 0 EN 0 TT 0 DN 0
Global.OnTime.DNXIC
Global.OffTimeTON
PRE 1200 ACC 0 EN 0 TT 0 DN 0
Global.EnableXIC
Global.OnTime.DNXIO
Global.LampOTE
6. Scan 6. OnTime is done and Lamp is off, as in scan 2.
| Step | Enable | OnTime.ACC | OffTime.ACC | Lamp |
|---|---|---|---|---|
| 1. Enable on | 1 | 0 | 0 | 1 |
| 2. Scan 2 | 1 | 600 | 0 | 1 |
| 3. Scan 3 | 1 | 1200 | 0 | 0 |
| 4. Scan 4 | 1 | 1200 | 600 | 0 |
| 5. Scan 5 | 1 | 1200 | 1200 | 0 |
| 6. Scan 6 | 1 | 0 | 0 | 1 |
Why it works
- Rung 0: OnTime times while Enable is on and OffTime is not done.
- Rung 1: OffTime starts when OnTime is done.
- Rung 2: Lamp is on while OnTime is still timing, so it turns off when OnTime is done.
- When OffTime is done, XIO OffTime.DN breaks rung 0. OnTime resets, which breaks rung 1, so OffTime resets in the same scan. OnTime starts again on the next scan.
- Each step here is one scan, 600 ms apart.
Common mistakes
- One timer resetting itselfA TON with XIO on its own DN resets on the scan after it is done, so DN is on for one scan only. Use two timers when the on and off times matter.
- A fixed one-second blinkSystem_Clock_1s already blinks once a second. Use XIC System_Clock_1s when the times do not need setting.