您好,欢迎来到尚车旅游网。
搜索
您的当前位置:首页1号机械手 程序

1号机械手 程序

来源:尚车旅游网
1. PROC main()

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

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- sceh.cn 版权所有

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务