Skip to content
GRAFCET / SFC templates

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.

Template previewGRAFCET / SFC
Robot pick-and-place cell — vision gatedSteps91 initial · 0 finalTransitions10every one conditionedDivergences1 AND · 2 ORsimultaneous · alternativeAlternationWell formedsteps and transitions alternate1Home, cell idleNCell ready beaconNGuard lock monitor2Convey part to pick windowNInfeed conveyor runPPart-present strobe3Inspect partNRing light onD0.2sCamera trigger4Pick part from conveyorSVacuum gripper onNZ axis to pick height5Index tray to next pocketNTray indexer runNPocket counter increment6Traverse to tray pocketNXY move to pocketNPath speed override 60%7Tray at pocket, brake appliedSTray brake appliedNPocket present check8Place and releaseRVacuum gripper onD0.3sBlow-off pulseNPlaced counter increment9Blow part to reject chutePReject air blastNReject counter incrementcycle_start . guard_locked . tray_presentpart_at_pick_windowvision_pass/vision_passvacuum_confirmed . z_at_homepocket_in_positionarm_at_pocket . tray_brakedplace_confirmed . /tray_fullplace_confirmed . tray_fullreject_confirmed9 steps · 10 transitions · 19 actions · 1 simultaneous · 2 alternative divergencesSteps and transitions alternate on all 22 links.Step 1 is the single initial step.1 simultaneous divergence is closed by a convergence of the same width.

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