{
  "version": 2,
  "name": "Timers: TON vs TOF vs RTO (Control Panel)",
  "exported": "2026-11-02T00:00:00.000Z",
  "notes": "Control Panel scene example for the TON / TOF / RTO tutorial. X1 = Start (N.O.), X2 = Stop (N.C., ON when not pressed), X3 = Jog button used here as the Service Reset. C1 = run request (seal-in). T1 TON = 2 s start delay. T2 TOF = 5 s run-on after the run request drops. Y1 = motor run light. T3 RTO totals motor run time across stops; at 20 s (stand-in for a service interval) it breaks the run request and blocks restarts until X3 is pressed.",
  "program": [
    {"id": 1, "rn": 0,
     "comment": "RUN REQUEST — Start seals in C1. Stop (X2 is N.C., ON when not pressed) or Service Due (T3 done) drops it",
     "elements": [
       {"id": 101, "kind": "parallel", "branches": [
         [{"id": 102, "kind": "contact", "type": "XIC", "addr": "X1"}],
         [{"id": 103, "kind": "contact", "type": "XIC", "addr": "C1"}]
       ]},
       {"id": 104, "kind": "contact", "type": "XIC", "addr": "X2"},
       {"id": 105, "kind": "contact", "type": "XIO", "addr": "T3"},
       {"id": 106, "kind": "output", "type": "OTE", "addr": "C1"}
     ]},
    {"id": 2, "rn": 1,
     "comment": "TON START DELAY — T1 must time 2 s with the run request ON before the motor is allowed to start",
     "elements": [
       {"id": 107, "kind": "contact", "type": "XIC", "addr": "C1"},
       {"id": 108, "kind": "block", "type": "TON", "addr": "T1", "pre": 2000}
     ]},
    {"id": 3, "rn": 2,
     "comment": "TOF RUN-ON — T2 done bit turns ON with T1 and stays ON for 5 s after T1 drops",
     "elements": [
       {"id": 109, "kind": "contact", "type": "XIC", "addr": "T1"},
       {"id": 110, "kind": "block", "type": "TOF", "addr": "T2", "pre": 5000}
     ]},
    {"id": 4, "rn": 3,
     "comment": "MOTOR RUN — Y1 follows the TOF done bit: on after the start delay, off 5 s after stop",
     "elements": [
       {"id": 111, "kind": "contact", "type": "XIC", "addr": "T2"},
       {"id": 112, "kind": "output", "type": "OTE", "addr": "Y1"}
     ]},
    {"id": 5, "rn": 4,
     "comment": "RTO RUN-TIME TOTAL — T3 adds up motor running time and keeps it through every stop. 20 s stands in for a service interval",
     "elements": [
       {"id": 113, "kind": "contact", "type": "XIC", "addr": "Y1"},
       {"id": 114, "kind": "block", "type": "RTO", "addr": "T3", "pre": 20000}
     ]},
    {"id": 6, "rn": 5,
     "comment": "SERVICE RESET — X3 (the Jog button) clears T3. An RTO only goes back to zero with a RES",
     "elements": [
       {"id": 115, "kind": "contact", "type": "XIC", "addr": "X3"},
       {"id": 116, "kind": "block", "type": "RES", "addr": "T3", "pre": 0}
     ]}
  ],
  "comments": {
    "X1": "Start PB",
    "X2": "Stop PB (N.C.)",
    "X3": "Service Reset",
    "C1": "Run Request",
    "T1": "Start Delay",
    "T2": "Run-On",
    "T3": "Run-Time Total",
    "Y1": "Motor Run"
  }
}
