PROC rProg31()
MoveJ pStartPOS,v300,fine,T_Gripper1;//移动到启动位置
MoveJDO pWaitPick,v300,fine,T_Gripper1,DO112,1;//移动到等待位置
Pos_WaitLoad:=pWaitLoad.trans.y;//等待上料点Y轴坐标参数
Pos_OutLoad:=pOutLoad.trans.y;//离开上料点Y轴坐标参数
PosJudge;
LableA:
wobj_num:=GI1;//程序号
Ahead_Press:=GI4;//提前冲压距离
SetAO AO5,pLoad.trans.y;//机器人放料点Y坐标
!Pos_OutLoad:=pOutLoad.trans.y;
GripLoad load0;
MoveJDO pWaitPick,v3000,z200,T_Gripper1,DO112,1;//移动到等待抓料点
rSignal(1);//信号处理程序
Lable1:
WaitUntil(DI32=1 AND DI38=1) OR DI26=1 OR DI29=1 OR DI7=1;//等待信号
IF DI26=1 THEN//整线清空
rMoveToHome;//回原点
rGripVacuum;
EXIT;
ENDIF
IF DI29=1 OR DI7=1 THEN//开门和停止信号请求
rDoorOpen;//门打开程序
GOTO Lable1;
ENDIF
Reset DO69;//在其他装置外部
WaitUntil(DI32=1 AND DI38=1);//允许在其他装置取料和前一台机器人在干涉区域外部
BaseCoordCall;//视觉基础位置程序调用
CallByVar "Vision",wobj_num;//调用视觉程序
rGrip;
MoveJ RelTool(pPick,-x1,y1,-180\Rz:=-a1),v4000,fine,toolVision;//移动到抓料点位置1正上方
PulseDO\PLength:=0.5,DO63;//输出DO63,给吸盘控制程序,控制阀岛打开一部分吸盘通道
MoveL RelTool(pPick,-x1,y1,48\Rz:=-a1),v500,fine,toolVision;//移动到抓料点
MoveJRelTool(pPick,-x1,y1,-100\Rz:=-a1),v1000,z50,toolVision;//抓料后上升一定的位置
BaseCoordCall;//视觉基础位置程序调用
toolVision.tframe.trans.x:=toolVision.tframe.trans.x+OffsCoordX1;
toolVision.tframe.trans.y:=toolVision.tframe.trans.y-OffsCoordY1;
MoveJ RelTool(pPick,-x2,y2,-100\Rz:=-a2),v1000,fine,toolVision;//移动到抓料点位置2正上方
PulseDO\PLength:=0.1,DO61;//输出DO61,打开全部吸盘
MoveL RelTool(pPick,-x2,y2,48\Rz:=-a2),v500,fine,toolVision;//移动到抓料点2
MoveJ RelTool(pPick,-x2,y2,-100\Rz:=-a2),v1000,z50,toolVision;//抓料后上升一定的位置
Reset DO66;//复位DO66提前启动压机
LABLE3:
WaitUntil DI00=1 AND DI01=1\MaxTime:=1\TimeFlag:=VacuumFault0;//等待真空信号满足DI00和DI01满足,否在报警停止
IF VacuumFault0=TRUE THEN
PulseDO\PLength:=2,DO104;
TPWrite "Unload Vacuum Fault,Please Check!";
Stop;
GOTO LABLE3;
ENDIF
PulseDO\PLength:=0.5,DO62;//从其他装置取料完成
rSignal(2);//信号处理程序
BaseCoordCall;//视觉基础位置程序调用
!MoveL pAfterPick,v800,z150,T_Gripper1;
MoveJDO pTransit,v2500,z200,T_Gripper1,DO69,1;//机器人抓料离开皮带机点,位于等待上料点前边
MoveJDO pWaitLoad,v3000,z200,T_Gripper1,DO118,1;//等待上料点,DO118到达上料等待点触发信号
rSignal(3);//信号处理程序
Lable2:
WaitUntil(DI34=1 AND DI37=1) OR DI29=1 OR DI7=1;
IF DI29=1 OR DI7=1 THEN
rDoorOpen;
GOTO Lable2;
ENDIF
lable4:
WaitUntil DI00=1 AND DI01=1\MaxTime:=0.5\TimeFlag:=VacuumFault2;
IF VacuumFault2=TRUE THEN
PulseDO\PLength:=1,DO105;
TPWrite "load Vacuum Fault,Please Check!";
Stop;
GOTO lable4;
ENDIF
CONNECT Int_speed WITH SpeedChange;
ISignalDI DI63,1,Int_Speed;//DI63降低上料机器人的速率
WaitDI DI40, 1;//模具内有料
TriggIO trig_OverLoad,0\Start\DOp:=DO119,1;//D0119上料等待点开始向下一个压机内移动
TriggL pOverLoad,v5000,trig_OverLoad,z50,T_Gripper1;//上料之前的点,在上料点的正上方
Reset DO118;//复位信号DO118到达上料等待点触发信号
MoveLSync pLoad,v800,fine,T_Gripper1,"rGripBlow";//上料点
MoveL pAfterLoad,v1000,z50,T_Gripper1;//上料之后的点,在上料点的正上方
IDelete Int_Speed;
Speed100;//速度检测,100%才能开启提前量方式生产
TriggIO trig_OutLoad,Ahead_Press\DOp:=DO66,1;//提前启动压机
TriggL pOutLoad,v5000,trig_OutLoad,z100,T_Gripper1;//放料退出压机点?
rSignal(4);//输出向后一台压机放料完成
GOTO LableA;
ENDPROC//程序结束
联系客服