Typical Handling Example of Estun Robot

Typical Handling Example of Estun Robot

Using the ER6-600-SR to implement a standard handling project, the gripper has two suction cups, allowing the robot to pick up two items at once from the pickup location and place them sequentially at the same drop-off location, stacking them on top of each other. After stacking five times, a signal is given to indicate that the drop-off is complete.

The signal allows the next workstation to proceed.

The working conditions have a fixed pickup position, and the drop-off position is also fixed in XY, with Z varying according to height.

Typical Handling Example of Estun Robot

The items to be stacked are 43.8X21.8X5 mm in size, represented by black squares with directional markers.

Typical Handling Example of Estun Robot

Requirements:

1. Simple pick-and-place with TOOL

Objective: Upon receiving the pickup signal, the robot should pick up items from the pickup location, with the gripper structure designed to pick up two items simultaneously.

It is allowed to drop off items at the drop-off location, stacking them on top of each other, and after stacking five times, a signal is given to allow the next workstation to proceed.

1) Requirements:

 Use logical operations for picking and placing items.

 Individual point teaching is not allowed.

 The use of stacking and array instructions is not allowed.

 A TOOL is required.

 If five items are stacked and there are still items in hand, the robot must wait for the next round to receive the drop-off signal before placing them.

2) Programming Approach:

 Calculate the number of items in the Z direction (Put.z) and height (5mm) for stacking items. The pickup position and the position above it are also calculated.

 By teaching the two gripper TOOL switches, only one drop-off position needs to be taught.

3) Program Section:

 Variable Definitions

Typical Handling Example of Estun RobotTypical Handling Example of Estun Robot

 Program Writing

Start:

GetCurCPos{P=t_p.P0} # Get current position

t_p.P0.z = t_p.HOME.z

t_p.Getup = t_p.Get

t_p.Putup = t_p.PutBase

t_p.biaozhi.value = 0

t_p.jishu.value = 0

t_p.Getup.z = t_p.HOME.z

t_p.Putup.z = t_p.HOME.z

# Assignment Section

MovL{P=t_p.P0,V=t_s.V2000,B=”RELATIVE”,C=t_s.C100} # Lift to current position to

HOME height

MovL{P=t_p.HOME,V=t_s.V2000,B=”RELATIVE”,C=t_s.C100}

# Arrive at HOME point

xunhuan:

# Loop Label

WaitDI{IO=t_p.GetEnable,Val=1,T=0,InterEnable=0,Ret=t_l.INT0} # Wait for pickup signal

MovL{P=t_p.Getup,V=t_s.V2000,B=”RELATIVE”,C=t_s.C100} # Move to above pickup position

MovL{P=t_p.Get,V=t_s.V2000,B=”RELATIVE”,C=t_s.C100} # Move to pickup position

SetDO{IO=t_p.Chuck1,Val=1}

SetDO{IO=t_p.Chuck2,Val=1}

# Open vacuum

WaitCondition{JudgeCondi=”t_p.Check1.value==1andt_p.Check2.value == 1″,T=1000,InterEnable=0,Ret=t_l.INT1}# Wait for vacuum to reach, 1000 milliseconds is the timeout

IF t_l.INT1.value > 0 THEN # If timeout

SetRtToErr{msg=”zhenkongchaoshi”,eid=90001} # Custom robot alarm

Vacuum abnormal

SetDO{IO=t_p.Chuck1,Val=0} # Close vacuum

SetDO{IO=t_p.Chuck2,Val=0} # Close vacuum

MovL{P=t_p.Getup,V=t_s.V2000,B=”RELATIVE”,C=t_s.C100} # Lift to above pickup position

GOTO xunhuan # Jump to loop label, restart waiting for pickup signal

ENDIF

t_p.biaozhi.value = 2 # Flag as 2, indicating the robot has two items not placed

WHILE t_p.biaozhi.value > 0 DO # Loop condition is when the robot has items in hand

WaitDI{IO=t_p.PutEnable,Val=1,T=0,InterEnable=0,Ret=t_l.INT2}# Wait for allow drop-off signal

t_p.Put = t_p.PutBase

t_p.Put.z = t_p.PutBase.z + ( t_p.jishu.value * 5 ) # Calculate drop-off height

IF ( t_p.jishu.value % 2 ) == 0 THEN # Check remainder of count by 2, if 0 then TOOL1 gripper drops, if 1 then TOOL2 gripper drops

MovL{P=t_p.Putup,V=t_s.V2000,B=”RELATIVE”,C=t_s.C100,Tool=t_g.TOOL1,DO=”SetDO{IO=t_p.shegnjiang1,Val=1}”} # Drop-off action

MovL{P=t_p.Put,V=t_s.V2000,B=”RELATIVE”,C=t_s.C100} # Drop-off action

SetDO{IO=t_p.Chuck1,Val=0} # Close vacuum

SetDO{IO= t_p.shegnjiang1=0} # Lift cylinder

t_p.biaozhi.value = t_p.biaozhi.value – 1 # One item less in hand

t_p.jishu.value = t_p.jishu.value + 1 # Increment item count by one

ELSE # Check remainder of count by 2, if 0 then TOOL1 gripper drops, if 1 then TOOL2 gripper drops

MovL{P=t_p.Putup,V=t_s.V2000,B=”RELATIVE”,C=t_s.C100,Tool=t_g.TOOL2,DO=”SetDO{IO=t_p.shegnjiang2,Val=1}”}

MovL{P=t_p.Put,V=t_s.V2000,B=”RELATIVE”,C=t_s.C100} # Drop-off action

SetDO{IO=t_p.Chuc2k,Val=0} # Close vacuum

SetDO{IO= t_p.shegnjiang2=0} # Lift cylinder

t_p.biaozhi.value = t_p.biaozhi.value – 1 # One item less in hand

t_p.jishu.value = t_p.jishu.value + 1 # Increment item count by one

ENDIF

IF t_p.jishu.value >= 4 THEN # If filled 0-4, meaning 5 items

PulseOut{IO=t_p.Putfinish,Val=1,Time=500,InterEnable=0} # Output completion signal

WaitDI{IO=t_p.PutEnable,Val=0,T=0,InterEnable=0,Ret=t_l.INT3} # Ensure PLC receives completion and closes drop-off allow signal before exiting judgment, to avoid misjudgment conditions.

t_p.jishu.value = 0 # Reset count

ENDIF

Wait{T=5}

ENDWHILE # Can only exit this position when there are no items in hand

GOTO xunhuan # Jump back to loop, start pickup action

End;

  1. This demonstrates a standard usage specification and example.
  2. This program is mainly for educational purposes, helping learners understand how to correctly write program functions.

If you need an actual application program, please describe it based on actual requirements, such as:

  • What functionality you want to achieve
  • How many products you need to use
  • Project complexity requirements
  • Any special functional requirements, etc.

Leave a Comment