GRAFCET — Robot Pick-and-Place Cell
A vision-gated SCARA cell that carries both bars in one chart: the inspection step diverges alternatively on the vision verdict, and the pass branch opens a simultaneous divergence so the arm picks while the tray indexes, closed by a convergence of the same width that will not release the place until both prove.
Make it your own.
title "Robot pick-and-place cell — vision gated"
step 1 "Home, cell idle" initial
N "Cell ready beacon"
N "Guard lock monitor"
step 2 "Convey part to pick window"
N "Infeed conveyor run"
P "Part-present strobe"
step 3 "Inspect part"
N "Ring light on"
D 0.2s "Camera trigger"
step 4 "Pick part from conveyor"
S "Vacuum gripper on"
N "Z axis to pick height"
step 5 "Index tray to next pocket"
N "Tray indexer run"
N "Pocket counter increment"
step 6 "Traverse to tray pocket"
N "XY move to pocket"
N "Path speed override 60%"
step 7 "Tray at pocket, brake applied"
S "Tray brake applied"
N "Pocket present check"
step 8 "Place and release"
R "Vacuum gripper on"
D 0.3s "Blow-off pulse"
N "Placed counter increment"
step 9 "Blow part to reject chute"
P "Reject air blast"
N "Reject counter increment"
transition t1 : "cycle_start . guard_locked . tray_present"
transition t2 : "part_at_pick_window"
transition t3 : "vision_pass"
transition t4 : "/vision_pass"
transition t5 : "vacuum_confirmed . z_at_home"
transition t6 : "pocket_in_position"
transition t7 : "arm_at_pocket . tray_braked"
transition t8 : "place_confirmed . /tray_full"
transition t9 : "place_confirmed . tray_full"
transition t10 : "reject_confirmed"
1 -> t1 -> 2 -> t2 -> 3
# Pass or fail: one step, two transitions — ALTERNATIVE, single bar.
alternative 3 -> t3, t4
t4 -> 9
# A good part starts the pick and the tray index at once: one transition,
# two steps — SIMULTANEOUS, double bar — and both must finish before the
# place, which is what the matching convergence enforces.
simultaneous t3 -> 4, 5
4 -> t5 -> 6
5 -> t6 -> 7
simultaneous 6, 7 -> t7
t7 -> 8
# Next part, or home once the tray is full.
alternative 8 -> t8, t9
t8 -> 2
t9 -> 1
9 -> t10 -> 2