PROC gjxinhao(robtarget dw,num x,num py)
MoveL Offs(dw,0,0,py), v1000, fine, tool0;
MoveL dw, v1000, fine, tool0;
TEST x
CASE 1:
Set kh;
WaitTime 1;
CASE 2:
Reset kh;
WaitTime 1;
CASE 5:
Reset jz;
WaitTime 1;
CASE 6:
Set jz;
WaitTime 1;
CASE 3:
Set dxp;
WaitTime 1;
CASE 4:
Reset dxp;
WaitTime 1;
CASE 7:
Reset xxp;
WaitTime 1;
CASE 8:
Set xxp;
WaitTime 1;
ENDTEST
Reset kh;
MoveL Offs(dw,0,0,py), v1000, fine, tool0;
ENDPROC
PROC zgj()
IF gjxz = 1 THEN
!reg1 := 3;
!reg2 := 4;
gjxinhao gjdw{1}, 1, 200;
MoveL p80, v1000, fine, tool0;
ELSEIF gjxz = 2 THEN
!reg1 := 5;
!reg2 := 6;
gjxinhao gjdw{2}, 1, 200;
MoveL p80, v1000, fine, tool0;
ENDIF
ENDPROC
PROC main()
WaitDI yunxing, 1;
home;
csh;
zgj;
FOR i FROM 1 TO 3 DO
gjxinhao mdpta, 5, 150;
MoveJ p70, v1000, fine, tool0;
MoveL p60, v1000, fine, tool0;
gjxinhao maptbdx{duoxing{1},mdsx{i}}, 6, 50;
ENDFOR
Routine1;
home;
WaitDI yunxing, 1;
csh;
zgj;
MoveJ p90, v1000, z1, tool0\WObj:=wobj0;
FOR i FROM 1 TO 6 DO
pp Offs(mmdpta,0,reg1,0), 3, -100;
WaitTime 0.5;
Reset dxp;
IF xpjz = 1 THEN
Reset dxp;
reg1 := reg1 + 65;
Incr reg2;
ELSE
Reset dxp;
MoveJ p50, v1000, fine, tool0;
GOTO aaa;
ENDIF
ENDFOR
MoveJ p50, v1000, fine, tool0;
aaa:
reg7 := reg2;
TEST duoxing{1}
CASE 1:
FOR i FROM 1 TO 3 DO
bb mmdptB{1,i}, 3, 100;
WaitTime 0.5;
IF xpjz = 1 THEN
Incr reg3;
Reset dxp;
ENDIF
IF xpjz = 0 THEN
Reset dxp;
buliao{i} := 1;
ENDIF
IF buliao{i} = 1 THEN
iii{i} := i;
ENDIF
ENDFOR
CASE 2:
FOR i FROM 1 TO 3 DO
bb mmdptB{2,i}, 3, 100;
WaitTime 0.5;
IF xpjz = 1 THEN
Incr reg3;
Reset dxp;
ENDIF
IF xpjz = 0 THEN
buliao{i} := 1;
Reset dxp;
ENDIF
IF buliao{i} = 1 THEN
iii{i} := i;
ENDIF
ENDFOR
CASE 3:
FOR i FROM 1 TO 3 DO
bb mmdptB{3,i}, 3, 50;
WaitTime 0.5;
IF xpjz = 1 THEN
Incr reg3;
Reset dxp;
ENDIF
IF xpjz = 0 THEN
buliao{i} := 1;
Reset dxp;
ENDIF
IF buliao{i} = 1 THEN
iii{i} := i;
ENDIF
ENDFOR
ENDTEST
MoveL p110, v1000, fine, tool0;
MoveJ p100, v1000, fine, tool0;
IF reg2 = 1 OR reg2 = 2 OR reg2 = 0 THEN
FOR i FROM 1 TO 3 DO
pp Offs(mmdpta,0,0,0), 3, -50;
WaitTime 0.5;
IF xpjz = 1 THEN
MoveL p130, v1000, fine, tool1\WObj:=wobj1;
MoveL p140, v1000, fine, tool0\WObj:=wobj0;
reg11 := reg11 + 25;
bb Offs(mmdptB{duoxing{1},i},0,0,reg11), 4, 8;
MoveL p150, v1000, fine, tool0;
ELSE
home;
ENDIF
ENDFOR
ENDIF
IF reg2 >= 3 THEN
FOR i FROM 1 TO 3 DO
pp mmdpta, 3, -100;
reg11 := reg11 + 20;
MoveL p120, v1000, fine, tool1\WObj:=wobj1;
MoveL p190, v1000, fine, tool1\WObj:=wobj1;
bb Offs(mmdptB{duoxing{1},mdsx{i}},0,0,reg11), 4, 8;
Incr reg2;
ENDFOR
home;
Routine1;
home;
ENDIF
IF reg2 < 3 OR reg3 < 3 THEN
FOR y FROM 1 + reg2 TO 7 - reg3 DO
IDelete intno1;
IDelete intno2;
CONNECT intno1 WITH buliao1;
CONNECT intno2 WITH buliaowancheng;
ISignalDO\Single, do0, 1, intno1;
ISignalDO\Single, do1, 1, intno2;
IF reg2 < 3 OR reg3 < 3 THEN
Set do0;
WaitTime 4;
Reset do0;
Set do1;
Reset do1;
ENDIF
IF reg3 < 3 THEN
pp mmdpta, 3, -100;
MoveL p120, v1000, fine, tool1\WObj:=wobj1;
MoveL p210, v1000, fine, tool1\WObj:=wobj1;
bb Offs(mmdptB{duoxing{1},y},0,0,20), 4, 50;
Incr reg3;
Incr reg2;
ENDIF
IF reg7 = 1 THEN
reg5 := 2;
pp mmdpta, 3, -100;
MoveL p120, v1000, fine, tool1\WObj:=wobj1;
MoveL p210, v1000, fine, tool1\WObj:=wobj1;
bb Offs(mmdptB{duoxing{1},reg5},0,0,20), 4, 8;
Incr reg2;
Incr reg5;
ENDIF
IF reg7 = 2 THEN
reg6 := 3;
pp mmdpta, 3, -100;
MoveL p120, v1000, fine, tool1\WObj:=wobj1;
MoveL p210, v1000, fine, tool1\WObj:=wobj1;
bb Offs(mmdptB{duoxing{1},reg6},0,0,20), 4, 8;
Incr reg2;
ENDIF
ENDFOR
ENDIF
Routine1;
home;
WaitDI yunxing, 1;
csh;
zgj;
FOR i FROM 1 TO 3 DO
bb Offs(mmdptB{duoxing{1},mdsx{i}},0,0,20), 3, 0;
MoveL p50, v1000, fine, tool0;
pp Offs(mmdpta,0,350,0), 4, -100;
MoveL p50, v1000, fine, tool0;
ENDFOR
FOR i FROM 1 TO 3 DO
bb mmdptB{duoxing{1},mdsx{i}}, 3, 50;
MoveL p50, v1000, fine, tool0;
pp Offs(mmdpta,0,350,0), 4, -100;
MoveL p50, v1000, fine, tool0;
ENDFOR
home;
ENDPROC
PROC csh()
SocketClose socket1;
SocketCreate socket1;
SocketConnect socket1, "192.168.2.101", 1400;
WaitTime 1;
SocketSend socket1\Data:=byte3;
SocketReceive socket1\Data:=byte4;
SocketClose socket1;
gjxz := byte4{4};
duoxing{1} := byte4{1};
mdsx{1} := byte4{7};
mdsx{2} := byte4{10};
mdsx{3} := byte4{13};
reg2 := 0;
reg3 := 0;
ENDPROC
TRAP buliao1
StopMove;
ENDTRAP
TRAP buliaowancheng
reg2 := 7;
reg3 := 7;
StartMove;
ENDTRAP
PROC Routine1()
IF gjxz = 1 THEN
MoveAbsJ jpos10\NoEOffs, v1000, fine, tool0;
MoveJ Offs(gjdw{1},0,0,150), v1000, fine, tool0;
MoveL gjdw{1}, v1000, fine, tool0;
Set kh;
WaitTime 1;
MoveL Offs(gjdw{1},0,0,150), v1000, fine, tool0;
ENDIF
IF gjxz = 2 THEN
MoveAbsJ jpos10\NoEOffs, v1000, fine, tool0;
MoveJ Offs(gjdw{2},0,0,150), v1000, fine, tool0;
MoveL gjdw{2}, v1000, fine, tool0;
Set kh;
WaitTime 1;
MoveL Offs(gjdw{2},0,0,150), v1000, fine, tool0;
ENDIF
ENDPROC
PROC Routine2()
SocketClose socket1;
SocketCreate socket1;
SocketConnect socket1, "192.168.100.101", 1400;
SocketReceive socket1\Data:=byte3;
SocketSend socket1\Data:=byte4;
gjxz := byte4{4};
duoxing{1} := byte4{1};
mdsx{1} := byte4{7};
mdsx{2} := byte4{10};
mdsx{3} := byte4{13};
ENDPROC
PROC pp(robtarget ddw,num xx,num ppy)
MoveL Offs(ddw,0,0,ppy), v1000, fine, tool1\WObj:=wobj1;
MoveL ddw, v1000, fine, tool1\WObj:=wobj1;
TEST xx
CASE 1:
Set kh;
WaitTime 1;
CASE 2:
Reset kh;
WaitTime 1;
CASE 5:
Reset jz;
WaitTime 1;
CASE 6:
Set jz;
WaitTime 1;
CASE 3:
Set dxp;
WaitTime 1;
CASE 4:
Reset dxp;
WaitTime 1;
CASE 7:
Reset xxp;
WaitTime 1;
CASE 8:
Set xxp;
WaitTime 1;
ENDTEST
ENDPROC
PROC bb(robtarget dwww,num xxx,num pyy)
MoveL Offs(dwww,0,0,pyy), v1000, fine, tool0\WObj:=wobj0;
MoveL dwww, v1000, fine, tool0\WObj:=wobj0;
TEST xxx
CASE 1:
Set kh;
WaitTime 1;
CASE 2:
Reset kh;
WaitTime 1;
CASE 5:
Reset jz;
WaitTime 1;
CASE 6:
Set jz;
WaitTime 1;
CASE 3:
Set dxp;
WaitTime 1;
CASE 4:
Reset dxp;
WaitTime 1;
CASE 7:
Reset xxp;
WaitTime 1;
CASE 8:
Set xxp;
WaitTime 1;
ENDTEST
ENDPROC
PROC home()
MoveAbsJ home1\NoEOffs, v1000, fine, tool0;
Reset jz;
Set jz;
Reset dxp;
Reset xxp;
ENDPROC
ENDMODULE