Basic
20 min

Robot PLC Handshake

robothandshakesequencingsafety
Robot PLC Handshake scenario preview

Ready to build this?

Sign up free — no credit card required. This scenario requires the Basic plan.

Sign up to play this scenario →

Already have an account? Log in

Briefing

Implements the standard Rockwell/ABB PLC-to-robot handshake protocol. The PLC signals PLC_READY when all preconditions are met. When a part arrives and the robot is ready, the PLC pulses CYCLE_START. The PLC then waits for ROBOT_CYCLE_DONE to confirm completion before incrementing a cycle counter and de-asserting CYCLE_START. A robot fault latches ROBOT_FAULT_LAMP and inhibits new cycle starts.

Objectives

  • PLC_READY asserts when RUN_BIT is set and no robot fault is active
  • CYCLE_START pulses (one scan) when PART_AT_ROBOT AND ROBOT_READY AND PLC_READY
  • SAFETY_OK mirrors the absence of a robot fault (NOT ROBOT_FAULT)
  • ROBOT_FAULT_LAMP latches on ROBOT_FAULT and clears only via STOP_PB
  • Cycle counter increments on each ROBOT_CYCLE_DONE acknowledgement

Hints

  • Use a one-shot on (PART_AT_ROBOT AND ROBOT_READY AND PLC_READY) to generate a single CYCLE_START pulse
  • Wait for ROBOT_CYCLE_DONE before allowing the next CYCLE_START
  • ROBOT_FAULT_LAMP: S= on ROBOT_FAULT, R= on STOP_PB AND NOT ROBOT_FAULT
  • PLC_READY := RUN_BIT AND NOT FAULT_BIT; SAFETY_OK := NOT ROBOT_FAULT

I/O Table

Inputs

ROBOT_READY

Robot ready for cycle start

BOOL · %I0.0

ROBOT_CYCLE_DONE

Robot cycle complete acknowledge

BOOL · %I0.1

PART_AT_ROBOT

Part present at robot work cell

BOOL · %I0.2

ROBOT_FAULT

Robot fault / e-stop signal

BOOL · %I0.3

START_PB

Start push-button

BOOL · %I0.4

STOP_PB

Stop / reset push-button

BOOL · %I0.5

Outputs

PLC_READY

PLC ready output to robot

BOOL · %Q0.0

CYCLE_START

Cycle start pulse to robot

BOOL · %Q0.1

SAFETY_OK

Safety OK output to robot

BOOL · %Q0.2

ROBOT_FAULT_LAMP

Robot fault indicator lamp

BOOL · %Q0.3

Your program will be tested against:

All test cases run automatically when you submit. Assertions are hidden until you pass.

  1. #1PLC_READY asserts when running and no fault

    START_PB energises system; PLC_READY goes high, SAFETY_OK also high

  2. #2CYCLE_START pulses on PART_AT_ROBOT + ROBOT_READY

    With PLC_READY high, presenting a part and robot-ready signal fires CYCLE_START

  3. #3ROBOT_FAULT latches ROBOT_FAULT_LAMP and drops SAFETY_OK

    ROBOT_FAULT drops SAFETY_OK and latches fault lamp; STOP_PB clears it

Ready to build this?

Sign up free — no credit card required. This scenario requires the Basic plan.

Sign up to play this scenario →

Already have an account? Log in