socket internet avec python
socket internet avec python
PROC server_recover()
VAR socketdev server_socket;
VAR socketdev client_socket;
VAR string receive_string;
VAR string client_ip;
SocketClose server_socket;
SocketClose client_socket;
SocketCreate server_socket;
SocketBind server_socket, "192.168.0.1", 1025;
SocketListen server_socket;
SocketAccept server_socket,
client_socket\ClientAddress:=client_ip;
ERROR
IF ERRNO=ERR_SOCK_TIMEOUT THEN
RETRY;
ELSEIF ERRNO=ERR_SOCK_CLOSED THEN
RETURN;
ELSE
! No error recovery handling
ENDIF
ENDPROC
PROC main()
count:=0;
WaitTime\InPos, 1;
SocketSend client_socket \Str := "success";
!WaitTime\InPos, 3;
FOR count FROM 0 TO 5 DO
WaitTime\InPos, 0.1;
WaitTime\InPos, 0.2;
IF count = 0 THEN
SocketReceive client_socket \str :=receive_string\Time:=WAIT_MAX;
value1:=receive_string;
TPWrite " x point Value recieved"+" "+receive_string+"saved
value"+value1;
SocketSend client_socket\Str:="next_point";
TPWrite "Waiting for y point";
ELSEIF count = 1 THEN
SocketReceive client_socket \str :=receive_string\Time:=WAIT_MAX;
value2:=receive_string;
TPWrite " y point Value recieved"+" "+receive_string+"saved
value"+value1;
!SocketSend client_socket\Str:="next_point";
TPWrite "Waiting for beta point";
ELSEIF count = 4 THEN
SocketSend client_socket\Str:="next_point";
SocketReceive client_socket \str :=receive_string\Time:=WAIT_MAX;
value5:=receive_string;
TPWrite " beta point Value recieved"+" "+receive_string+"saved
value"+value1;
!SocketSend client_socket\Str:="next_point";
TPWrite "Waiting for gamma point";
! SocketSend client_socket\Str:="next_point";
TPWrite "all points recieved";
ENDIF
ENDFOR
cnt:=0;
value1g:=StrToVal(value1,pos1);
value2g:=StrToVal(value2,pos2);
value3g:=StrToVal(value3,pos3);
value4g:=StrToVal(value4,pos4);
value5g:=StrToVal(value5,pos5);
value6g:=StrToVal(value6,pos6);
objr.trans.x:=pos1;
objr.trans.y:=pos2;
objr.trans.z:=pos3;
objr.rot:= OrientZYX(pos6,pos5,pos4);
rtemp:=CRobT(\Tool:=bintool);
rtemp.trans.x:=pos1;
rtemp.trans.y:=pos2;
rtemp.trans.z:=pos3;
MoveL rtemp,v1000,z50,bintool\WObj:=wobj0;
WaitTime\InPos, 0.1;
rtemp.rot:=OrientZYX(pos6,pos5,pos4);
nobjr:=rtemp.rot;
rtemp.rot:=nobjr;
Movel rtemp,v300,z50,bintool\WObj:=wobj0;
!rpick:=rtemp;
!rpick.trans.z:=pos3-50;
!MoveJ rtemp,v1000,z50,bintool\WObj:=wobj0;
!set output2;
!SearchL\Stop, Input4, rtemp, rpick, v100, bintool\WObj:=wobj0;
!WaitDI Input4,1\MaxTime:=2\TimeFlag:=flag;
!IF flag = FALSE THEN
! MoveL readytoplace,v1000,z50,tool0\WObj:=wobj0;
!GOTO L1;
! TPErase;
! TPWrite "not product picked, trying again";
!ENDIF
!WaitTime\InPos, 0.1;
!Reset output1;
!set output1;
!rtemp.trans.z:=300;
!WaitTime\InPos, 0.1;
!MoveL rtemp,v1000,z50,bintool\WObj:=wobj0;
!WaitTime\InPos, 0.1;
!MoveL toBarcode,v500,z50,tool0\WObj:=wobj0;
!Set output3;
!WaitDI Input4,1;
!MoveJ scan,v1000,z50,tool0\WObj:=wobj0;
!MoveJ toBarcode, v1000, z50, tool0;
!Reset output3;
!MoveL readytoplace,v1000,z50,tool0\WObj:=wobj0;
!IF box = TRUE THEN
! MoveL BinB,v1000,z50,tool0\WObj:=wobj0;
! WaitTime\InPos, 0.1;
! Reset output2;
! box:=FALSE;
!ELSEIF Input1 = 1 THEN
! MoveL BinB,v1000,z50,tool0\WObj:=wobj0;
!WaitTime\InPos, 0.1;
! WaitTime\InPos, 0.1;
!Reset output2;
!ELSEIF box = FALSE THEN
!WaitTime\InPos, 0.1;
! MoveL reject, v1000, z50, tool0\WObj:=wobj0;
! WaitTime\InPos, 0.1;
! Reset output2;
!box:=TRUE;
!ELSE
!MoveL rhome,v1000,z50,tool0\WObj:=wobj0;
!WaitTime\InPos, 0.1;
!Reset output2;
! ENDIF
! MoveL BinA,v1000,z50,tool0\WObj:=wobj0;
!MoveL rhome,v1000,z50,tool0\WObj:=wobj0;
ENDWHILE
SocketClose server_socket;
SocketClose client_socket;
ENDWHILE
ERROR
IF ERRNO=ERR_SOCK_TIMEOUT THEN
RETRY;
ELSEIF ERRNO=SOCKET_CLOSED THEN
server_recover;
RETRY;
ELSEIF ERRNO=ERR_WHLSEARCH THEN
rtemp.trans.z:=300;
WaitTime\InPos, 0.1;
MoveL rtemp,v1000,z50,bintool\WObj:=wobj0;
MoveL rhome,v1000,z50,tool0\WObj:=wobj0;
WaitTime\InPos, 0.1;
again:=TRUE;
cnt:=1;
main;
Stop;
ELSE
! No error recovery handling
ENDIF
ENDPROC
PROC wz_binpicking()
WZBoxDef\Outside, shape3, low_point, high_point;
WZLimSup\Temp, wztemp1, shape3;
ENDPROC
ENDMODULE