InitDate; InitAct; initTrap;
speedinit.v_tcp := dpSpeedinit; speedinit.v_ori := 100; IF dpSpeedinit > 300 THEN
speedinit.v_tcp := 300;
ENDIF
IF dpSpeedinit < 50 THEN
speedinit.v_tcp := 50;
ENDIF VelSet 50, 500; IF Server_sw > 0 THEN
Server;
ENDIF CheckWaitPos;
IF bWaitpos = FALSE THEN
GotoWaitPos;
ENDIF VelSet 50, 500;
IF GlassL >= GlassW THEN
WHILE (GlassL < 1950) OR (GlassL > 2760) OR
(GlassW > 2440) OR (GlassW < 1370) DO
TPWrite \"Glass Size Err,Please input again\"; Stop;
ENDWHILE Set Robot_H;
MoveJ WaitHPos, speedinit, fine, tool1\\WObj:=wobj0;
ELSE
Reset Robot_H;
WHILE (GlassL < 1370) OR (GlassL > 2000) OR
(GlassW > 2440) OR (GlassW < 2000) DO
TPWrite \"Glass Size Err,Please input again\"; Stop;
ENDWHILE
MoveJ WaitVPos, speedinit, fine, tool1\\WObj:=wobj0;
ENDIF WHILE true DO
GlassJiaodu := 800; ISleep guangdian_int; VelSet 50, 500;
speedinit.v_tcp := dpSpeedinit; IF dpSpeedinit > 300 THEN
speedinit.v_tcp := 300;
ENDIF
IF dpSpeedinit < 50 THEN
speedinit.v_tcp := 50;
ENDIF
speedunloadglass.v_tcp := dpSpeedfangpian; IF dpSpeedfangpian > 500 THEN
speedunloadglass.v_tcp := 500;
ENDIF
IF dpSpeedfangpian < 100 THEN
speedunloadglass.v_tcp := 100;
ENDIF
speedunloading.v_tcp := dpSpeedunload; IF dpSpeedunload > 2000 THEN
speedunloading.v_tcp := 2000;
ENDIF
IF dpSpeedunload < 200 THEN
speedunloading.v_tcp := 200;
ENDIF
speedback.v_tcp := dpSpeedreturn; IF dpSpeedreturn > 3000 THEN
speedback.v_tcp := 3000;
ENDIF
IF dpSpeedreturn < 200 THEN
speedback.v_tcp := 200;
ENDIF
IF GlassL >= GlassW THEN
Set Robot_H; bRobot_h := TRUE; nGlassL := GlassL; nGlassW := GlassW;
WHILE (GlassL < 1950) OR (GlassL > 2760) OR
(GlassW > 2440) OR (GlassW < 1370) DO
TPWrite \"Glass Size Err,Please input again\"; Stop;
ENDWHILE
MoveJ WaitHPos, speedinit, fine, tool1\\WObj:=wobj0;
ELSE
Reset Robot_H; bRobot_h := FALSE; nGlassL := GlassL; nGlassW := GlassW;
WHILE (GlassL < 1370) OR (GlassL > 2000) OR
(GlassW > 2440) OR (GlassW < 2000) DO
TPWrite \"Glass Size Err,Please input again\"; Stop;
ENDWHILE
MoveJ WaitVPos, speedinit, fine, tool1\\WObj:=wobj0;
ENDIF Set WaitPos; bFinish := FALSE;
WHILE (nGlassL = GlassL) AND (nGlassW = GlassW)
AND (bFinish = FALSE) DO
IF TestDI(glasscome) = FALSE THEN
bYuZhuaPosErr := FALSE;
ENDIF QigangUp;
bStepMode := TestDI(StepMode); nSpeedMax := MaxRobSpeed(); bReady
:=
TestDI(Left_ready)
OR
TestDI(Right_ready);
bGlasscom
:=
TestDI(glasscome)
AND
(bYuZhuaPosErr = FALSE) AND (TestDI(dpDuipian) = FALSE) AND (bReady = TRUE) AND (TestDI(dpFangpian) = FALSE);
IF bGlasscom = TRUE THEN
nGlassWeight := GlassL * GlassW * GlassT * 2.5 /
100000000;
JiaoduJisuan; VelSet 100, 5000; SpeedRefresh 100;
bLeftReady := TestDI(Left_ready); bRightReady := TestDI(Right_ready); IF bRobot_h = TRUE THEN !Stop; PickUpLeftH;
IF bPickupOk = TRUE THEN
bLeftReady := TestDI(Left_ready); bRightReady := TestDI(Right_ready); WHILE (bLeftReady = FALSE) AND
(bRightReady = FALSE) DO
TPWrite \"Please Check Left_ready Or
Right_ready\"; Stop;
bLeftReady := TestDI(Left_ready); bRightReady := TestDI(Right_ready);
ENDWHILE
IF (bLeftReady = TRUE) THEN !Stop;
UnloadLeftH; bFinish := TRUE;
ELSE
IF (bRightReady = TRUE) THEN !Stop; UnloadRightH; bFinish := TRUE;
ENDIF
ENDIF
ELSE
bFinish := TRUE;
ENDIF
ELSE
PickUpLeftV; !Stop;
IF bPickupOk = TRUE THEN
bLeftReady := TestDI(Left_ready); bRightReady := TestDI(Right_ready); WHILE (bLeftReady = FALSE) AND
(bRightReady = FALSE) DO
TPWrite \"Please Check Left_ready Or
Right_ready\";
0) DO
Stop;
bLeftReady := TestDI(Left_ready);
bRightReady := TestDI(Right_ready);
ENDWHILE
IF (bLeftReady = TRUE) THEN UnloadLeftV;
bFinish := TRUE;
ELSE IF (bRightReady = TRUE) THEN UnloadRightV;
bFinish := TRUE;
ENDIF
ENDIF
ELSE
bFinish := TRUE;
ENDIF
ENDIF
ENDIF
IF (TestDI(dpDuipian) = true) THEN IF bRobot_h = TRUE THEN
WHILE (Left_ready = 0) AND (Right_ready =
Right_ready\"; 0) DO Right_ready\"; TPWrite \"Please Check Left_ready Or
Stop;
ENDWHILE
IF (Left_ready = 1) THEN
DuipianLeftH;
ELSE IF (Right_ready = 1) THEN
DuipianRightH;
ENDIF
ENDIF
ELSE
WHILE (Left_ready = 0) AND (Right_ready =
TPWrite \"Please Check Left_ready Or
Stop;
ENDWHILE
IF (Left_ready = 1) THEN
DuipianLeftV;
ELSE
IF (Right_ready = 1) THEN
DuipianRightV;
ENDIF
ENDIF
ENDIF
ENDIF
ENDWHILE
ENDWHILE
ENDPROC
2. PROC InitDate()
Reset zhenkongfa; Reset zhenkong2; Reset Weizhi_queren; Reset dpLeftDuipianzhong; Reset dpCebianStart; Reset dpCebianInit; Reset dpRightDuipianZhong; Reset dpLeftUnloading; Reset dpRightUnloading; Reset dpSeverPos; Reset Zhenkongfa_p; Reset kongqifa; Reset kongqifa2;
Reset Kongqifa_p; Reset WaitPos; Reset Yuzhua_Pos; Reset CebianStart; Reset CebianInit; Reset Weizhi_queren; nUnloadXOffsetMax := 100; nUnloadXOffsetMin := -100; nUnloadYOffsetMax := 100; nUnloadYOffsetMin := -100; nUnloadZOffsetMax := 50; nUnloadZOffsetMin := -50; nUnloadXROffsetMax := 3; nUnloadXROffsetMin := -3; nUnloadYROffsetMax := 3; nUnloadYROffsetMin := -3; nUnloadZROffsetMax := 3; nUnloadZROffsetMin := -3; tool1.tload.mass := nGripperWeight;
ENDPROC PROC InitAct()
DropWObj wobjcnv;
PulseDO\\PLength:=0.5, c1RemAllPObj; PulseDO\\PLength:=0.5, c1DropWObj; PulseDO\\PLength:=0.5, c1Rem1PObj;
ENDPROC PROC initTrap()
IDelete guangdian_int; IDelete guangdian2_int; IDelete guangdian3_int; IDelete guangdian4_int; IDelete pause_int;
CONNECT guangdian_int WITH tGuangdian; ISignalDI\\Single, guangdian1, 0, guangdian_int; CONNECT guangdian2_int WITH tGuangdian; ISignalDI\\Single, guangdian2, 0, guangdian2_int; CONNECT guangdian3_int WITH tGuangdian; ISignalDI\\Single, guangdian3, 0, guangdian3_int; CONNECT guangdian4_int WITH tGuangdian; ISignalDI\\Single, guangdian4, 0, guangdian4_int; CONNECT pause_int WITH tPause; ISignalDI\\Single, dpStop, 1, pause_int; ISleep guangdian_int; ISleep guangdian2_int;
ISleep guangdian3_int; ISleep guangdian4_int;
ISleep pause_int;
ENDPROC PROC Server() WHILE dpLeftPosOK = 0 DO Stop;
ENDWHILE StartMove; CheckWaitPos; jActPos := CJointT(); IF bWaitpos = FALSE THEN
MoveAbsJ
jActPos\\NoEOffs,
tool1\\WObj:=wobj0; IF jActPos.robax.rax_2 > 0 THEN
jActPos.robax.rax_2 := 0;
ENDIF
MoveAbsJ
jActPos\\NoEOffs,
tool1\\WObj:=wobj0; IF (bStepMode = TRUE) THEN Stop;
ENDIF
speedinit,
speedinit,
fine,
fine,
IF jActPos.robax.rax_3 > -15 THEN
jActPos.robax.rax_3 := -15;
ENDIF
MoveAbsJ
jActPos\\NoEOffs,
tool1\\WObj:=wobj0; IF (bStepMode = TRUE) THEN Stop;
ENDIF
jActPos.robax.rax_1 := 0;
MoveAbsJ
jActPos\\NoEOffs,
tool1\\WObj:=wobj0; IF (bStepMode = TRUE) THEN Stop;
ENDIF
jActPos.robax.rax_2 := 0; jActPos.robax.rax_3 := 0; jActPos.robax.rax_4 := 0; jActPos.robax.rax_5 := 0; jActPos.robax.rax_6 := 0;
MoveAbsJ
jActPos\\NoEOffs,
tool1\\WObj:=wobj0;
IF (bStepMode = TRUE) THEN
speedinit,
speedinit,
speedinit,
fine,
fine,
fine,
Stop;
ENDIF
ELSE MoveJ WaitHPos, speedinit, z50, tool1\\WObj:=wobj0; IF (bStepMode = TRUE) THEN Stop;
ENDIF
jActPos.robax.rax_1 := 0; jActPos.robax.rax_2 := 0; jActPos.robax.rax_3 := 0; jActPos.robax.rax_4 := 0; jActPos.robax.rax_5 := 0; jActPos.robax.rax_6 := 0;
MoveAbsJ jActPos\\NoEOffs, speedunloading, tool1\\WObj:=wobj0; IF (bStepMode = TRUE) THEN Stop;
ENDIF
ENDIF MoveJ
GotoSever1,
speedunloading,
tool1\\WObj:=wobj0;
IF (bStepMode = TRUE) THEN
fine,
z50,
Stop;
ENDIF
MoveJ SeverPos, speedunloading, fine, tool1\\WObj:=wobj0; CheckServerPos; Set dpSeverPos; StopMove; VelSet 10, 100; Stop; StartMove;
WHILE Server_sw > 0 DO Stop;
ENDWHILE CheckServerPos; VelSet 100, 500;
IF bSeverpos = TRUE THEN
MoveJ
GotoSever1,
speedunloading,
tool1\\WObj:=wobj0; IF (bStepMode = TRUE) THEN Stop;
ENDIF
jActPos.robax.rax_1 := 0;
jActPos.robax.rax_2 := 0;
z50,
jActPos.robax.rax_3 := 0; jActPos.robax.rax_4 := 0; jActPos.robax.rax_5 := 0; jActPos.robax.rax_6 := 0;
MoveAbsJ jActPos\\NoEOffs, speedunloading, fine,
tool1\\WObj:=wobj0;
IF (bStepMode = TRUE) THEN Stop;
ENDIF MoveJ
WaitHPos,
speedunloading,
fine,
tool1\\WObj:=wobj0;
IF (bStepMode = TRUE) THEN Stop;
ENDIF
ELSE
GotoWaitPos;
ENDIF
Reset dpSeverPos;
ENDPROC
PROC CheckWaitPos() VAR
robtarget
pNowPos:=[[2271.92,-0.74,658.45],[0.000483087,0.00174435,0.999
995,-0.00274612],[0,-1,0,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
pNowPos := CRobT(\\Tool:=tool1); bWaitpos := FALSE; bWaitposH := TRUE;
IF Abs(WaitHPos.trans.x - pNowPos.trans.x) > 100 THEN
bWaitposH := FALSE;
ENDIF
IF Abs(WaitHPos.trans.x - pNowPos.trans.x) < -100 THEN
bWaitposH := FALSE;
ENDIF
IF Abs(WaitHPos.trans.y - pNowPos.trans.y) > 100 THEN
bWaitposH := FALSE;
ENDIF
IF Abs(WaitHPos.trans.y - pNowPos.trans.y) < -100 THEN
bWaitposH := FALSE;
ENDIF
IF Abs(WaitHPos.trans.z - pNowPos.trans.z) > 100 THEN
bWaitposH := FALSE;
ENDIF
IF Abs(WaitHPos.trans.z - pNowPos.trans.z) < -100 THEN
bWaitposH := FALSE;
ENDIF
IF Abs(WaitHPos.rot.q1 - pNowPos.rot.q1) > 0.1 THEN
bWaitposH := FALSE;
ENDIF
IF Abs(WaitHPos.rot.q1 - pNowPos.rot.q1) < -0.1 THEN
bWaitposH := FALSE;
ENDIF
IF Abs(WaitHPos.rot.q2 - pNowPos.rot.q2) > 0.1 THEN
bWaitposH := FALSE;
ENDIF
IF Abs(WaitHPos.rot.q2 - pNowPos.rot.q2) < -0.1 THEN
bWaitposH := FALSE;
ENDIF
IF Abs(WaitHPos.rot.q3 - pNowPos.rot.q3) > 0.1 THEN
bWaitposH := FALSE;
ENDIF
IF Abs(WaitHPos.rot.q3 - pNowPos.rot.q3) < -0.1 THEN
bWaitposH := FALSE;
ENDIF
IF Abs(WaitHPos.rot.q4 - pNowPos.rot.q4) > 0.1 THEN
bWaitposH := FALSE;
ENDIF
IF Abs(WaitHPos.rot.q4 - pNowPos.rot.q4) < -0.1 THEN
bWaitposH := FALSE;
ENDIF
bWaitposV := TRUE;
IF Abs(WaitVPos.trans.x - pNowPos.trans.x) > 100 THEN
bWaitposV := FALSE;
ENDIF
IF Abs(WaitVPos.trans.x - pNowPos.trans.x) < -100 THEN
bWaitposV := FALSE;
ENDIF
IF Abs(WaitVPos.trans.y - pNowPos.trans.y) > 100 THEN
bWaitposV := FALSE;
ENDIF
IF Abs(WaitVPos.trans.y - pNowPos.trans.y) < -100 THEN
bWaitposV := FALSE;
ENDIF
IF Abs(WaitVPos.trans.z - pNowPos.trans.z) > 100 THEN
bWaitposV := FALSE;
ENDIF
IF Abs(WaitVPos.trans.z - pNowPos.trans.z) < -100 THEN
bWaitposV := FALSE;
ENDIF
IF Abs(WaitVPos.rot.q1 - pNowPos.rot.q1) > 0.1 THEN
bWaitposV := FALSE;
ENDIF
IF Abs(WaitVPos.rot.q1 - pNowPos.rot.q1) < -0.1 THEN
bWaitposV := FALSE;
ENDIF
IF Abs(WaitVPos.rot.q2 - pNowPos.rot.q2) > 0.1 THEN
bWaitposV := FALSE;
ENDIF
IF Abs(WaitVPos.rot.q2 - pNowPos.rot.q2) < -0.1 THEN
bWaitposV := FALSE;
ENDIF
IF Abs(WaitVPos.rot.q3 - pNowPos.rot.q3) > 0.1 THEN
bWaitposV := FALSE;
ENDIF
IF Abs(WaitVPos.rot.q3 - pNowPos.rot.q3) < -0.1 THEN
bWaitposV := FALSE;
ENDIF
IF Abs(WaitVPos.rot.q4 - pNowPos.rot.q4) > 0.1 THEN
bWaitposV := FALSE;
ENDIF
IF Abs(WaitVPos.rot.q4 - pNowPos.rot.q4) < -0.1 THEN
bWaitposV := FALSE;
ENDIF
bWaitpos := bWaitposH OR bWaitposV;
ENDPROC
PROC CheckServerPos()
pActPos := CRobT(\\Tool:=tool1); bSeverpos := TRUE;
IF Abs(SeverPos.trans.x - pActPos.trans.x) > 50 THEN
bSeverpos := FALSE;
ENDIF
IF Abs(SeverPos.trans.x - pActPos.trans.x) < -50 THEN
bSeverpos := FALSE;
ENDIF
IF Abs(SeverPos.trans.y - pActPos.trans.y) > 50 THEN
bSeverpos := FALSE;
ENDIF
IF Abs(SeverPos.trans.y - pActPos.trans.y) < -50 THEN
bSeverpos := FALSE;
ENDIF
IF Abs(SeverPos.trans.z - pActPos.trans.z) > 50 THEN
bSeverpos := FALSE;
ENDIF
IF Abs(SeverPos.trans.z - pActPos.trans.z) < -50 THEN
bSeverpos := FALSE;
ENDIF
IF Abs(SeverPos.rot.q1 - pActPos.rot.q1) > 0.1 THEN
bSeverpos := FALSE;
ENDIF
IF Abs(SeverPos.rot.q1 - pActPos.rot.q1) < -0.1 THEN
bSeverpos := FALSE;
ENDIF
IF Abs(SeverPos.rot.q2 - pActPos.rot.q2) > 0.1 THEN
bSeverpos := FALSE;
ENDIF
IF Abs(SeverPos.rot.q2 - pActPos.rot.q2) < -0.1 THEN
bSeverpos := FALSE;
ENDIF
IF Abs(SeverPos.rot.q3 - pActPos.rot.q3) > 0.1 THEN
bSeverpos := FALSE;
ENDIF
IF Abs(SeverPos.rot.q3 - pActPos.rot.q3) < -0.1 THEN
bSeverpos := FALSE;
ENDIF
IF Abs(SeverPos.rot.q4 - pActPos.rot.q4) > 0.1 THEN
bSeverpos := FALSE;
ENDIF
IF Abs(SeverPos.rot.q4 - pActPos.rot.q4) < -0.1 THEN
bSeverpos := FALSE;
ENDIF
ENDPROC
3. PROC GotoWaitPos()
TPErase;
TPWrite \"Robot Will Move To Wait Pos\"; TPWrite \"\";
TPWrite \"Are You Sure???\"; WaitTime 2; Stop;
jActPos := CJointT();
MoveAbsJ jActPos\\NoEOffs, speedinit, fine, tool1; IF jActPos.robax.rax_2 > 0 THEN
jActPos.robax.rax_2 := 0;
ENDIF
MoveAbsJ jActPos\\NoEOffs, speedinit, fine, tool1; IF (bStepMode = TRUE) THEN Stop;
ENDIF
IF jActPos.robax.rax_3 > -15 THEN
jActPos.robax.rax_3 := -15;
ENDIF
MoveAbsJ jActPos\\NoEOffs, speedinit, fine, tool1; IF (bStepMode = TRUE) THEN Stop;
ENDIF
jActPos.robax.rax_1 := 0;
MoveAbsJ jActPos\\NoEOffs, speedinit, fine, tool1; IF (bStepMode = TRUE) THEN Stop;
ENDIF
jActPos.robax.rax_3 := 0; jActPos.robax.rax_4 := 0; jActPos.robax.rax_5 := 0; jActPos.robax.rax_6 := 0;
MoveAbsJ jActPos\\NoEOffs, speedinit, fine, tool1; IF (bStepMode = TRUE) THEN Stop;
ENDIF
MoveJ WaitHPos, speedinit, fine, tool1; IF (bStepMode = TRUE) THEN
Stop;
ENDIF
ENDPROC
4. PROC PickUpLeftH()
MoveL WaitHPos, speedback, fine, tool1\\WObj:=wobj0; bPickupOk := FALSE;
PathAccLim TRUE\\AccMax:=5, TRUE\\DecelMax:=5; speedtracking.v_tcp := Gundao_speed; jusuantemp := Glass_Pos; IF jusuantemp > 32767 THEN
jusuantemp := jusuantemp - 65536;
ENDIF
PickUpXOffset := -350 - jusuantemp; !PickUpXOffset := 50;
IF (TestDI(TestMode) = FALSE) THEN PickupZoffset := 213; ELSE
PickupZoffset := 175; ENDIF
PickUpR := -0.2+GlassJiaodu; !PickUpR := -0.96;
IF (PickUpR > 5) OR (PickUpR < -5) THEN
bYuZhuaPosErr := TRUE; TPErase; TPWrite \"\";
TPWrite \"Jiao Du Wu Cha Da!!!\";
ENDIF
IF (PickUpXOffset > 300) OR (PickUpXOffset < -400)
THEN
bYuZhuaPosErr := TRUE; TPErase; TPWrite \"\";
TPWrite \"Zhong Xin Zhi Wu Cha Da!!!\";
ENDIF
IF (speedtracking.v_tcp > 1200) OR (speedtracking.v_tcp <
200) THEN
bYuZhuaPosErr := TRUE; TPErase; TPWrite \"\";
TPWrite \"Gun Dao Su Du Err!!!\";
ENDIF WHILE
(TestDI(guangdian1)
=
TRUE)
OR
(TestDI(guangdian2) = TRUE) OR (TestDI(guangdian3) = TRUE) OR (TestDI(guangdian4) = TRUE) DO
TPWrite \"Xi Pan GuangDian Guzhang\"; bYuZhuaPosErr := TRUE;
ENDWHILE
IF bYuZhuaPosErr = FALSE THEN
nSyncroOffs := 300;
nDistance := c1Speed * 1000 * c1Speed * 1000 / 5000; nRelDist := nRelDistance - (2 * nDistance) - nSyncroOffs; Reset WaitPos; MoveL
RelTool(WaitHPos,PickUpXOffset,450,PickupZoffset\\Rz:=PickUpR), speedback, fine, tool1\\WObj:=wobj0;
Set Yuzhua_Pos; TPErase; TPWrite \"\";
TPWrite \"Wait Pickup\"; bFlagTime := FALSE; WaitUntil
TestDI(tracking)
OR
(TestDI(dpFangpian))\\MaxTime:=8\\TimeFlag:=bFlagTime;
IF (TestDI(dpFangpian) = FALSE) AND (bFlagTime =
FALSE) THEN
TPWrite \"Tracking Speed = \"\\Num:=Gundao_speed; speedtracking.v_tcp := Gundao_speed;
!speedtracking.v_tcp := 588; Reset Yuzhua_Pos;
PulseDO\\PLength:=2, dpZhuaquzhong; MoveLSync
RelTool(WaitHPos,PickUpXOffset,315,PickupZoffset\\Rz:=PickUpR), speedtracking, z5, tool1, \"qigangdown\";
SetVacuum; MoveL
RelTool(WaitHPos,PickUpXOffset,-135,PickupZoffset\\Rz:=PickUpR), speedtracking, z5, tool1\\WObj:=wobj0;
PathAccLim FALSE, FALSE; bPickupOk := TRUE; MoveL
RelTool(WaitHPos,PickUpXOffset,-285,0\\Rz:=PickUpR), speedunloading, z50, tool1\\WObj:=wobj0;
IF (bStepMode = TRUE) THEN Stop;
ENDIF ELSE
PathAccLim FALSE, FALSE; Reset Yuzhua_Pos;
ENDIF
ELSE
PathAccLim FALSE, FALSE;
ENDIF
ENDPROC
5. PROC PickUpLeftV()
MoveL WaitVPos, speedback, fine, tool1\\WObj:=wobj0; QigangUp;
bPickupOk := FALSE; Reset Yuzhua_Pos;
speedtracking.v_tcp := Gundao_speed;
PathAccLim TRUE\\AccMax:=5, TRUE\\DecelMax:=5; jusuantemp := Glass_Pos; IF jusuantemp > 32767 THEN
jusuantemp := jusuantemp - 65536;
ENDIF
PickUpXOffset := -24 - jusuantemp; !PickUpXOffset := 24;
IF (TestDI(TestMode) = FALSE) THEN PickupZoffset := 160; ELSE
PickupZoffset := 160; ENDIF
PickUpR := 0 + GlassJiaodu; !PickUpR := 0;
IF (PickUpR > 5) OR (PickUpR < -5) THEN
bYuZhuaPosErr := TRUE; TPErase; TPWrite \"\";
TPWrite \"Jiao Du Wu Cha Da!!!\";
ENDIF
IF (PickUpXOffset > 400) OR (PickUpXOffset < -100)
THEN
bYuZhuaPosErr := TRUE; TPErase; TPWrite \"\";
TPWrite \"Zhong Xin Zhi Wu Cha Da!!!\";
ENDIF
IF (speedtracking.v_tcp > 1200) OR (speedtracking.v_tcp <
200) THEN
bYuZhuaPosErr := TRUE; TPErase; TPWrite \"\";
TPWrite \"Gun Dao Su Du Err!!!\";
ENDIF
WHILE (TestDI(guangdian1) = TRUE) OR
(TestDI(guangdian2) = TRUE) OR (TestDI(guangdian3) = TRUE) OR (TestDI(guangdian4) = TRUE) DO
TPWrite \"Xi Pan GuangDian Guzhang\"; bYuZhuaPosErr := TRUE;
ENDWHILE
IF bYuZhuaPosErr = FALSE THEN
nSyncroOffs := 300;
nDistance := c1Speed * 1000 * c1Speed * 1000 / 5000; nRelDist := nRelDistance - (2 * nDistance) - nSyncroOffs; Reset WaitPos; MoveL\\Conc,
-
RelTool(Offs(WaitVPos,0
-
PickUpXOffset,365,0 PickupZoffset),0,0,0\\Rz:=PickUpR),
speedtracking, fine, tool1\\WObj:=wobj0;
Set Yuzhua_Pos; TPErase; TPWrite \"\";
TPWrite \"Wait Pickup\"; bFlagTime := FALSE; WaitUntil
TestDI(tracking)
OR
(TestDI(dpFangpian))\\MaxTime:=20\\TimeFlag:=bFlagTime;
IF (TestDI(dpFangpian) = FALSE) AND (bFlagTime =
FALSE) THEN
TPWrite \"Tracking Speed = \"\\Num:=Gundao_speed; speedtracking.v_tcp := Gundao_speed; Reset Yuzhua_Pos;
PulseDO\\PLength:=2, dpZhuaquzhong; MoveLSync
-
RelTool(Offs(WaitVPos,0
-
PickUpXOffset,240,0 PickupZoffset),0,0,0\\Rz:=PickUpR),
speedtracking, z5, tool1, \"qigangdown\";
SetVacuum; MoveL
-
RelTool(Offs(WaitVPos,0
-
PickUpXOffset,-160,0 PickupZoffset),0,0,0\\Rz:=PickUpR),
speedtracking, z5, tool1\\WObj:=wobj0;
PathAccLim FALSE, FALSE; bPickupOk := TRUE; MoveL
RelTool(Offs(WaitVPos,0
-
PickUpXOffset,-310,0),0,0,0\\Rz:=PickUpR), speedtracking, z10, tool1\\WObj:=wobj0;
IF (bStepMode = TRUE) THEN Stop;
ENDIF ELSE
PathAccLim FALSE, FALSE;
Reset Yuzhua_Pos;
ENDIF
ELSE
PathAccLim FALSE, FALSE;
ENDIF
ENDPROC
PROC UnloadLeftH()
!MoveL RelTool(WaitHPos,0,0,0\\Rz:=0), speedunloading,
fine, tool1\\WObj:=wobj0;
WaitTime 0.5;
WHILE (Left_ready = 0) DO
TPWrite \"Please Check Left_ready\"; Stop;
ENDWHILE Set dpLeftUnloading; MoveL
UnloadLeftH1,
speedunloading,
z100,
tool1\\WObj:=wobj0;
IF (bStepMode = TRUE) THEN Stop;
ENDIF
PulseDO\\PLength:=2, CebianStart; MoveL
UnloadLeftH2,
speedunloading,
z150,
tool1\\WObj:=wobj0;
IF (bStepMode = TRUE) THEN Stop;
ENDIF
WHILE (Left_ready = 0) DO
TPWrite \"Please Check Left_ready\"; Stop;
ENDWHILE MoveL
FrontLeftH,
speedunloading,
z100,
tool1\\WObj:=wobj0;
IF (bStepMode = TRUE) THEN Stop;
ENDIF
WHILE TestDI(guangdian1) = FALSE DO
TPWrite \"Xi Pan GuangDian Guzhang\"; Stop;
ENDWHILE bLeftcon := FALSE; IF dpLeftCon = 0 THEN
IF ((nGlassP - GlassP) > 500) OR ((nGlassP - GlassP)
< -500) THEN
TPWrite \"Shu Bian Ce Bian Chao Xian\";
TPWrite \"GlassP = \"\\Num:=GlassP;
TPWrite \"Ji Xu Yun Xing Huo Zai Ci Dui Wei\"; Stop;
ENDIF
IF ((nGlassJ1 - glassj1) > 30) OR ((nGlassJ1 - glassj1)
< -30) THEN
TPWrite \"Heng Bian Ce Bian Chao Xian\"; TPWrite \"Glassj1 = \"\\Num:=glassj1;
TPWrite \"Ji Xu Yun Xing Huo Zai Ci Dui Wei\"; Stop;
ENDIF
IF ((nGlassJ2 - (glassj2 / Xishu)) > 92) OR ((nGlassJ2
- (glassj2 / Xishu)) < -92) THEN
TPWrite \"Jiao Du Chao Xian\";
TPWrite \"Glassj2 = \"\\Num:=glassj2 / Xishu; TPWrite \"Ji Xu Yun Xing Huo Zai Ci Dui Wei\"; Stop;
ENDIF
ENDIF
IF TestDI(dpReturnGlassin) = FALSE THEN
IWatch guangdian_int; Reset dpLeftUnloading;
IF dpLeftCon > 0 THEN
bLeftcon := TRUE;
ENDIF
IF bLeftcon = true THEN
TPWrite \"GlassP = \"\\Num:=GlassP; TPWrite \"Glassj1 = \"\\Num:=glassj1; TPWrite \"Glassj2 = \"\\Num:=glassj2 / Xishu; UnloadLeftH_M;
ELSE
TPWrite \"GlassP = \"\\Num:=GlassP; TPWrite \"Glassj1 = \"\\Num:=glassj1; TPWrite \"Glassj2 = \"\\Num:=glassj2 / Xishu; UnloadLeftH_A;
ENDIF
IF bReturn = FALSE THEN
GobackLeftH;
ELSE
GlassreturnLeftH;
ENDIF
ELSE
Reset dpLeftUnloading; GlassreturnLeftH;
ENDIF
ENDPROC
6. PROC UnloadLeftH_M()
nUnloadXOffset := 0; nUnloadXROffset := 0; nUnloadYOffset := 0; nUnloadYROffset := 0; nUnloadZOffset := 0; nUnloadZROffset := 0; bGotofangpian := FALSE; Set Weizhi_queren;
WHILE (weizhiqueren = 0) AND (TestDI(dpReturnGlassin)
= FALSE) DO
IF true THEN
nUnloadXOffset := X_offset; IF nUnloadXOffset > 32767 THEN
nUnloadXOffset := nUnloadXOffset - 65536;
ENDIF
nUnloadXROffset := X_Rot_offset; IF nUnloadXROffset > 32767 THEN
nUnloadXROffset := nUnloadXROffset - 65536;
ENDIF
nUnloadYOffset := Y_offset; IF nUnloadYOffset > 32767 THEN
nUnloadYOffset := nUnloadYOffset - 65536;
ENDIF
nUnloadYROffset := Y_Rot_offset; IF nUnloadYROffset > 32767 THEN
nUnloadYROffset := nUnloadYROffset - 65536;
ENDIF
nUnloadZOffset := Z_offset; IF nUnloadZOffset > 32767 THEN
nUnloadZOffset := nUnloadZOffset - 65536;
ENDIF
nUnloadZROffset := Z_Rot_offset; IF nUnloadZROffset > 32767 THEN
nUnloadZROffset := nUnloadZROffset - 65536;
ENDIF
ENDIF
WHILE CebianOk = 0 DO
TPWrite \"Cebian Fail,Please Try again!\"; Stop;
ENDWHILE
WHILE (GlassL1 = 0) OR (GlassW1 = 0) DO
TPWrite \"Glass Size Fail,Please Check!\";
Stop;
ENDWHILE TEST Order_1 CASE 2: nUnloadXorder := -70; nUnloadYRorder := 0; nUnloadZorder := 0;
nUnloadZRorder1 := 0;
CASE 1: nUnloadXorder := 0; nUnloadYRorder := 0; nUnloadZorder := 0;
nUnloadZRorder1 := 0;
DEFAULT:
TPWrite \"Dingdan Fail\"; Stop;
ENDTEST
IF CebianOk > 0 THEN
UnloadYOffset := GlassP - GlassL1 / 2 + 922 nUnloadYOffset;
UnloadXOffset
:=
408
-
nUnloadXorder
-
-
nUnloadXOffset - glassj1;
UnloadZROffset := glassj2 / Xishu - 89.4;
UnloadR := UnloadZROffset + nUnloadZRorder1 +
nUnloadZROffset / 100; ELSE
TPWrite \"Cebian Fail,Please Try again!\"; Stop;
ENDIF
HoutuiJuli := GlassT * leftglasspv / 100; UnloadXROffset := 0 + nUnloadXROffset / 100; UnloadYROffset
:=
0
+
nUnloadYRorder
+
nUnloadYROffset / 100;
UnloadZOffset := 0 - nUnloadZorder + nUnloadZOffset -
HoutuiJuli;
IF bReturn = FALSE THEN
nGlassP := GlassP; nGlassJ1 := glassj1; nGlassJ2 := glassj2 / Xishu;
ENDIF
IF TestDI(dpReturnGlassin) = FALSE THEN
MoveL RelTool(UnloadGlassLeftH,(UnloadXOffset -
-
30),UnloadYOffset,(UnloadZOffset
40)\\Rx:=UnloadXROffset\\Ry:=UnloadYROffset\\Rz:=UnloadR), speedinit, fine, tool1\\WObj:=wobj0;
!MoveL UnloadGlassLeftH, speedunloading, fine,
tool1\\WObj:=wobj0;
ENDIF
ENDWHILE
IF TestDI(dpReturnGlassin) = FALSE THEN
bReturn := FALSE;
ELSE
bReturn := TRUE;
ENDIF
Reset Weizhi_queren;
ENDPROC
7. PROC UnloadLeftH_A()
IF TRUE THEN
nUnloadXOffset := X_offset; IF nUnloadXOffset > 32767 THEN
nUnloadXOffset := nUnloadXOffset - 65536;
ENDIF
nUnloadXROffset := X_Rot_offset; IF nUnloadXROffset > 32767 THEN
nUnloadXROffset := nUnloadXROffset - 65536;
ENDIF
nUnloadYOffset := Y_offset; IF nUnloadYOffset > 32767 THEN
nUnloadYOffset := nUnloadYOffset - 65536;
ENDIF
nUnloadYROffset := Y_Rot_offset; IF nUnloadYROffset > 32767 THEN
nUnloadYROffset := nUnloadYROffset - 65536;
ENDIF
nUnloadZOffset := Z_offset; IF nUnloadZOffset > 32767 THEN
nUnloadZOffset := nUnloadZOffset - 65536;
ENDIF
nUnloadZROffset := Z_Rot_offset; IF nUnloadZROffset > 32767 THEN
nUnloadZROffset := nUnloadZROffset - 65536;
ENDIF
ENDIF
WHILE CebianOk = 0 DO
TPWrite \"Cebian Fail,Please Try again!\"; Stop;
ENDWHILE
WHILE (GlassL1 = 0) OR (GlassW1 = 0) DO TPWrite \"Glass Size Fail,Please Check!\";
Stop;
ENDWHILE TEST Order_1 CASE 2: nUnloadXorder := -70; nUnloadYRorder := 0; nUnloadZRorder1 := 0;
nUnloadZorder := 0;
CASE 1: nUnloadXorder := 0; nUnloadYRorder := 0; nUnloadZorder := 0;
nUnloadZRorder1 := 0;
DEFAULT:
TPWrite \"Dingdan Fail\"; Stop;
ENDTEST
IF CebianOk > 0 THEN
UnloadYOffset := GlassP nUnloadYOffset;
- GlassL1 / 2 + 922 -
UnloadXOffset := 408 - nUnloadXorder -
nUnloadXOffset - glassj1;
UnloadZROffset := glassj2 / Xishu - 89.4;
UnloadR := UnloadZROffset + nUnloadZRorder1 +
nUnloadZROffset / 100; ELSE
TPWrite \"Cebian Fail,Please Try again!\"; Stop;
ENDIF
HoutuiJuli := GlassT * leftglasspv / 100; UnloadXROffset := 0 + nUnloadXROffset / 100; UnloadYROffset
:=
0
+
nUnloadYRorder
+
nUnloadYROffset / 100;
UnloadZOffset := 0 - nUnloadZorder + nUnloadZOffset -
HoutuiJuli;
MoveL
RelTool(UnloadGlassLeftH,(UnloadXOffset
- -
50),UnloadYOffset,(UnloadZOffset
120)\\Rx:=UnloadXROffset\\Ry:=UnloadYROffset\\Rz:=UnloadR), speedunloadglass, z1, tool1\\WObj:=wobj0;
IF (bStepMode = TRUE) THEN Stop;
ENDIF
MoveL RelTool(UnloadGlassLeftH,(UnloadXOffset - -
30),UnloadYOffset,(UnloadZOffset
40)\\Rx:=UnloadXROffset\\Ry:=UnloadYROffset\\Rz:=UnloadR), speedinit, fine, tool1\\WObj:=wobj0; IF (bStepMode = TRUE) THEN Stop;
ENDIF
bReturn := FALSE;
ENDPROC
8. PROC GobackLeftH() !WaitTime 0.8; ResetVacuum; WaitTime 0.3; QigangUp;
PulseDO\\PLength:=2, UnloadLeft; ISleep guangdian_int;
MoveL
FrontLeftH,
speedunloading,
tool1\\WObj:=wobj0; IF (bStepMode = TRUE) THEN Stop;
ENDIF
MoveJ
UnloadLeftH2,
speedback,
z100,
z200,
tool1\\WObj:=wobj0;
IF (bStepMode = TRUE) THEN Stop;
ENDIF
PulseDO\\PLength:=2, CebianInit; MoveJ
UnloadLeftH1,
speedback,
z200,
tool1\\WObj:=wobj0;
IF (bStepMode = TRUE) THEN Stop;
ENDIF
MoveJ WaitHPos, speedback, fine, tool1\\WObj:=wobj0;
ENDPROC
PROC GlassreturnLeftH()
pActP := CRobT(\\Tool:=tool1); WaitTime 1;
!WHILE pActP.trans.x > -100 DO !Stop;
!ENDWHILE
MoveL FrontLeftH, speedinit, z30, tool1\\WObj:=wobj0; IF (bStepMode = TRUE) THEN Stop;
ENDIF
MoveL UnloadLeftH2, speedunloading, z100,
tool1\\WObj:=wobj0;
IF (bStepMode = TRUE) THEN Stop;
ENDIF MoveL
UnloadLeftH1,
speedunloading,
z100,
tool1\\WObj:=wobj0;
IF (bStepMode = TRUE) THEN Stop;
ENDIF MoveL
WaitHPos,
speedunloading,
fine,
tool1\\WObj:=wobj0;
IF (bStepMode = TRUE) THEN Stop;
ENDIF
MoveL RelTool(WaitHPos,0,0,140\\Rz:=0), speedback, fine,
tool1\\WObj:=wobj0;
WaitDI dpFangqi, 1;
MoveL RelTool(WaitHPos,0,0,196\\Rz:=0), speedback, fine,
tool1\\WObj:=wobj0;
WaitTime 0.2; ResetVacuum;
WaitTime 0.5; MoveL
WaitHPos,
speedunloading,
fine,
tool1\\WObj:=wobj0;
PulseDO\\PLength:=2, CebianInit; IF (bStepMode = TRUE) THEN Stop;
ENDIF
ENDPROC
9. PROC UnloadRightH()
!MoveL RelTool(WaitHPos,0,0,0\\Rz:=0), speedunloading,
fine, tool1\\WObj:=wobj0;
!WaitTime 0.3;
WHILE (Right_ready = 0) DO
TPWrite \"Please Check Right_ready\"; Stop;
ENDWHILE Set dpRightUnloading; MoveL
UnloadRightH1,
speedunloading,
z100,
tool1\\WObj:=wobj0;
IF (bStepMode = TRUE) THEN Stop;
ENDIF
PulseDO\\PLength:=2, CebianStart; MoveL
UnloadRightH2,
speedunloading,
z150,
tool1\\WObj:=wobj0;
IF (bStepMode = TRUE) THEN Stop;
ENDIF
WHILE (Right_ready = 0) DO
TPWrite \"Please Check Right_ready\"; Stop;
ENDWHILE MoveL
FrontRightH,
speedunloading,
z80,
tool1\\WObj:=wobj0;
IF (bStepMode = TRUE) THEN Stop;
ENDIF
WHILE TestDI(guangdian1) = FALSE DO
TPWrite \"Xi Pan GuangDian Guzhang\"; Stop;
ENDWHILE bRightcon := FALSE; IF dpRightcon = 0 THEN
IF ((nGlassP_2 - GlassP) > 500) OR ((nGlassP_2 -
GlassP) < -500) THEN
TPWrite \"Shu Bian Ce Bian Chao Xian\"; TPWrite \"GlassP = \"\\Num:=GlassP;
TPWrite \"Ji Xu Yun Xing Huo Zai Ci Dui Wei\"; Stop;
ENDIF
IF ((nGlassJ1_2 - glassj1) > 30) OR ((nGlassJ1_2 -
glassj1) < -30) THEN
TPWrite \"Heng Bian Ce Bian Chao Xian\"; TPWrite \"Glassj1 = \"\\Num:=glassj1;
TPWrite \"Ji Xu Yun Xing Huo Zai Ci Dui Wei\"; Stop;
ENDIF
IF ((nGlassJ2_2 - (glassj2 / Xishu)) > 92) OR
((nGlassJ2_2 - (glassj2 / Xishu)) < -92) THEN
TPWrite \"Jiao Du Chao Xian\";
TPWrite \"Glassj2 = \"\\Num:=glassj2 / Xishu; TPWrite \"Ji Xu Yun Xing Huo Zai Ci Dui Wei\"; Stop;
ENDIF
ENDIF
IF TestDI(dpReturnGlassin) = FALSE THEN
IWatch guangdian_int; Reset dpRightUnloading; IF dpRightcon > 0 THEN
bRightcon := TRUE;
ENDIF
IF bRightcon = true THEN
TPWrite \"GlassP = \"\\Num:=GlassP; TPWrite \"Glassj1 = \"\\Num:=glassj1; TPWrite \"Glassj2 = \"\\Num:=glassj2 / Xishu; UnloadRightH_M;
ELSE
TPWrite \"GlassP = \"\\Num:=GlassP; TPWrite \"Glassj1 = \"\\Num:=glassj1; TPWrite \"Glassj2 = \"\\Num:=glassj2 / Xishu; UnloadRightH_A;
ENDIF
IF bReturn = FALSE THEN
GobackRightH;
ELSE
Reset dpRightUnloading; GlassreturnRightH;
ENDIF
ELSE
GlassreturnRightH;
ENDIF
ENDPROC
10. PROC UnloadRightH_M()
nUnloadXOffset := 0; nUnloadXROffset := 0; nUnloadYOffset := 0; nUnloadYROffset := 0; nUnloadZOffset := 0; nUnloadZROffset := 0; bGotofangpian := FALSE; Set Weizhi_queren;
WHILE (weizhiqueren = 0) AND (TestDI(dpReturnGlassin)
= FALSE) DO
IF true THEN
nUnloadXOffset := X_offset; IF nUnloadXOffset > 32767 THEN
nUnloadXOffset := nUnloadXOffset - 65536;
ENDIF
nUnloadXROffset := X_Rot_offset; IF nUnloadXROffset > 32767 THEN
nUnloadXROffset := nUnloadXROffset - 65536;
ENDIF
nUnloadYOffset := Y_offset; IF nUnloadYOffset > 32767 THEN
nUnloadYOffset := nUnloadYOffset - 65536;
ENDIF
nUnloadYROffset := Y_Rot_offset; IF nUnloadYROffset > 32767 THEN
nUnloadYROffset := nUnloadYROffset - 65536;
ENDIF
nUnloadZOffset := Z_offset; IF nUnloadZOffset > 32767 THEN
nUnloadZOffset := nUnloadZOffset - 65536;
ENDIF
nUnloadZROffset := Z_Rot_offset; IF nUnloadZROffset > 32767 THEN
nUnloadZROffset := nUnloadZROffset - 65536;
ENDIF
ENDIF
WHILE CebianOk = 0 DO
TPWrite \"Cebian Fail,Please Try again!\"; Stop;
ENDWHILE
WHILE (GlassL2 = 0) OR (GlassW2 = 0) DO TPWrite \"Glass Size Fail,Please Check!\";
Stop;
ENDWHILE TEST Order_2 CASE 2: nUnloadXorder := -70; nUnloadYRorder := 0; nUnloadZorder := 0;
nUnloadZRorder1 := 0;
CASE 1: nUnloadXorder := 0; nUnloadYRorder := 0; nUnloadZorder := 0;
nUnloadZRorder1 := 0;
DEFAULT:
TPWrite \"Dingdan Fail\"; Stop;
ENDTEST
IF CebianOk > 0 THEN
UnloadYOffset := GlassP - GlassL2 / 2 + 942 -
nUnloadYOffset;
UnloadXOffset
:=
400
-
nUnloadXOffset
-
nUnloadXorder - glassj1;
UnloadZROffset := glassj2 / Xishu - 89.6;
UnloadR := UnloadZROffset + nUnloadZRorder1 +
nUnloadZROffset / 100; ELSE
TPWrite \"Cebian Fail,Please Try again!\"; Stop;
ENDIF
HoutuiJuli := GlassT * rightglasspv / 100; UnloadXROffset := 0.1 + nUnloadXROffset / 100; UnloadYROffset
:=
0
+
nUnloadYRorder
+
nUnloadYROffset / 100;
UnloadZOffset := 0 - nUnloadZorder + nUnloadZOffset -
HoutuiJuli;
IF bReturn = FALSE THEN
nGlassP_2 := GlassP; nGlassJ1_2 := glassj1; nGlassJ2_2 := glassj2 / Xishu;
ENDIF
IF FALSE THEN
MoveL FrontRightH, speedunloading, z30,
tool1\\WObj:=wobj0; -
ENDIF
IF TestDI(dpReturnGlassin) = FALSE THEN
MoveL RelTool(UnloadGlassRightH,(UnloadXOffset 30),UnloadYOffset,(UnloadZOffset
-
40)\\Rx:=UnloadXROffset\\Ry:=UnloadYROffset\\Rz:=UnloadR), speedinit, fine, tool1\\WObj:=wobj0;
!MoveL UnloadGlassRightH, speedunloading, fine,
tool1\\WObj:=wobj0;
ENDIF
ENDWHILE
IF TestDI(dpReturnGlassin) = FALSE THEN
bReturn := FALSE;
ELSE
bReturn := TRUE;
ENDIF
Reset Weizhi_queren;
ENDPROC
11. PROC UnloadRightH_A()
IF TRUE THEN
nUnloadXOffset := X_offset;
IF nUnloadXOffset > 32767 THEN
nUnloadXOffset := nUnloadXOffset - 65536;
ENDIF
nUnloadXROffset := X_Rot_offset; IF nUnloadXROffset > 32767 THEN
nUnloadXROffset := nUnloadXROffset - 65536;
ENDIF
nUnloadYOffset := Y_offset; IF nUnloadYOffset > 32767 THEN
nUnloadYOffset := nUnloadYOffset - 65536;
ENDIF
nUnloadYROffset := Y_Rot_offset; IF nUnloadYROffset > 32767 THEN
nUnloadYROffset := nUnloadYROffset - 65536;
ENDIF
nUnloadZOffset := Z_offset; IF nUnloadZOffset > 32767 THEN
nUnloadZOffset := nUnloadZOffset - 65536;
ENDIF
nUnloadZROffset := Z_Rot_offset; IF nUnloadZROffset > 32767 THEN
nUnloadZROffset := nUnloadZROffset - 65536;
ENDIF
ENDIF
WHILE CebianOk = 0 DO
TPWrite \"Cebian Fail,Please Try again!\"; Stop;
ENDWHILE
WHILE (GlassL2 = 0) OR (GlassW2 = 0) DO
TPWrite \"Glass Size Fail,Please Check!\"; Stop;
ENDWHILE TEST Order_2 CASE 2:
nUnloadXorder := -70; nUnloadYRorder := 0; nUnloadZRorder1 := 0; nUnloadZorder := 0;
CASE 1:
nUnloadXorder := 0; nUnloadYRorder := 0; nUnloadZorder := 0; nUnloadZRorder1 := 0;
DEFAULT:
TPWrite \"Dingdan Fail\"; Stop;
ENDTEST
IF CebianOk > 0 THEN
UnloadYOffset := GlassP - GlassL2 / 2 + 942 -
nUnloadYOffset;
UnloadXOffset
:=
400
-
nUnloadXOffset
-
nUnloadXorder - glassj1;
UnloadZROffset := glassj2 / Xishu - 89.6;
UnloadR := UnloadZROffset + nUnloadZRorder1 +
nUnloadZROffset / 100; ELSE
TPWrite \"Cebian Fail,Please Try again!\"; Stop;
ENDIF
HoutuiJuli := GlassT * rightglasspv / 100; UnloadXROffset := 0.1 + nUnloadXROffset / 100; UnloadYROffset
:=
0
+
nUnloadYRorder
+
nUnloadYROffset / 100;
UnloadZOffset := 0 - nUnloadZorder + nUnloadZOffset -
HoutuiJuli;
MoveL
RelTool(UnloadGlassRightH,(UnloadXOffset
-
50),UnloadYOffset,(UnloadZOffset
-
120)\\Rx:=UnloadXROffset\\Ry:=UnloadYROffset\\Rz:=UnloadR), speedunloadglass, z1, tool1\\WObj:=wobj0; IF (bStepMode = TRUE) THEN Stop;
ENDIF
MoveL
RelTool(UnloadGlassRightH,(UnloadXOffset
30),UnloadYOffset,(UnloadZOffset
40)\\Rx:=UnloadXROffset\\Ry:=UnloadYROffset\\Rz:=UnloadR), speedinit, fine, tool1\\WObj:=wobj0; IF (bStepMode = TRUE) THEN Stop;
ENDIF
bReturn := FALSE;
ENDPROC
12. PROC GobackRightH() !WaitTime 0.8; ResetVacuum; WaitTime 0.3; QigangUp;
PulseDO\\PLength:=2, unloadright;
ISleep guangdian_int;
- -
MoveL FrontRightH, speedunloading, z100,
tool1\\WObj:=wobj0;
IF (bStepMode = TRUE) THEN Stop;
ENDIF MoveJ
UnloadRightH2,
speedback,
z200,
tool1\\WObj:=wobj0;
IF (bStepMode = TRUE) THEN Stop;
ENDIF
PulseDO\\PLength:=2, CebianInit; MoveJ
UnloadRightH1,
speedback,
z200,
tool1\\WObj:=wobj0;
IF (bStepMode = TRUE) THEN Stop;
ENDIF
MoveJ WaitHPos, speedback, fine, tool1\\WObj:=wobj0; IF (bStepMode = TRUE) THEN Stop;
ENDIF
ENDPROC
13. PROC GlassreturnRightH()
pActP := CRobT(\\Tool:=tool1); WaitTime 1;
!WHILE pActP.trans.x > -100 DO !Stop;
!ENDWHILE
MoveL FrontRightH, speedinit, z30, tool1\\WObj:=wobj0; IF (bStepMode = TRUE) THEN Stop;
ENDIF MoveL
UnloadRightH2,
speedunloading,
z100,
tool1\\WObj:=wobj0;
IF (bStepMode = TRUE) THEN Stop;
ENDIF MoveL
UnloadRightH1,
speedunloading,
z100,
tool1\\WObj:=wobj0;
IF (bStepMode = TRUE) THEN Stop;
ENDIF MoveL
WaitHPos,
speedunloading,
fine,
tool1\\WObj:=wobj0;
IF (bStepMode = TRUE) THEN
Stop;
ENDIF
MoveL RelTool(WaitHPos,0,0,140\\Rz:=0), speedback, fine,
tool1\\WObj:=wobj0;
WaitDI dpFangqi, 1;
MoveL RelTool(WaitHPos,0,0,196\\Rz:=0), speedback, fine,
tool1\\WObj:=wobj0;
WaitTime 0.2; ResetVacuum; WaitTime 0.5; MoveL
WaitHPos,
speedunloading,
fine,
tool1\\WObj:=wobj0;
PulseDO\\PLength:=2, CebianInit; IF (bStepMode = TRUE) THEN Stop;
ENDIF
ENDPROC
14. PROC UnloadLeftV()
MoveL
RelTool(Offs(WaitVPos,0,0,0),0,0,0\\Rz:=0),
speedtracking, fine, tool1\\WObj:=wobj0;
WHILE (Left_ready = 0) DO
TPWrite \"Please Check Left_ready\";
Stop;
ENDWHILE Set dpLeftUnloading;
MoveL
UnloadLeftV1,
speedunloading,
tool1\\WObj:=wobj0; IF (bStepMode = TRUE) THEN Stop;
ENDIF
PulseDO\\PLength:=2, CebianStart;
MoveL UnloadLeftV2, speedunloading, z100, tool1; IF (bStepMode = TRUE) THEN Stop;
ENDIF
WHILE (Left_ready = 0) DO TPWrite \"Please Check Left_ready\";
Stop;
ENDWHILE
MoveL
FrontLeftH,
speedunloading,
tool1\\WObj:=wobj0; IF (bStepMode = TRUE) THEN Stop;
ENDIF
z150,
z30,
WHILE TestDI(guangdian1) = FALSE DO
TPWrite \"Xi Pan GuangDian Guzhang\"; Stop;
ENDWHILE bLeftcon := FALSE; IF dpLeftCon = 0 THEN
IF ((nGlassP - GlassP) > 80) OR ((nGlassP - GlassP) <
-80) THEN
TPWrite \"Shu Bian Ce Bian Chao Xian\"; TPWrite \"GlassP = \"\\Num:=GlassP;
TPWrite \"Ji Xu Yun Xing Huo Zai Ci Dui Wei\"; Stop;
ENDIF
IF ((nGlassJ2_2 - glassj1) > 100) OR ((nGlassJ1 - glassj1)
< -100) THEN
TPWrite \"Heng Bian Ce Bian Chao Xian\"; TPWrite \"Glassj1 = \"\\Num:=glassj1;
TPWrite \"Ji Xu Yun Xing Huo Zai Ci Dui Wei\"; Stop;
ENDIF
IF ((nGlassL - (glassj2 / Xishu)) > 1.2) OR ((nGlassJ2 -
(glassj2 / Xishu)) < -1.2) THEN
TPWrite \"Jiao Du Chao Xian\";
TPWrite \"Glassj2 = \"\\Num:=glassj2 / Xishu; TPWrite \"Ji Xu Yun Xing Huo Zai Ci Dui Wei\"; Stop;
ENDIF
ENDIF
IF TestDI(dpReturnGlassin) = FALSE THEN
IWatch guangdian_int; Reset dpLeftUnloading; IF dpLeftCon > 0 THEN
bLeftcon := TRUE;
ENDIF
IF bLeftcon = true THEN
TPWrite \"GlassP = \"\\Num:=GlassP; TPWrite \"Glassj1 = \"\\Num:=glassj1; TPWrite \"Glassj2 = \"\\Num:=glassj2 / Xishu; UnloadLeftV_M;
ELSE
TPWrite \"GlassP = \"\\Num:=GlassP; TPWrite \"Glassj1 = \"\\Num:=glassj1; TPWrite \"Glassj2 = \"\\Num:=glassj2 / Xishu; UnloadLeftV_A;
ENDIF
IF bReturn = FALSE THEN
GobackLeftV;
ELSE
GlassreturnLeftV;
ENDIF
ELSE
Reset dpLeftUnloading; GlassreturnLeftV;
ENDIF
ENDPROC
15. PROC UnloadLeftV_M()
nUnloadXOffset := 0; nUnloadXROffset := 0; nUnloadYOffset := 0; nUnloadYROffset := 0; nUnloadZOffset := 0; nUnloadZROffset := 0; bGotofangpian := FALSE; Set Weizhi_queren;
WHILE (weizhiqueren = 0) AND (TestDI(dpReturnGlassin)
= FALSE) DO
IF true THEN
nUnloadXOffset := X_offset; IF nUnloadXOffset > 32767 THEN
nUnloadXOffset := nUnloadXOffset - 65536;
ENDIF
nUnloadXROffset := X_Rot_offset; IF nUnloadXROffset > 32767 THEN
nUnloadXROffset := nUnloadXROffset - 65536;
ENDIF
nUnloadYOffset := Y_offset; IF nUnloadYOffset > 32767 THEN
nUnloadYOffset := nUnloadYOffset - 65536;
ENDIF
nUnloadYROffset := Y_Rot_offset; IF nUnloadYROffset > 32767 THEN
nUnloadYROffset := nUnloadYROffset - 65536;
ENDIF
nUnloadZOffset := Z_offset; IF nUnloadZOffset > 32767 THEN
nUnloadZOffset := nUnloadZOffset - 65536;
ENDIF
nUnloadZROffset := Z_Rot_offset;
IF nUnloadZROffset > 32767 THEN
nUnloadZROffset := nUnloadZROffset - 65536;
ENDIF
ENDIF
WHILE CebianOk = 0 DO
TPWrite \"Cebian Fail,Please Try again!\"; Stop;
ENDWHILE
WHILE (GlassL1 = 0) OR (GlassW1 = 0) DO
TPWrite \"Glass Size Fail,Please Check!\"; Stop;
ENDWHILE TEST Order_1 CASE 2:
nUnloadXorder := 0; nUnloadYRorder := 0; nUnloadZorder := 0; nUnloadZRorder1 := 0;
CASE 1:
nUnloadXorder := 0; nUnloadYRorder := 0; nUnloadZorder := 0;
nUnloadZRorder1 := 0;
DEFAULT:
TPWrite \"Dingdan Fail\"; Stop;
ENDTEST
IF CebianOk > 0 THEN
UnloadYOffset := GlassW1 / 2 - 926 - GlassP -
nUnloadYOffset;
UnloadXOffset
:=
660-
nUnloadXorder
-
nUnloadXOffset - glassj1;
UnloadZROffset := 90- glassj2 / Xishu;
UnloadR := UnloadZROffset + nUnloadZRorder1 +
nUnloadZROffset / 100; ELSE
TPWrite \"Cebian Fail,Please Try again!\"; Stop;
ENDIF
HoutuiJuli := GlassT * leftglasspv / 100; UnloadXROffset := 0+ nUnloadXROffset / 100; UnloadYROffset
:=
0+
nUnloadYRorder
+
nUnloadYROffset / 100;
UnloadZOffset := 0 - nUnloadZorder + nUnloadZOffset -
HoutuiJuli;
IF bReturn = FALSE THEN
nGlassP := GlassP; nGlassJ1 := glassj1; nGlassJ2 := glassj2 / Xishu;
ENDIF
IF TestDI(dpReturnGlassin) = FALSE THEN
MoveL RelTool(UnloadGlassLeftH,(UnloadXOffset -
-
40),UnloadYOffset,(UnloadZOffset
40)\\Rx:=UnloadXROffset\\Ry:=UnloadYROffset\\Rz:=UnloadR), speedinit, fine, tool1\\WObj:=wobj0;
MoveL UnloadGlassLeftH, speedunloading, z20,
tool1\\WObj:=wobj0;
ENDIF
ENDWHILE
IF TestDI(dpReturnGlassin) = FALSE THEN
bReturn := FALSE;
ELSE
bReturn := TRUE;
ENDIF
Reset Weizhi_queren;
ENDPROC
16. PROC UnloadLeftV_A()
IF TRUE THEN
nUnloadXOffset := X_offset; IF nUnloadXOffset > 32767 THEN
nUnloadXOffset := nUnloadXOffset - 65536;
ENDIF
nUnloadXROffset := X_Rot_offset; IF nUnloadXROffset > 32767 THEN
nUnloadXROffset := nUnloadXROffset - 65536;
ENDIF
nUnloadYOffset := Y_offset; IF nUnloadYOffset > 32767 THEN
nUnloadYOffset := nUnloadYOffset - 65536;
ENDIF
nUnloadYROffset := Y_Rot_offset; IF nUnloadYROffset > 32767 THEN
nUnloadYROffset := nUnloadYROffset - 65536;
ENDIF
nUnloadZOffset := Z_offset; IF nUnloadZOffset > 32767 THEN
nUnloadZOffset := nUnloadZOffset - 65536;
ENDIF
nUnloadZROffset := Z_Rot_offset; IF nUnloadZROffset > 32767 THEN
nUnloadZROffset := nUnloadZROffset - 65536;
ENDIF
ENDIF
WHILE CebianOk = 0 DO
TPWrite \"Cebian Fail,Please Try again!\"; Stop;
ENDWHILE
WHILE (GlassL1 = 0) OR (GlassW1 = 0) DO
TPWrite \"Glass Size Fail,Please Check!\"; Stop;
ENDWHILE TEST Order_1 CASE 2:
nUnloadXorder := 0; nUnloadYRorder := 0; nUnloadZorder := 0; nUnloadZRorder1 := 0;
CASE 1:
nUnloadXorder := 0; nUnloadYRorder := 0;
nUnloadZorder := 0; nUnloadZRorder1 := 0;
DEFAULT:
TPWrite \"Dingdan Fail\"; Stop;
ENDTEST
IF CebianOk > 0 THEN
UnloadYOffset := GlassW1 / 2 - 926 - GlassP -
nUnloadYOffset;
UnloadXOffset := 660- nUnloadXorder - nUnloadXOffset
- glassj1;
UnloadZROffset := 90- glassj2 / Xishu;
UnloadR := UnloadZROffset + nUnloadZRorder1 +
nUnloadZROffset / 100; ELSE
TPWrite \"Cebian Fail,Please Try again!\"; Stop;
ENDIF
HoutuiJuli := GlassT * leftglasspv / 100; UnloadXROffset := 0+ nUnloadXROffset / 100;
UnloadYROffset := 0+ nUnloadYRorder + nUnloadYROffset
/ 100;
UnloadZOffset := 0- nUnloadZorder + nUnloadZOffset -
HoutuiJuli;
MoveL
RelTool(UnloadGlassLeftH,(UnloadXOffset
- -
80),UnloadYOffset,(UnloadZOffset
120)\\Rx:=UnloadXROffset\\Ry:=UnloadYROffset\\Rz:=UnloadR), speedunloadglass, z1, tool1\\WObj:=wobj0; IF (bStepMode = TRUE) THEN Stop;
ENDIF
MoveL
RelTool(UnloadGlassLeftH,(UnloadXOffset
40),UnloadYOffset,(UnloadZOffset
40)\\Rx:=UnloadXROffset\\Ry:=UnloadYROffset\\Rz:=UnloadR), speedinit, fine, tool1\\WObj:=wobj0; IF (bStepMode = TRUE) THEN Stop;
ENDIF
bReturn := FALSE;
ENDPROC
17. PROC GobackLeftV() WaitTime 0.8; ResetVacuum;
PulseDO\\PLength:=2, UnloadLeft;
- -
ISleep guangdian_int;
MoveL FrontLeftH, speedback, z30, tool1\\WObj:=wobj0; IF (bStepMode = TRUE) THEN Stop;
ENDIF
MoveJ UnloadLeftV2, speedback, z100, tool1\\WObj:=wobj0; IF (bStepMode = TRUE) THEN Stop;
ENDIF
MoveJ UnloadLeftV1, speedback, z100, tool1\\WObj:=wobj0; IF (bStepMode = TRUE) THEN Stop;
ENDIF
MoveJ WaitVPos, speedback, fine, tool1\\WObj:=wobj0; PulseDO\\PLength:=2, CebianInit; IF (bStepMode = TRUE) THEN Stop;
ENDIF
ENDPROC
18. PROC GlassreturnLeftV()
pActP := CRobT(\\Tool:=tool1); WaitTime 1;
WHILE pActP.trans.x > -100 DO Stop;
ENDWHILE
MoveL FrontLeftH, speedinit, z30, tool1\\WObj:=wobj0; IF (bStepMode = TRUE) THEN Stop;
ENDIF
MoveL
UnloadLeftV2,
speedunloading,
tool1\\WObj:=wobj0; IF (bStepMode = TRUE) THEN Stop;
ENDIF
MoveL
UnloadLeftV1,
speedunloading,
tool1\\WObj:=wobj0; IF (bStepMode = TRUE) THEN Stop;
ENDIF
MoveL
WaitVPos,
speedunloading,
tool1\\WObj:=wobj0; IF (bStepMode = TRUE) THEN Stop;
ENDIF
z100,
z100,
fine,
MoveL RelTool(WaitVPos,0,0,140\\Rz:=0), speedback, fine,
tool1\\WObj:=wobj0;
WaitDI dpFangqi, 1;
MoveL RelTool(WaitVPos,0,0,196\\Rz:=0), speedback, fine,
tool1\\WObj:=wobj0;
WaitTime 0.2; ResetVacuum; WaitTime 0.2; MoveL
WaitVPos,
speedunloading,
fine,
tool1\\WObj:=wobj0;
PulseDO\\PLength:=2, CebianInit; IF (bStepMode = TRUE) THEN Stop;
ENDIF
ENDPROC
19. PROC UnloadRightV()
MoveL
RelTool(Offs(WaitVPos,0,0,0),0,0,0\\Rz:=0),
speedtracking, z10, tool1\\WObj:=wobj0;
WHILE (Right_ready = 0) DO
TPWrite \"Please Check Right_ready\"; Stop;
ENDWHILE
Set dpRightUnloading;
MoveL
UnloadRightV1,
speedunloading,
tool1\\WObj:=wobj0; IF (bStepMode = TRUE) THEN Stop;
ENDIF
PulseDO\\PLength:=2, CebianStart;
MoveL
UnloadRightV2,
speedunloading,
tool1\\WObj:=wobj0; IF (bStepMode = TRUE) THEN Stop;
ENDIF
WHILE (Right_ready = 0) DO TPWrite \"Please Check Right_ready\";
Stop;
ENDWHILE
MoveL
FrontRightH,
speedunloading,
tool1\\WObj:=wobj0; IF (bStepMode = TRUE) THEN Stop;
ENDIF
WHILE TestDI(guangdian1) = FALSE DO
z150,
z150,
z20,
TPWrite \"Xi Pan GuangDian Guzhang\"; Stop;
ENDWHILE bRightcon := FALSE; IF dpRightcon = 0 THEN
IF ((nGlassP_2 - GlassP) > 100) OR ((nGlassP_2 - GlassP)
< -100) THEN
TPWrite \"Shu Bian Ce Bian Chao Xian\"; TPWrite \"GlassP = \"\\Num:=GlassP;
TPWrite \"Ji Xu Yun Xing Huo Zai Ci Dui Wei\"; Stop;
ENDIF
IF ((nGlassJ1_2 - glassj1) > 100) OR ((nGlassJ1_2 -
glassj1) < -100) THEN
TPWrite \"Heng Bian Ce Bian Chao Xian\"; TPWrite \"Glassj1 = \"\\Num:=glassj1;
TPWrite \"Ji Xu Yun Xing Huo Zai Ci Dui Wei\"; Stop;
ENDIF
IF ((nGlassJ2_2 - (glassj2 / Xishu)) > 1.5) OR
((nGlassJ2_2 - (glassj2 / Xishu)) < -1.5) THEN
TPWrite \"Jiao Du Chao Xian\";
TPWrite \"Glassj2 = \"\\Num:=glassj2 / Xishu; TPWrite \"Ji Xu Yun Xing Huo Zai Ci Dui Wei\"; Stop;
ENDIF
ENDIF
IF TestDI(dpReturnGlassin) = FALSE THEN
IWatch guangdian_int; Reset dpRightUnloading; IF dpRightcon > 0 THEN
bRightcon := TRUE;
ENDIF
IF bRightcon = true THEN
TPWrite \"GlassP = \"\\Num:=GlassP; TPWrite \"Glassj1 = \"\\Num:=glassj1; TPWrite \"Glassj2 = \"\\Num:=glassj2 / Xishu; UnloadRightV_M;
ELSE
TPWrite \"GlassP = \"\\Num:=GlassP; TPWrite \"Glassj1 = \"\\Num:=glassj1; TPWrite \"Glassj2 = \"\\Num:=glassj2 / Xishu; UnloadRightV_A;
ENDIF
IF bReturn = FALSE THEN
GobackRightV;
ELSE
GlassreturnRightV;
ENDIF
ELSE
Reset dpRightUnloading; GlassreturnRightV;
ENDIF
ENDPROC
20. PROC UnloadRightV_M()
nUnloadXOffset := 0; nUnloadXROffset := 0; nUnloadYOffset := 0; nUnloadYROffset := 0; nUnloadZOffset := 0; nUnloadZROffset := 0; bGotofangpian := FALSE; Set Weizhi_queren;
WHILE (weizhiqueren = 0) AND (TestDI(dpReturnGlassin)
= FALSE) DO
IF true THEN
nUnloadXOffset := X_offset; IF nUnloadXOffset > 32767 THEN
nUnloadXOffset := nUnloadXOffset - 65536;
ENDIF
nUnloadXROffset := X_Rot_offset; IF nUnloadXROffset > 32767 THEN
nUnloadXROffset := nUnloadXROffset - 65536;
ENDIF
nUnloadYOffset := Y_offset; IF nUnloadYOffset > 32767 THEN
nUnloadYOffset := nUnloadYOffset - 65536;
ENDIF
nUnloadYROffset := Y_Rot_offset; IF nUnloadYROffset > 32767 THEN
nUnloadYROffset := nUnloadYROffset - 65536;
ENDIF
nUnloadZOffset := Z_offset; IF nUnloadZOffset > 32767 THEN
nUnloadZOffset := nUnloadZOffset - 65536;
ENDIF
nUnloadZROffset := Z_Rot_offset; IF nUnloadZROffset > 32767 THEN
nUnloadZROffset := nUnloadZROffset - 65536;
ENDIF
ENDIF
WHILE CebianOk = 0 DO
TPWrite \"Cebian Fail,Please Try again\"; Stop;
ENDWHILE
WHILE (GlassL2 = 0) OR (GlassW2 = 0) DO
TPWrite \"Glass Size Fail,Please Check!\"; Stop;
ENDWHILE TEST Order_2 CASE 2:
nUnloadXorder := 0; nUnloadYRorder := 0; nUnloadZorder := 0; nUnloadZRorder1 := 0;
CASE 1:
nUnloadXorder := 0; nUnloadYRorder := 0; nUnloadZorder := 0; nUnloadZRorder1 := 0;
DEFAULT:
TPWrite \"Dingdan Fail\"; Stop;
ENDTEST
IF CebianOk > 0 THEN
UnloadYOffset := GlassW2 / 2 - 926 - GlassP +
nUnloadYOffset;
UnloadXOffset := nUnloadXorder + nUnloadXOffset
+ glassj1 - 380;
UnloadZROffset := 90- glassj2 / Xishu;
UnloadR := UnloadZROffset + nUnloadZRorder1 +
nUnloadZROffset / 100; ELSE
TPWrite \"Cebian Fail,Please Try again!\"; Stop;
ENDIF
HoutuiJuli := GlassT * rightglasspv / 100; UnloadXROffset := 0- nUnloadXROffset / 100; UnloadYROffset
:=
0
-
nUnloadYRorder
-
nUnloadYROffset / 100;
UnloadZOffset := 0 - nUnloadZorder + nUnloadZOffset -
HoutuiJuli;
+
IF bReturn = FALSE THEN
nGlassP_2 := GlassP; nGlassJ1_2 := glassj1; nGlassJ2_2 := glassj2 / Xishu;
ENDIF
speedDropfirst.v_tcp := 100; speedDropfirst.v_ori := 100;
IF TestDI(dpReturnGlassin) = false THEN
MoveL RelTool(UnloadGlassRightH,(UnloadXOffset 40),UnloadYOffset,(UnloadZOffset
-
40)\\Rx:=UnloadXROffset\\Ry:=UnloadYROffset\\Rz:=UnloadR), speedDropfirst, fine, tool1\\WObj:=wobj0;
MoveL UnloadGlassRightH, speedunloading, z20,
tool1\\WObj:=wobj0;
ENDIF
ENDWHILE
IF TestDI(dpReturnGlassin) = FALSE THEN
bReturn := FALSE;
ELSE
bReturn := TRUE;
ENDIF
Reset Weizhi_queren;
ENDPROC
21. PROC UnloadRightV_A()
IF TRUE THEN
nUnloadXOffset := X_offset; IF nUnloadXOffset > 32767 THEN
nUnloadXOffset := nUnloadXOffset - 65536;
ENDIF
nUnloadXROffset := X_Rot_offset; IF nUnloadXROffset > 32767 THEN
nUnloadXROffset := nUnloadXROffset - 65536;
ENDIF
nUnloadYOffset := Y_offset; IF nUnloadYOffset > 32767 THEN
nUnloadYOffset := nUnloadYOffset - 65536;
ENDIF
nUnloadYROffset := Y_Rot_offset; IF nUnloadYROffset > 32767 THEN
nUnloadYROffset := nUnloadYROffset - 65536;
ENDIF
nUnloadZOffset := Z_offset; IF nUnloadZOffset > 32767 THEN
nUnloadZOffset := nUnloadZOffset - 65536;
ENDIF
nUnloadZROffset := Z_Rot_offset; IF nUnloadZROffset > 32767 THEN
nUnloadZROffset := nUnloadZROffset - 65536;
ENDIF
ENDIF
WHILE CebianOk = 0 DO
TPWrite \"Cebian Fail,Please Try again!\"; Stop;
ENDWHILE
WHILE (GlassL2 = 0) OR (GlassW2 = 0) DO
TPWrite \"Glass Size Fail,Please Check!\"; Stop;
ENDWHILE TEST Order_2 CASE 2:
nUnloadXorder := 0; nUnloadYRorder := 0; nUnloadZRorder1 := 0; nUnloadZorder := 0;
CASE 1:
nUnloadXorder := 0;
nUnloadYRorder := 0; nUnloadZorder := 0; nUnloadZRorder1 := 0;
DEFAULT:
TPWrite \"Dingdan Fail\"; Stop;
ENDTEST
IF CebianOk > 0 THEN
UnloadYOffset := GlassW2 / 2 - 926 - GlassP +
nUnloadYOffset;
UnloadXOffset := nUnloadXorder + nUnloadXOffset +
glassj1 - 380;
UnloadZROffset := 90 - glassj2 / Xishu;
UnloadR := UnloadZROffset + nUnloadZRorder1 +
nUnloadZROffset / 100; ELSE
TPWrite \"Cebian Fail,Please Try again!\"; Stop;
ENDIF
HoutuiJuli := GlassT * rightglasspv / 100; UnloadXROffset := 0 - nUnloadXROffset / 100;
UnloadYROffset := 0 - nUnloadYRorder - nUnloadYROffset
/ 100;
UnloadZOffset := 0 - nUnloadZorder + nUnloadZOffset -
HoutuiJuli;
MoveL
RelTool(UnloadGlassRightH,(UnloadXOffset
80),UnloadYOffset,(UnloadZOffset
120)\\Rx:=UnloadXROffset\\Ry:=UnloadYROffset\\Rz:=UnloadR), speedunloadglass, z1, tool1\\WObj:=wobj0; IF (bStepMode = TRUE) THEN Stop;
ENDIF
MoveL
RelTool(UnloadGlassRightH,(UnloadXOffset
40),UnloadYOffset,(UnloadZOffset
40)\\Rx:=UnloadXROffset\\Ry:=UnloadYROffset\\Rz:=UnloadR), speedinit, fine, tool1\\WObj:=wobj0; IF (bStepMode = TRUE) THEN Stop;
ENDIF
bReturn := FALSE;
ENDPROC
22. PROC GobackRightV() WaitTime 0.8;
ResetVacuum;
+ -
+ -
PulseDO\\PLength:=2, unloadright; ISleep guangdian_int;
MoveL FrontRightH, speedback, z100, tool1\\WObj:=wobj0; IF (bStepMode = TRUE) THEN Stop;
ENDIF MoveJ
UnloadRightV2,
speedback,
z200,
tool1\\WObj:=wobj0;
IF (bStepMode = TRUE) THEN Stop;
ENDIF MoveJ
UnloadRightV1,
speedback,
z200,
tool1\\WObj:=wobj0;
IF (bStepMode = TRUE) THEN Stop;
ENDIF
MoveJ WaitVPos, speedback, fine, tool1\\WObj:=wobj0; PulseDO\\PLength:=2, CebianInit; IF (bStepMode = TRUE) THEN Stop;
ENDIF
ENDPROC
23. PROC GlassreturnRightV()
pActP := CRobT(\\Tool:=tool1); WaitTime 1;
WHILE pActP.trans.x < -100 DO Stop;
ENDWHILE
MoveL FrontRightH, speedinit, z30, tool1\\WObj:=wobj0; IF (bStepMode = TRUE) THEN Stop;
UnloadRightV2,
speedunloading,
z100,
ENDIF MoveL
tool1\\WObj:=wobj0;
IF (bStepMode = TRUE) THEN Stop;
ENDIF MoveL
UnloadRightV1,
speedunloading,
z100,
tool1\\WObj:=wobj0;
IF (bStepMode = TRUE) THEN Stop;
ENDIF MoveL
WaitVPos,
speedunloading,
fine,
tool1\\WObj:=wobj0;
IF (bStepMode = TRUE) THEN Stop;
ENDIF
MoveL RelTool(WaitVPos,0,0,140\\Rz:=0), speedback, fine,
tool1\\WObj:=wobj0;
WaitDI dpFangqi, 1;
MoveL RelTool(WaitVPos,0,0,196\\Rz:=0), speedback, fine,
tool1\\WObj:=wobj0;
WaitTime 0.2; ResetVacuum; WaitTime 0.2; MoveL
WaitVPos,
speedunloading,
fine,
tool1\\WObj:=wobj0;
PulseDO\\PLength:=2, CebianInit; IF (bStepMode = TRUE) THEN Stop;
ENDIF
ENDPROC
24. PROC DuipianLeftH()
QigangDown;
MoveJ WaitHPos, speedback, fine, tool1\\WObj:=wobj0; IF (bStepMode = TRUE) THEN
Stop;
ENDIF
MoveJ UnloadLeftH1, speedback, z200, tool1\\WObj:=wobj0; IF (bStepMode = TRUE) THEN Stop;
ENDIF
MoveJ UnloadLeftH2, speedback, z200, tool1\\WObj:=wobj0; IF (bStepMode = TRUE) THEN Stop;
ENDIF MoveL
FrontLeftH,
speedunloading,
z100,
tool1\\WObj:=wobj0;
IF (bStepMode = TRUE) THEN Stop;
ENDIF
IF dpDuipian > 0 THEN
WHILE TestDI(guangdian1) = FALSE DO
TPWrite \"Xi Pan GuangDian Guzhang\"; Stop;
ENDWHILE IWatch guangdian_int; DuipianLeftH_M;
SetVacuum; WaitTime 1.5;
PulseDO\\PLength:=2, dpDuipianzhuaqu; ISleep guangdian_int;
MoveL RelTool(UnloadGlassLeftH,(UnloadXOffset -
-
60),UnloadYOffset,(UnloadZOffset
40)\\Rx:=UnloadXROffset\\Ry:=UnloadYROffset\\Rz:=UnloadR), v30, fine, tool1\\WObj:=wobj0;
IF (bStepMode = TRUE) THEN Stop;
ENDIF
MoveL RelTool(UnloadGlassLeftH,(UnloadXOffset -
-
60),UnloadYOffset,(UnloadZOffset
70)\\Rx:=UnloadXROffset\\Ry:=UnloadYROffset\\Rz:=UnloadR), v30, fine, tool1\\WObj:=wobj0;
IF (bStepMode = TRUE) THEN Stop;
ENDIF
GlassreturnLeftH; Reset dpLeftDuipianzhong;
ELSE
GobackLeftHD;
ENDIF
ENDPROC
25. PROC DuipianLeftH_M()
nUnloadXOffset := 0; nUnloadXROffset := 0; nUnloadYOffset := 0; nUnloadYROffset := 0; nUnloadZOffset := 0; nUnloadZROffset := 0; Set dpLeftDuipianzhong; WaitTime 1; Set Weizhi_queren;
WHILE weizhiqueren = 0 DO
IF true THEN
nUnloadXOffset := X_offset; IF nUnloadXOffset > 32767 THEN
nUnloadXOffset := nUnloadXOffset - 65536;
ENDIF
nUnloadXROffset := X_Rot_offset; IF nUnloadXROffset > 32767 THEN
nUnloadXROffset := nUnloadXROffset - 65536;
ENDIF
nUnloadYOffset := Y_offset; IF nUnloadYOffset > 32767 THEN
nUnloadYOffset := nUnloadYOffset - 65536;
ENDIF
nUnloadYROffset := Y_Rot_offset; IF nUnloadYROffset > 32767 THEN
nUnloadYROffset := nUnloadYROffset - 65536;
ENDIF
nUnloadZOffset := Z_offset; IF nUnloadZOffset > 32767 THEN
nUnloadZOffset := nUnloadZOffset - 65536;
ENDIF
nUnloadZROffset := Z_Rot_offset; IF nUnloadZROffset > 32767 THEN
nUnloadZROffset := nUnloadZROffset - 65536;
ENDIF
ENDIF
WHILE (GlassL1 = 0) OR (GlassW1 = 0) DO
TPWrite \"Glass Size Fail,Please Check!\"; Stop;
ENDWHILE TEST Order_1
CASE 2:
nUnloadXorder := 0; nUnloadYRorder := 0; nUnloadZorder := 0; nUnloadZRorder1 := 0;
CASE 1:
nUnloadXorder := 0; nUnloadYRorder := 0; nUnloadZorder := 0; nUnloadZRorder1 := 0;
DEFAULT:
TPWrite \"Dingdan Fail\"; Stop;
ENDTEST
UnloadYOffset := 0 - nUnloadYOffset;
UnloadXOffset := 50 - nUnloadXorder - nUnloadXOffset; UnloadZROffset := 0;
UnloadR := UnloadZROffset + nUnloadZRorder1 +
nUnloadZROffset / 100;
HoutuiJuli := GlassT * leftglasspv / 100; UnloadXROffset := 0 + nUnloadXROffset / 100; UnloadYROffset
:=
0
+
nUnloadYRorder
+
nUnloadYROffset / 100;
UnloadZOffset := 0- nUnloadZorder + nUnloadZOffset -
HoutuiJuli;
MoveL RelTool(UnloadGlassLeftH,(UnloadXOffset -
-
40),UnloadYOffset,(UnloadZOffset
40)\\Rx:=UnloadXROffset\\Ry:=UnloadYROffset\\Rz:=UnloadR), speedinit, fine, tool1\\WObj:=wobj0;
ENDWHILE Reset Weizhi_queren;
ENDPROC
26. PROC GobackLeftHD()
WaitTime 0.8; ISleep guangdian_int; MoveL
FrontLeftH,
speedunloading,
z100,
tool1\\WObj:=wobj0;
IF (bStepMode = TRUE) THEN Stop;
ENDIF MoveJ
UnloadLeftH2,
speedback,
z200,
tool1\\WObj:=wobj0;
IF (bStepMode = TRUE) THEN Stop;
ENDIF MoveJ
UnloadLeftH1,
speedback,
z200,
tool1\\WObj:=wobj0;
IF (bStepMode = TRUE) THEN Stop;
ENDIF
MoveJ WaitHPos, speedback, fine, tool1\\WObj:=wobj0; PulseDO\\PLength:=2, CebianInit; IF (bStepMode = TRUE) THEN Stop;
ENDIF
ENDPROC
27. PROC DuipianRightH()
QigangDown;
MoveJ WaitHPos, speedback, fine, tool1\\WObj:=wobj0; IF (bStepMode = TRUE) THEN Stop;
ENDIF MoveJ
UnloadRightH1,
speedback,
z200,
tool1\\WObj:=wobj0;
IF (bStepMode = TRUE) THEN Stop;
ENDIF
MoveJ
UnloadRightH2,
speedback,
tool1\\WObj:=wobj0; IF (bStepMode = TRUE) THEN Stop;
ENDIF
MoveL
FrontRightH,
speedunloading,
tool1\\WObj:=wobj0; IF (bStepMode = TRUE) THEN Stop;
ENDIF
IF dpDuipian > 0 THEN WHILE TestDI(guangdian1) = FALSE DO TPWrite \"Xi Pan GuangDian Guzhang\";
Stop;
ENDWHILE IWatch guangdian_int; DuipianRightH_M; SetVacuum; WaitTime 1.5;
PulseDO\\PLength:=2, dpDuipianzhuaqu;
ISleep guangdian_int;
z200,
z100,
MoveL RelTool(UnloadGlassRightH,(UnloadXOffset +
-
60),UnloadYOffset,(UnloadZOffset
40)\\Rx:=UnloadXROffset\\Ry:=UnloadYROffset\\Rz:=UnloadR), v30, fine, tool1\\WObj:=wobj0;
IF (bStepMode = TRUE) THEN Stop;
ENDIF
MoveL RelTool(UnloadGlassRightH,(UnloadXOffset +
-
60),UnloadYOffset,(UnloadZOffset
70)\\Rx:=UnloadXROffset\\Ry:=UnloadYROffset\\Rz:=UnloadR), v30, fine, tool1\\WObj:=wobj0;
IF (bStepMode = TRUE) THEN Stop;
ENDIF
GlassreturnRightH; Reset dpRightDuipianZhong;
ELSE
GobackRightHD;
ENDIF
ENDPROC
28. PROC DuipianRightH_M()
nUnloadXOffset := 0;
nUnloadXROffset := 0; nUnloadYOffset := 0; nUnloadYROffset := 0; nUnloadZOffset := 0; nUnloadZROffset := 0; Set dpRightDuipianZhong; WaitTime 1; Set Weizhi_queren;
WHILE weizhiqueren = 0 DO
IF true THEN
nUnloadXOffset := X_offset; IF nUnloadXOffset > 32767 THEN
nUnloadXOffset := nUnloadXOffset - 65536;
ENDIF
nUnloadXROffset := X_Rot_offset; IF nUnloadXROffset > 32767 THEN
nUnloadXROffset := nUnloadXROffset - 65536;
ENDIF
nUnloadYOffset := Y_offset; IF nUnloadYOffset > 32767 THEN
nUnloadYOffset := nUnloadYOffset - 65536;
ENDIF
nUnloadYROffset := Y_Rot_offset; IF nUnloadYROffset > 32767 THEN
nUnloadYROffset := nUnloadYROffset - 65536;
ENDIF
nUnloadZOffset := Z_offset; IF nUnloadZOffset > 32767 THEN
nUnloadZOffset := nUnloadZOffset - 65536;
ENDIF
nUnloadZROffset := Z_Rot_offset; IF nUnloadZROffset > 32767 THEN
nUnloadZROffset := nUnloadZROffset - 65536;
ENDIF
ENDIF
WHILE (GlassL2 = 0) OR (GlassW2 = 0) DO
TPWrite \"Glass Size Fail,Please Check!\"; Stop;
ENDWHILE TEST Order_2 CASE 2:
nUnloadXorder := 0; nUnloadYRorder := 0; nUnloadZorder := 0;
nUnloadZRorder1 := 0;
CASE 1:
nUnloadXorder := 0; nUnloadYRorder := 0; nUnloadZorder := 0; nUnloadZRorder1 := 0;
DEFAULT:
TPWrite \"Dingdan Fail\"; Stop;
ENDTEST
UnloadYOffset := 0 + nUnloadYOffset; UnloadXOffset
:=
-50
+
nUnloadXOffset
-
nUnloadXorder;
UnloadZROffset := 0;
UnloadR := UnloadZROffset + nUnloadZRorder1 +
nUnloadZROffset / 100;
HoutuiJuli := GlassT * rightglasspv / 100; UnloadXROffset := 0 - nUnloadXROffset / 100; UnloadYROffset
:=
0
+
nUnloadYRorder
-
nUnloadYROffset / 100;
UnloadZOffset := 0 - nUnloadZorder + nUnloadZOffset -
HoutuiJuli;
MoveL RelTool(UnloadGlassRightH,(UnloadXOffset +
-
30),UnloadYOffset,(UnloadZOffset
40)\\Rx:=UnloadXROffset\\Ry:=UnloadYROffset\\Rz:=UnloadR), speedinit, fine, tool1\\WObj:=wobj0; ENDWHILE
Reset Weizhi_queren;
ENDPROC
29. PROC GobackRightHD() WaitTime 0.8; ISleep guangdian_int;
MoveL
FrontRightH,
speedunloading,
tool1\\WObj:=wobj0; IF (bStepMode = TRUE) THEN
Stop;
ENDIF
MoveJ
UnloadRightH2,
speedback,
tool1\\WObj:=wobj0; IF (bStepMode = TRUE) THEN
Stop;
ENDIF
MoveJ
UnloadRightH1,
speedback,
tool1\\WObj:=wobj0;
z100,
z200,
z200,
IF (bStepMode = TRUE) THEN Stop;
ENDIF
MoveJ WaitHPos, speedback, fine, tool1\\WObj:=wobj0; PulseDO\\PLength:=2, CebianInit; IF (bStepMode = TRUE) THEN Stop;
ENDIF
ENDPROC
30. PROC DuipianLeftV()
QigangDown;
MoveJ WaitVPos, speedback, fine, tool1\\WObj:=wobj0; IF (bStepMode = TRUE) THEN Stop;
ENDIF
MoveJ UnloadLeftV1, speedback, z100, tool1\\WObj:=wobj0; IF (bStepMode = TRUE) THEN Stop;
ENDIF
MoveJ UnloadLeftV2, speedback, z100, tool1\\WObj:=wobj0; IF (bStepMode = TRUE) THEN Stop;
ENDIF
MoveL FrontLeftH, speedback, z30, tool1\\WObj:=wobj0; IF (bStepMode = TRUE) THEN Stop;
ENDIF
IF dpDuipian > 0 THEN
WHILE TestDI(guangdian1) = FALSE DO
TPWrite \"Xi Pan GuangDian Guzhang\"; Stop;
ENDWHILE IWatch guangdian_int; DuipianLeftV_M; SetVacuum; WaitTime 1.5;
PulseDO\\PLength:=2, dpDuipianzhuaqu; ISleep guangdian_int;
MoveL RelTool(UnloadGlassLeftH,(UnloadXOffset -
-
60),UnloadYOffset,(UnloadZOffset
40)\\Rx:=UnloadXROffset\\Ry:=UnloadYROffset\\Rz:=UnloadR), v30, fine, tool1\\WObj:=wobj0;
IF (bStepMode = TRUE) THEN Stop;
ENDIF
MoveL RelTool(UnloadGlassLeftH,(UnloadXOffset -
-
60),UnloadYOffset,(UnloadZOffset
70)\\Rx:=UnloadXROffset\\Ry:=UnloadYROffset\\Rz:=UnloadR), v30, fine, tool1\\WObj:=wobj0;
IF (bStepMode = TRUE) THEN Stop;
ENDIF
GlassreturnLeftV; Reset dpLeftDuipianzhong;
ELSE
GobackLeftVD;
ENDIF
ENDPROC
31. PROC DuipianLeftV_M()
nUnloadXOffset := 0; nUnloadXROffset := 0; nUnloadYOffset := 0; nUnloadYROffset := 0; nUnloadZOffset := 0; nUnloadZROffset := 0; Set dpLeftDuipianzhong;
WaitTime 1; Set Weizhi_queren;
WHILE weizhiqueren = 0 DO
IF true THEN
nUnloadXOffset := X_offset; IF nUnloadXOffset > 32767 THEN
nUnloadXOffset := nUnloadXOffset - 65536;
ENDIF
nUnloadXROffset := X_Rot_offset; IF nUnloadXROffset > 32767 THEN
nUnloadXROffset := nUnloadXROffset - 65536;
ENDIF
nUnloadYOffset := Y_offset; IF nUnloadYOffset > 32767 THEN
nUnloadYOffset := nUnloadYOffset - 65536;
ENDIF
nUnloadYROffset := Y_Rot_offset; IF nUnloadYROffset > 32767 THEN
nUnloadYROffset := nUnloadYROffset - 65536;
ENDIF
nUnloadZOffset := Z_offset; IF nUnloadZOffset > 32767 THEN
nUnloadZOffset := nUnloadZOffset - 65536;
ENDIF
nUnloadZROffset := Z_Rot_offset; IF nUnloadZROffset > 32767 THEN
nUnloadZROffset := nUnloadZROffset - 65536;
ENDIF
ENDIF
WHILE (GlassL1 = 0) OR (GlassW1 = 0) DO
TPWrite \"Glass Size Fail,Please Check!\"; Stop;
ENDWHILE TEST Order_1 CASE 2:
nUnloadXorder := 0; nUnloadYRorder := 0; nUnloadZorder := 0; nUnloadZRorder1 := 0;
CASE 1:
nUnloadXorder := 0; nUnloadYRorder := 0; nUnloadZorder := 0; nUnloadZRorder1 := 0;
DEFAULT:
TPWrite \"Dingdan Fail\"; Stop;
ENDTEST
UnloadYOffset := 0 - nUnloadYOffset;
UnloadXOffset := 50 - nUnloadXorder - nUnloadXOffset; UnloadZROffset := 0;
UnloadR := UnloadZROffset + nUnloadZRorder1 +
nUnloadZROffset / 100;
HoutuiJuli := GlassT * leftglasspv / 100; UnloadXROffset := 0+ nUnloadXROffset / 100; UnloadYROffset
:=
0+
nUnloadYRorder
+
nUnloadYROffset / 100;
UnloadZOffset := 0- nUnloadZorder + nUnloadZOffset -
HoutuiJuli;
MoveL RelTool(UnloadGlassLeftH,(UnloadXOffset -
-
40),UnloadYOffset,(UnloadZOffset
40)\\Rx:=UnloadXROffset\\Ry:=UnloadYROffset\\Rz:=UnloadR), speedinit, fine, tool1\\WObj:=wobj0;
ENDWHILE Reset Weizhi_queren;
ENDPROC
32. PROC GobackLeftVD()
WaitTime 0.8; ISleep guangdian_int;
MoveL FrontLeftH, speedback, z30, tool1\\WObj:=wobj0; IF (bStepMode = TRUE) THEN Stop;
ENDIF
MoveJ UnloadLeftV2, speedback, z100, tool1\\WObj:=wobj0; IF (bStepMode = TRUE) THEN Stop;
ENDIF
MoveJ UnloadLeftV1, speedback, z100, tool1\\WObj:=wobj0; IF (bStepMode = TRUE) THEN Stop;
ENDIF
MoveJ WaitVPos, speedback, fine, tool1\\WObj:=wobj0; PulseDO\\PLength:=2, CebianInit; IF (bStepMode = TRUE) THEN Stop;
ENDIF
ENDPROC
33. PROC DuipianRightV()
QigangDown;
MoveJ WaitVPos, speedback, fine, tool1\\WObj:=wobj0; IF (bStepMode = TRUE) THEN Stop;
ENDIF MoveJ
UnloadRightV1,
speedback,
z200,
tool1\\WObj:=wobj0;
IF (bStepMode = TRUE) THEN Stop;
ENDIF MoveJ
UnloadRightV2,
speedback,
z200,
tool1\\WObj:=wobj0;
IF (bStepMode = TRUE) THEN Stop;
ENDIF
MoveL FrontRightH, speedback, z100, tool1\\WObj:=wobj0; IF (bStepMode = TRUE) THEN Stop;
ENDIF
IF dpDuipian > 0 THEN
WHILE TestDI(guangdian1) = FALSE DO
TPWrite \"Xi Pan GuangDian Guzhang\";
Stop;
ENDWHILE IWatch guangdian_int; DuipianRightV_M; SetVacuum; WaitTime 1.5;
PulseDO\\PLength:=2, dpDuipianzhuaqu; ISleep guangdian_int;
MoveL RelTool(UnloadGlassRightH,(UnloadXOffset +
-
60),UnloadYOffset,(UnloadZOffset
40)\\Rx:=UnloadXROffset\\Ry:=UnloadYROffset\\Rz:=UnloadR), v30, fine, tool1\\WObj:=wobj0;
IF (bStepMode = TRUE) THEN Stop;
ENDIF
MoveL RelTool(UnloadGlassRightH,(UnloadXOffset +
-
60),UnloadYOffset,(UnloadZOffset
70)\\Rx:=UnloadXROffset\\Ry:=UnloadYROffset\\Rz:=UnloadR), v30, fine, tool1\\WObj:=wobj0;
IF (bStepMode = TRUE) THEN Stop;
ENDIF
GlassreturnRightV;
Reset dpRightDuipianZhong;
ELSE
GobackRightVD;
ENDIF
ENDPROC
34. PROC DuipianRightV_M()
nUnloadXOffset := 0; nUnloadXROffset := 0; nUnloadYOffset := 0; nUnloadYROffset := 0; nUnloadZOffset := 0; nUnloadZROffset := 0; Set dpRightDuipianZhong; WaitTime 1; Set Weizhi_queren;
WHILE weizhiqueren = 0 DO
IF true THEN
nUnloadXOffset := X_offset; IF nUnloadXOffset > 32767 THEN
nUnloadXOffset := nUnloadXOffset - 65536;
ENDIF
nUnloadXROffset := X_Rot_offset; IF nUnloadXROffset > 32767 THEN
nUnloadXROffset := nUnloadXROffset - 65536;
ENDIF
nUnloadYOffset := Y_offset; IF nUnloadYOffset > 32767 THEN
nUnloadYOffset := nUnloadYOffset - 65536;
ENDIF
nUnloadYROffset := Y_Rot_offset; IF nUnloadYROffset > 32767 THEN
nUnloadYROffset := nUnloadYROffset - 65536;
ENDIF
nUnloadZOffset := Z_offset; IF nUnloadZOffset > 32767 THEN
nUnloadZOffset := nUnloadZOffset - 65536;
ENDIF
nUnloadZROffset := Z_Rot_offset; IF nUnloadZROffset > 32767 THEN
nUnloadZROffset := nUnloadZROffset - 65536;
ENDIF
ENDIF
WHILE (GlassL2 = 0) OR (GlassW2 = 0) DO
TPWrite \"Glass Size Fail,Please Check!\";
Stop;
ENDWHILE TEST Order_2 CASE 2: nUnloadXorder := 0; nUnloadYRorder := 0; nUnloadZorder := 0;
nUnloadZRorder1 := 0;
CASE 1: nUnloadXorder := 0; nUnloadYRorder := 0; nUnloadZorder := 0;
nUnloadZRorder1 := 0;
DEFAULT:
TPWrite \"Dingdan Fail\"; Stop;
ENDTEST
UnloadYOffset := nUnloadYOffset + 0;
UnloadXOffset
:=
-50
+
nUnloadXorder
nUnloadXOffset;
UnloadZROffset := 0;
+
UnloadR := UnloadZROffset + nUnloadZRorder1 +
nUnloadZROffset / 100;
HoutuiJuli := GlassT * rightglasspv / 100; UnloadXROffset := 0- nUnloadXROffset / 100; UnloadYROffset
:=
0
-
nUnloadYRorder
-
nUnloadYROffset / 100;
UnloadZOffset := 0 - nUnloadZorder + nUnloadZOffset -
HoutuiJuli;
MoveL RelTool(UnloadGlassRightH,(UnloadXOffset +
-
30),UnloadYOffset,(UnloadZOffset
40)\\Rx:=UnloadXROffset\\Ry:=UnloadYROffset\\Rz:=UnloadR), speedinit, fine, tool1\\WObj:=wobj0;
ENDWHILE Reset Weizhi_queren;
ENDPROC
35. PROC GobackRightVD()
WaitTime 0.8; ISleep guangdian_int;
MoveL FrontRightH, speedback, z100, tool1\\WObj:=wobj0; IF (bStepMode = TRUE) THEN Stop;
ENDIF
MoveJ UnloadRightV2, speedback, z200,
tool1\\WObj:=wobj0;
IF (bStepMode = TRUE) THEN Stop;
ENDIF MoveJ
UnloadRightV1,
speedback,
z200,
tool1\\WObj:=wobj0;
IF (bStepMode = TRUE) THEN Stop;
ENDIF
MoveJ WaitVPos, speedback, fine, tool1\\WObj:=wobj0; PulseDO\\PLength:=2, CebianInit; IF (bStepMode = TRUE) THEN Stop;
ENDIF
ENDPROC
36. PROC JiaoduJisuan()
jusuantemp := GlassJ; IF jusuantemp > 32767 THEN
jusuantemp := jusuantemp - 65536;
ENDIF
GlassJiaodu := 0-jusuantemp / 100;
ENDPROC
37. PROC QigangUp()
Reset qigangtaiqi; Reset qigangtaiqi2;
ENDPROC
38. PROC QigangDown()
Set qigangtaiqi; Set qigangtaiqi2;
ENDPROC
39. PROC SetVacuum()
Set zhenkongfa; Set zhenkong2; Reset kongqifa; Reset kongqifa2;
tool1.tload.mass := nGripperWeight + nGlassWeight;
ENDPROC
40. PROC ResetVacuum()
Reset zhenkongfa; Reset zhenkong2;
PulseDO\\PLength:=2, kongqifa; PulseDO\\PLength:=2, kongqifa2; tool1.tload.mass := nGripperWeight;
ENDPROC TRAP tGuangdian
TPWrite \"Xi Pan GuangDian Guzhang\"; Stop;
ENDTRAP TRAP tPause
!StopMove; !ISleep pause_int; !WaitDI dpStop, 0; !StartMove; !IWatch pause_int;
ENDTRAP
41. PROC main8()
PickUpLeftV;
ENDPROC
ENDMODULE
因篇幅问题不能全部显示,请点此查看更多更全内容