# TOF Style timer with tags (no PLC)

**URL:** <https://forum.inductiveautomation.com/t/tof-style-timer-with-tags-no-plc/117199>\
**Category:** Ignition\
**Tags:** ignition81\
**Created:** [September 26, 2026, 1:15pm UTC](https://forum.inductiveautomation.com/t/tof-style-timer-with-tags-no-plc/117199 "2026-09-26T13:15:24Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![Matrix\_Engineering](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/matrix_engineering/32/19781_2.png) [@Matrix\_Engineering](https://forum.inductiveautomation.com/u/Matrix_Engineering)\
**Post date:** [September 26, 2026, 1:15pm UTC](https://forum.inductiveautomation.com/t/tof-style-timer-with-tags-no-plc/117199/1 "2026-09-26T13:15:24Z")

</div>

I have two tags, I want tag A and B (bools) to go high at the same time, but I want tag B to go off 30 minutes after tag A does. What is the best way to accomplish in Ignition, no PLC involved in this application.

---

<div class="post-metadata">

**Author:** ![lrose](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/lrose/32/62724_2.png) [@lrose](https://forum.inductiveautomation.com/u/lrose)\
**Post date:** [September 26, 2026, 1:28pm UTC](https://forum.inductiveautomation.com/t/tof-style-timer-with-tags-no-plc/117199/2 "2026-09-26T13:28:39Z")

</div>

What ever event occurs to turn off A and B, have it write a timestamp to a tag. Then you can compare now to that time plus what ever offset you want and keep B true until then.

The same would work for a TON configuration, you would just keep B off until the set time elapsed.

---

<div class="post-metadata">

**Author:** ![pturmel](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pturmel/32/3295_2.png) [@pturmel](https://forum.inductiveautomation.com/u/pturmel)\
**Post date:** [September 26, 2026, 1:48pm UTC](https://forum.inductiveautomation.com/t/tof-style-timer-with-tags-no-plc/117199/3 "2026-09-26T13:48:11Z")

</div>

I would use Louis' approach, but have the event on tag A add the time interval to `now()` before writing to the timestamp tag, so that timestamp tag has the cut off time. The expression tag for `B` would then have:

```python
{[.]A} || dateIsAfter({[.]CutoffTS}, now())

```

Adjust the `now()` fragment for how precise you want the cutoff.

---

<div class="post-metadata">

**Author:** ![JordanCClark](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/jordancclark/32/83362_2.png) [@JordanCClark](https://forum.inductiveautomation.com/u/JordanCClark)\
**Post date:** [September 28, 2026, 12:09pm UTC](https://forum.inductiveautomation.com/t/tof-style-timer-with-tags-no-plc/117199/4 "2026-09-28T12:09:03Z")

</div>

There is nothing new under the sun... lol

> [@Timer ON and timer OFF](https://forum.inductiveautomation.com/t/timer-on-and-timer-off/55156/13):
>
> UDT attached. Monitor has two Diagnostic level alarms for TON and TOF operation. Expression tags bound to each alarm isActive flag. Integer tags for TON and TOF time values. limited to even seconds [timer\_udt.json](https://forum.inductiveautomation.com/uploads/short-url/iZa3PJfppuHE6IfYY2FYBxMIlKz.json) (1.2 KB)

and also this one for a bit finer precision.  
[TimerUDTmillis.json](https://forum.inductiveautomation.com/uploads/short-url/dgtoX5Dxdly36qHsYf7uqjPCwYV.json) (2.1 KB)
