4.7.2. 로봇 작업프로그램
4.7.2. 로봇 작업프로그램
아래 코드는 Hi5제어기의 RS232 통신을 이용하여 비전시스템과 연동하는 로봇 작업 프로그램 예제입니다. HRVision 2.5D와 통신해야하는 부분에 아래 코드를 추가해 주십시오.
' P1, P2 : 로봇 파지점 P1=(X1,Y1,Z1,RX1,RY1,RZ1,CFG) ‘파지작업점 상단 P2=(X2,Y2,Z2,RX2,RY2,RZ2,CFG) ‘파지작업점 R1=(0,0,0,0,0,0)R R8=(0,0,0,0,0,0)R CLR232C 2 ‘COM2 Port Buffer Clear _TEINPUT=13 ‘Carriage Return _TEINPUT=10 ‘Line Feed V1$="" V2$="" S1 MOVE P,S=100%,A=0,T=1 ‘로봇 대기 위치 V3$="MODEL 01" PRINT #2,V3$ DELAY 1 V4$="START 05" ‘Depth Calculation PRINT #2,V4$ INPUT #2,V1$,4 V2$=LEFT$(V1$,2) IF V2$="OK" THEN GOTO *DepthCal ELSE GOTO *VisionNG ENDIF *DepthCal R1.CFG.REQ=2 PRINT #2,"SHIFT 1" WAIT R1.CFG.ASSIGN,3,*ERROR PRINT #0,"X :";R1.X,"Y :";R1.Y,"Z :";R1.Z LP1=P* ‘Current Robot Position S2 MOVE P,LP1+R1,S=20%,A=0,T=12 ‘Move Image Acqusition Position DELAY 0.5 CLR232C 2 V1$="" V2$="" V3$="MODEL 01" PRINT #2,V3$ DELAY 1 V4$="START 02" ‘2D Vision Calculation PRINT #2,V4$ INPUT #2,V1$,4 V2$=LEFT$(V1$,2) IF V2$="OK" THEN GOTO *VisionOK ELSE GOTO *VisionNG ENDIF *VisionOK DELAY 0.5 R8.CFG.REQ=2 PRINT #2,"SHIFT 8" WAIT R8.CFG.ASSIGN,3,*ERROR PRINT #0,"X :";R8.X,"Y :";R8.Y,"RZ :";R8.RZ R8.Z=R1.Z ‘수행할 작업 S3 MOVE P,P1+R8,S=80%,A=0,T=1 S4 MOVE L,P2+R8,S=80%,A=0,T=1 END *VisionNG PRINT #0,"Vision NG“ END *ERROR PRINT #0,"Comm. NG“ END
|
Hi4a 제어기를 사용할 경우에는 “SHIFT데이터” 수신 부분을 아래와 같이 변경하여야만 실행 됩니다.
R1.CFG=4 PRINT #2,"SHIFT 1" WAIT R1.CFG AND &B10000,3,*VisionNG
|
아래 코드는 Ethernet 통신을 수행할 경우의 로봇 작업 프로그램 예제입니다. HRVision 2.5D와 통신해야하는 부분에 아래 코드를 추가해 주십시오.
' P1, P2 : 로봇 파지점 P1=(X1,Y1,Z1,RX1,RY1,RZ1,CFG) ‘파지작업점 상단 P2=(X2,Y2,Z2,RX2,RY2,RZ2,CFG) ‘파지작업점 R1=(0,0,0,0,0,0)R R8=(0,0,0,0,0,0)R 'ENET Comm. Setup 'Vision PC ENET1.IP="10.8.1.179" ENET1.RPORT=2000 ENET1.LPORT=5000 ENET1.OPEN 1 _TEINPUT=13 ‘Carriage Return _TEINPUT=10 ‘Line Feed 'Buffer Clear CLR_RBUF ENET1 ‘ENET Buffer Clear V1$="" V2$="" S1 MOVE P,S=100%,A=0,T=1 ‘로봇 대기 위치 V3$="MODEL 01" PRINT ENET1,V3$ DELAY 1 V4$="START 05" ‘Depth Calculation PRINT ENET1,V4$ INPUT ENET1,V1$,4 V2$=LEFT$(V1$,2) IF V2$="OK" THEN GOTO *DepthCal ELSE GOTO *VisionNG ENDIF *DepthCal R1.CFG=17 PRINT ENET1," SHIFT 1" ‘Depth Data Request INPUT ENET1,R1,3,*ERROR ‘Shift Data Receive R1.CFG=32 PRINT #0,"X :";R1.X,"Y :";R1.Y,"Z :";R1.Z LP1=P* ‘Current Robot Position S2 MOVE P,LP1+R1,S=20%,A=0,T=12 ‘Move Image Acqusition Position DELAY 0.5 CLR_RBUF ENET1 ‘ENET Buffer Clear V1$="" V2$="" V3$="MODEL 01" PRINT ENET1,V3$ DELAY 1 V4$="START 02" ‘2D Vision Calculation PRINT ENET1,V4$ INPUT ENET1,V1$,4 V2$=LEFT$(V1$,2) IF V2$="OK" THEN GOTO *VisionOK ELSE GOTO *VisionNG ENDIF *VisionOK R1.CFG=17 PRINT ENET1," SHIFT 8" ‘Depth Data Request INPUT ENET1,R8,3,*ERROR ‘Shift Data Receive R1.CFG=32 PRINT #0,"X :";R8.X,"Y :";R8.Y,"RZ :";R8.RZ R8.Z=R1.Z ‘수행할 작업 S3 MOVE P,P1+R8,S=80%,A=0,T=1 S4 MOVE L,P2+R8,S=80%,A=0,T=1 END *VisionNG PRINT #0,"Vision NG“ END *ERROR PRINT #0,"Comm. NG“ END
|