Skip to main content

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