pActualpos.trans.z:=2000;
MoveL pActualpos,vMinEmpty,z20,tGripper\\WObj:=WobjCompressor1 ; ! MoveL Offs ( PZhanban,0,0,400) ,vMinEmpty ,z20 , tGripper\\WObj:= WobjCompressor ; WaitDI di05_PalletInPos ,1; IF nInpos =2 THEN
MoveJ PZhanbanSafe ,vMinEmpty ,z20 , tGripper\\WObj:= WobjCompressor ; ENDIF
pActualpos:=PlaceZhanban; pActualpos.trans.z:=2000;
MoveJ pActualpos,vMinLoad,z20,tGripper\\WObj:=WobjCompressor1 ; ! MoveJ Offs ( PlaceZhanban ,0,0,nTotalPalletHigh+700 ) ,v500 ,z5 , tGripper\\WObj:= WobjCompressor ;
MoveL Offs ( PlaceZhanban ,0,0,nTotalPalletHigh) ,vMinLoad ,fine , tGripper\\WObj:= WobjCompressor ; WaitTime 0.5;
Set do02_BigJaws1 ; Set do03_BigJaws2;
WaitDI di08_BigJawsInOpen,1; MoveL Offs
( PlaceZhanban ,0,0,nTotalPalletHigh+700 ) ,vMaxEmpty ,fine , tGripper\\WObj:= WobjCompressor ; Reset do03_BigJaws2; WaitTime 0.6;
Reset do02_BigJaws1;
WaitDI di07_BigJawsInClose, 1; rCompressorOutPos;
IF nTotalPalletHigh>1200 THEN set do06_PalletEmpty ; waittime 1;
reset do06_PalletEmpty; nTotalPalletHigh:=0; nPalletHigh:=0; ENDIF ENDPROC
PROC rCompressorInPos() ! bInpos:=TRUE;
! WHILE bInpos=TRUE DO
! IF di03_Compressor1InPos =1 THEN WobjCompressor:=WobjCompressor1; bInpos:= FALSE; nInpos:=2;
! ELSEIF di04_Compressor2InPos =1 THEN ! WobjCompressor:=WobjCompressor2; ! bInpos:=FALSE; ! nInpos:=3; ! ELSE
! bInpos:=TRUE; ! ENDIF
! WaitTime 0.3; ! ENDWHILE ENDPROC
PROC rCompressorOutPos()
IF WobjCompressor=WobjCompressor1 THEN Set do04_Compressor1Empty ; WaitTime 1;
Reset do04_Compressor1Empty;
ELSEIF WobjCompressor=WobjCompressor1 THEN Set do05_Compressor2Empty ; WaitTime 1;
Reset do05_Compressor2Empty; ENDIF ENDPROC
FUNC bool CurrentPos(robtarget ComparePos,INOUT tooldata TCP) VAR num Counter:=0; VAR robtarget ActualPos;
ActualPos:=CRobT(\\Tool:=TCP\\WObj:=wobj0); IF ActualPos.trans.x>ComparePos.trans.x-25 AND ActualPos.trans.x PROC rCheckHomePos() IF NOT CurrentPos(pHome,tGripper) THEN pActualpos:=CRobT(\\Tool:=tGripper\\WObj:=wobj0); pActualpos.trans.z:=pHome.trans.z; MoveL pActualpos,v300,z30,tGripper; MoveJ pHome,v500,fine ,tGripper; ENDIF ENDPROC PROC rKindChoose() ! IF di16_giBCD=1 THEN Compensation:=CompensationA; nPalletHighUp:=nPalletHighUpA; nPalletHighDown:=nPalletHighDownA; Pick:= PickA; Vision :=VisionA; Place:=PlaceA; PZhanbanUp:=PZhanbanUpA; PZhanbanDown:=PZhanbanDownA; PlaceZhanban:=PlaceZhanbanA; ! ELSEIF di16_giBCD=2 THEN ! Compensation:=CompensationB; ! nPalletHighUp:=nPalletHighUpB; ! nPalletHighDown:=nPalletHighDownB; ! Pick:= PickB; ! Vision :=VisionB; ! Place:=PlaceB; ! PZhanbanUp:=PZhanbanUpB; ! PZhanbanDown:=PZhanbanDownB; ! PlaceZhanban:=PlaceZhanbanB; ! ELSE ! TPErase; ! TPWrite \ ! ENDIF ENDPROC PROC rModPos () MoveJ pHome, v1000, fine, tGripper\\WObj:=Wobj0; MoveJ PZhanbanSafe, v1000, fine, tGripper\\WObj:=WobjCompressor1; MoveJ PickA, v1000, fine, tGripper\\WObj:= WobjCompressor1; MoveJ VisionA , v1000, fine, tGripper\\WObj:=WobjCompressor1 ; MoveJ PlaceA, v1000, fine, tGripper\\WObj:=WobjCompressor1; MoveJ PZhanbanUpA, v1000, fine, tGripper\\WObj:= WobjCompressor1; MoveJ PZhanbanDownA, v1000, fine, tGripper\\WObj:= WobjCompressor1; MoveJ PlaceZhanbanA, v1000, fine, tGripper\\WObj:= WobjCompressor1; MoveJ PickB, v1000, fine, tGripper\\WObj:= WobjCompressor1; MoveJ VisionB , v1000, fine, tGripper\\WObj:=WobjCompressor1 ; MoveJ PlaceB, v1000, fine, tGripper\\WObj:=WobjCompressor1; MoveJ PZhanbanUpB, v1000, fine, tGripper\\WObj:= WobjCompressor1; MoveJ PZhanbanDownB, v1000, fine, tGripper\\WObj:= WobjCompressor1; MoveJ PlaceZhanbanB, v1000, fine, tGripper\\WObj:= WobjCompressor1; ENDPROC PROC rMoveAbsj() MoveAbsJ jposHome, v1000, fine, tGripper\\WObj:=wobj0; ENDPROC PROC rServer() SocketClose server_socket; SocketClose client_socket; SocketCreate server_socket; SocketBind server_socket, \, 3001; SocketListen server_socket; SocketAccept server_socket, client_socket\\ClientAddress:=client_ip; ENDPROC PROC rClient() SocketClose client_socket; SocketCreate client_socket; SocketConnect client_socket, \, 1000; SocketReceive client_socket \\Str:=stReceived; ENDPROC ENDMODULE