当前位置:文档之家› 机器人码垛调试程序.

机器人码垛调试程序.

PROC main(
Label1:
Inital;
WHILETRUEDO
Pick;
Pallet;
IF pndi13_diection_selet = 1 THEN
Pallet;
ELSE
Pallet_vert;
ENDIF
IF nCount = Totality THEN MoveLpHome, v800, fine, tool0;
PulseDO\PLength:=1, pndo10_palletOK_part; IF pndi12_palletOK_all = 1 THEN PulseDO\PLength:=1, pndo11_palletOK_all; Stop;
ENDIF
GOTO Label1;
ENDIF
ENDWHILE
ENDPROC
PROC Inital(
MoveJpHome, v600, fine, tool0; Totality :=n_Totality;
Row :=n_Row;
Height := 1;
Y := 1;
H1 := 1;
H2 := 1;
nCount := 0;
PulseDO\PLength:=0.5, do00_tuici; Reset do00_tuici;
Reset do01_shangci;
Reset pndo09_pick_ok;
Reset pndo10_palletOK_part; Reset pndo11_palletOK_all; ENDPROC
PROC Pallet(
MoveL pPlace_safe10, v600, z100, tool0;
MoveJ pPlace_safe30, v600, z100, tool0;
pPlace := pPlace_base;
IF Height MOD 2 = 1 THEN
pPlace := Offs(pPlace,X_offser,Y_offser - (Y - 1 * 61,Z_offser + (H1 -
1 * 28;
ELSE
pPlace := Offs(pPlace,X_offser,Y_offser + 15 - (Y - 1 * 61,Z_offser + (H2 - 1 * 26; ENDIF
MoveLOffs(pPlace,0,0,50, v300, fine, tool0\WObj:=wobj_place; MoveLpPlace, v20, fine, tool0\WObj:=wobj_place;
PulseDO\PLength:=1, do00_tuici;
WaitTime 1;
WaitDI di01_tuici_OK, 1;
MoveLOffs(pPlace,0,0,300, v300, z30, tool0\WObj:=wobj_place;
MoveL pPlace_safe30, v600, z50, tool0;
IncrnCount;
IF Y = Row THEN
Y := 0;
Incr Height;
IF Height MOD 2 = 1 THEN
Incr H1;
ELSE
Incr H2;
ENDIF
ENDIF
Incr Y;
ENDPROC
PROC Pallet_vert(
MoveL pPlace_safe100, v600, z100, tool0;
MoveJ pPlace_safe110, v600, z100, tool0;
MoveJ pPlace_base2, v50, fine, tool0\WObj:=wobj_place;
pPlace := place_base2;
IF Height MOD 2 = 1 THEN
pPlace := Offs(pPlace,X_offser,Y_offser - (Y - 1 * 61,Z_offser + (H1 - 1 * 28; ELSE
pPlace := Offs(pPlace,X_offser,Y_offser + 15 - (Y - 1 * 61,Z_offser + (H2 - 1 * 26;
ENDIF
MoveLOffs(pPlace,0,0,50, v300, fine, tool0\WObj:=wobj_place; MoveLpPlace, v20, fine, tool0\WObj:=wobj_place;
PulseDO\PLength:=1, do00_tuici;
WaitTime 1;
WaitDI di01_tuici_OK, 1;
MoveLOffs(pPlace,0,0,300, v300, z30, tool0\WObj:=wobj_place; MoveL pPlace_safe30, v600, z50, tool0;
IncrnCount;
IF Y = Row THEN
Y := 0;
Incr Height;
IF Height MOD 2 = 1 THEN
Incr H1;
ELSE
Incr H2;
ENDIF
ENDIF
Incr Y;
ENDPROC
PROC Pick(
MoveJ p10, v600, fine, tool0;
WaitDI pndi09_can_pick, 1;
MoveLpPick_base, v20, fine, tool0\WObj:=wobj0;
pPick := pPick_base;
pPick := Offs(pPick,0,-L_offser / 2,0;
MoveLOffs(pPick,0,0,70, v200, fine, tool0\WObj:=wobj0; IF Height MOD 2 = 1 THEN
MoveLpPick, v20, fine, tool0\WObj:=wobj0;
ELSE
MoveLOffs(pPick,0,0,15, v20, fine, tool0\WObj:=wobj0; ENDIF
PulseDO\PLength:=1, do01_shangci;
WaitDI di02_shangci_OK, 1;
MoveLOffs(pPick,0,0,100, v150, z50, tool0\WObj:=wobj0; MoveLOffs(pPick,0,0,400, v400, z50, tool0\WObj:=wobj0; PulseDO\PLength:=1, pndo09_pick_ok;
ENDPROC
PROC wobj_place0(
MoveL p_x1, v20, fine, tool0;
MoveL p_x2, v20, fine, tool0;
MoveLp_y, v20, fine, tool0;
ENDPROC
PROC set_home(
WZSphDef\Inside, shape1, home_C1, 100;
WZDOSet\Temp, home_wz\Before, shape1, pndo07_home, 1; ENDPROC PROC ppp(
IDelete intno1;
CONNECT intno1 WITH kkk;
ISignalDI\Single, di01_tuici_OK, 1, intno1;
IWatch intno1;
MoveL p30, v100, fine, tool0;
MoveL p40, v20, fine, tool0;
ENDPROC
TRAP kkk
StopMove;
WaitTime 3;
!WaitDI di01_tuici_OK, 0; StartMove;
MoveJ p50, v100, fine, tool0; IDelete intno1;
ENDTRAP ENDMODULE。

相关主题