Robot PLC Handshake
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_READYRobot ready for cycle start
BOOL · %I0.0
ROBOT_CYCLE_DONERobot cycle complete acknowledge
BOOL · %I0.1
PART_AT_ROBOTPart present at robot work cell
BOOL · %I0.2
ROBOT_FAULTRobot fault / e-stop signal
BOOL · %I0.3
START_PBStart push-button
BOOL · %I0.4
STOP_PBStop / reset push-button
BOOL · %I0.5
Outputs
PLC_READYPLC ready output to robot
BOOL · %Q0.0
CYCLE_STARTCycle start pulse to robot
BOOL · %Q0.1
SAFETY_OKSafety OK output to robot
BOOL · %Q0.2
ROBOT_FAULT_LAMPRobot 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.
- #1PLC_READY asserts when running and no fault
START_PB energises system; PLC_READY goes high, SAFETY_OK also high
- #2CYCLE_START pulses on PART_AT_ROBOT + ROBOT_READY
With PLC_READY high, presenting a part and robot-ready signal fires CYCLE_START
- #3ROBOT_FAULT latches ROBOT_FAULT_LAMP and drops SAFETY_OK
ROBOT_FAULT drops SAFETY_OK and latches fault lamp; STOP_PB clears it
Related scenarios
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