GRAFCET — Signalised T-Junction Stages
The stage sequence of a signal-controlled T-junction, with the intergreen made a step of its own so the all-red is a state rather than a delay, an alternative divergence that serves the pedestrian phase only on demand, and a lamp-fault branch that drops the junction to fail-safe flashing amber.
Make it your own.
title "Signalised T-junction — stage sequence"
step 1 "All red, controller armed" initial
N "All approaches red"
N "Watchdog heartbeat"
step 2 "Main road green"
N "Main signal green"
N "Side signal red"
L 40s "Main green timer"
step 3 "Main road amber"
N "Main signal amber"
D 3s "Amber timer"
step 4 "Intergreen, all red"
N "All approaches red"
L 2s "Intergreen timer"
step 5 "Pedestrian invitation"
N "Green man on"
N "Audible bleeper"
L 8s "Invitation timer"
step 6 "Pedestrian clearance"
N "Green man flashing"
L 5s "Clearance timer"
step 7 "Side road green"
N "Side signal green"
N "Main signal red"
L 20s "Side green timer"
step 8 "Side road amber"
N "Side signal amber"
D 3s "Amber timer"
step 9 "Return intergreen"
N "All approaches red"
L 2s "Intergreen timer"
step 10 "Fail-safe amber flash"
N "All signals flashing amber"
S "Lamp fault relay latched"
N "UTC fault report"
transition t1 : "controller_ready . cycle_start"
transition t2 : "main_min_green_done . (side_demand + ped_demand)"
transition t3 : "main_amber_elapsed"
transition t4 : "intergreen_elapsed . ped_demand"
transition t5 : "intergreen_elapsed . /ped_demand"
transition t6 : "invitation_elapsed"
transition t7 : "clearance_elapsed"
transition t8 : "side_max_green + /side_demand"
transition t9 : "side_amber_elapsed"
transition t10 : "intergreen_elapsed . /lamp_fault"
transition t11 : "lamp_fault"
transition t12 : "fault_cleared . reset_key"
1 -> t1 -> 2 -> t2 -> 3 -> t3 -> 4
# Pedestrian phase only when one was demanded: ALTERNATIVE, single bar.
# Both branches rejoin on the side-road green.
alternative 4 -> t4, t5
t4 -> 5 -> t6 -> 6 -> t7 -> 7
t5 -> 7
7 -> t8 -> 8 -> t9 -> 9
# Healthy, or a lamp fault that drops the junction to flashing amber and
# holds it there until an engineer resets it.
alternative 9 -> t10, t11
t10 -> 2
t11 -> 10
10 -> t12 -> 1