ABB 온라인 측정 샘플 프로그램

현재 최신 버전 (1.3.0)에 대한 매뉴얼을 보고 계십니다. 다른 버전에 액세스하려면 페이지 오른쪽 상단 모서리에 있는 '버전 전환' 버튼을 클릭하세요.

■ 현재 사용하고 있는 제품의 버전이 확실하지 않은 경우에는 언제든지 당사 기술 지원팀에 문의하시기 바랍니다.

프로그램 소개

기능 설명

사용자는 로봇 측에서Mech-Metrics를 트리거하여 Mech-MSR를 사용해 측정하고, Mech-Metrics로 측정 결과를 반환합니다.

파일 경로

Mech-MSR 및 Mech-Metrics 소프트웨어 설치 디렉터리의 Mech-MSR/center/MSR_Interface/ABB/sample/MSR_Metrics_Sample.

필요한 리소스

Mech-MSR솔루션 및 Mech-Metrics 프로젝트

사용 전제 조건

이 샘플 프로그램은 예시 프로그램일 뿐입니다. 사용자는 실제 상황에 맞춰 이 내용을 바탕으로 수정해야 하며, 해당 프로그램을 그대로 사용하지 않도록 하십시오.

프로그램 해설

다음에는 MSR_Metrics_Sample 샘플 프로그램의 코드와 관련 설명입니다.

MODULE MSR_Metrics_Sample
    LOCAL CONST jointtarget path1:=[[0,0,0,0,90,0],[9E+9,9E+9,9E+9,9E+9,9E+9,9E+9]];
    LOCAL CONST jointtarget path2:=[[0,0,0,0,100,0],[9E+9,9E+9,9E+9,9E+9,9E+9,9E+9]];
    LOCAL CONST jointtarget path3:=[[0,0,0,0,110,0],[9E+9,9E+9,9E+9,9E+9,9E+9,9E+9]];
    LOCAL VAR num MSR_Status:=0;
    LOCAL VAR num outvalue:=0;
    LOCAL VAR num measure_result:=0;
    LOCAL VAR num FailedCount{3}:=[0,0,0];
    PROC MSR_Metric_Test()
        AccSet 50,50;
        !set the velocity parameters
        VelSet 50,1000;
        !Init socket! Modify IP address;
        MSR_Init_Socket "127.0.0.1",4000,300;
        MSR_Open_Socket MSR_Status;
        IF MSR_Status=-99 THEN
            TPWrite "MSR: Communication Error";
            STOP;
        ENDIF
        WaitTime 1;
        MSR_Start_Measure 1,"Piece01","ABC",2,1,2,3,4,5,6,7,8,outvalue,MSR_Status;
        IF MSR_Status<> 8100 THEN
            TPWrite "MSR: RUN Error";
            STOP;
        ENDIF

        MSR_Set_Piece_Info 1,"ABC",MSR_Status;
        IF MSR_Status<> 8103 THEN
            TPWrite "MSR: RUN Error";
            STOP;
        ENDIF

        MoveAbsJ path1\NoEOffs,v3000,fine,tool0;
        MSR_Measure_Feature 1,1,MSR_Status;
        IF MSR_Status<> 8101 THEN
            TPWrite "MSR: RUN Error";
            STOP;
        ENDIF

        MoveAbsJ path2\NoEOffs,v3000,fine,tool0;
        MSR_Measure_Feature 1,1,MSR_Status;
        IF MSR_Status<> 8101 THEN
            TPWrite "MSR: RUN Error";
            STOP;
        ENDIF

        MoveAbsJ path3\NoEOffs,v3000,fine,tool0;
        MSR_Measure_Feature 1,1,MSR_Status;
        IF MSR_Status<> 8101 THEN
            TPWrite "MSR: RUN Error";
            STOP;
        ENDIF

        MSR_End_Measure 1,measure_result,FailedCount,MSR_Status;
        IF MSR_Status<> 8102 THEN
            TPWrite "MSR: RUN Error";
            STOP;
        ENDIF

        MSR_View_Piece_Data 1,"ABC",MSR_Status;
        IF MSR_Status<> 8104 THEN
            TPWrite "MSR: RUN Error";
            STOP;
        ENDIF

        MSR_Close_Socket;
        stop;
    ENDPROC
ENDMODULE

다음 표는 위 절차에 대한 논리적 해석을 제공합니다. 위 코드에서 세미콜론 !로 시작하는 주석 처리된 행은 주석 처리된 내용이 해제되었음을 나타냅니다.

워크플로 코드와 설명

변수를 정의하기

LOCAL CONST jointtarget path1 := [[0,0,0,0,90,0],[9E+9,9E+9,9E+9,9E+9,9E+9,9E+9]];
LOCAL CONST jointtarget path2 := [[0,0,0,0,100,0],[9E+9,9E+9,9E+9,9E+9,9E+9,9E+9]];
LOCAL CONST jointtarget path3 := [[0,0,0,0,110,0],[9E+9,9E+9,9E+9,9E+9,9E+9,9E+9]];
LOCAL VAR num MSR_Status:=0;
LOCAL VAR num outvalue:=0;
LOCAL VAR num measure_result:=0;
LOCAL VAR num FailedCount{pass:[3]}:=[0,0,0];
  • 지역 변수를 정의합니다. 위 지역 변수들은 분 프로그램 내에서만 유효합니다. 여기서 MSR_Status는 각 통신 명령의 반환 상태 코드를 수신하고 판단하는 데 사용됩니다. 사용자는 여러 측정 위치(path1, path2, path3 변수)를 티칭해야 합니다.

구체적인 티칭 방법은 자동 캘리브레이션의ABB 자동 캘리브레이션 장의 캘리브레이션 시작점 부분 작업을 참조하십시오.

가속도 및 속도 설정

AccSet 50, 50;
VelSet 50, 1000;
  • AccSet 50, 50: 가속도를 정상 값의 50%로 제한하고 가속률을 정상 값의 50%로 제한합니다.

  • VelSet 50, 1000: 속도를 프로그래밍 속도의 50% 로 설정하고, 최대 TCP 속도를 1000mm/s 로 설정합니다.

통신 초기화하기

MSR_Init_Socket "127.0.0.1",4000,300;
  • MSR_Init_Socket "127.0.0.1", 4000, 300: 통신 연결을 초기화하고, 통신 대상(IPC)의 IP 주소(127.0.0.1), 포트 번호(4000) 및 시간 초과 대기 시간(300초)을 지정합니다.

    사용자는 실제 상황에 따라 여기의 IPC IP 주소와 포트 번호를 수정하여 Mech-MSR에서 설정한 파라미터과 일치하도록 해야 합니다.

통신 연결 설정하기

MSR_Open_Socket MSR_Status;
IF MSR_Status=-99 THEN
    TPWrite "MSR: Communication Error";
    STOP;
ENDIF
WaitTime 1;
  • MSR_Open_Socket MSR_Status: 통신 연결을 설정하고 상태 코드를 MSR_Status에 저장합니다.

  • IF MSR_Status=-99 THEN …​ ENDIF: 상태 코드가 -99인 경우 통신 이상을 나타내며, 로봇 티치 펜던트에 “MSR: Communication Error”를 출력하고 프로그램을 중지합니다.

  • WaitTime 1: 대기 시간을 1초로 설정합니다.

측정 시작하기

MSR_Start_Measure 1,"Piece01","ABC",2,1,2,3,4,5,6,7,8,outvalue,MSR_Status;
IF MSR_Status<> 8100 THEN
    TPWrite "MSR: RUN Error";
    STOP;
ENDIF
  • MSR_Start_Measure 1, "Piece01", "ABC", 2, 1, 2, 3, 4, 5, 6, 7, 8, outvalue, MSR_Status: 대상 물체 번호가 1, 이름이 Piece01, SN이 ABC인 대상 물체에 대한 측정을 시작하도록 지정하고, 검사 모드를 부분 검사(2)로 지정하며, 사용자 정의 파라미터 8개(1, 2, 3, 4, 5, 6, 7, 8)를 지정하고, 반환값을 outvalue 위치에 저장하도록 지정하는 동시에 명령 상태 코드를 가져옵니다.

  • IF MSR_Status<> 8100 THEN …​ ENDIF: 상태 코드가 8100이 아닌 경우 측정 시작 명령 실행 이상을 나타내며, 티치 펜던트에 “MSR: RUN Error”를 출력하고 프로그램을 중지합니다.

    여기에서 설정한 검사 모드와 사용자 정의 파라미터는 Mech-Metrics에서 설정한 값과 일치해야 합니다.

대상 물체를 Mech-Metrics에 전달하기

MSR_Set_Piece_Info 1,"ABC",MSR_Status;
IF MSR_Status<> 8103 THEN
    TPWrite "MSR: RUN Error";
    STOP;
ENDIF
  • MSR_Set_Piece_Info 1, "ABC", MSR_Status: SN이 ABC인 대상 물체를 Mech-Metrics에 전달하도록 지정하고, 명령 상태 코드를 가져옵니다.

  • IF MSR_Status<> 8103 THEN …​ ENDIF: 상태 코드가 8103이 아닌 경우, 대상 물체 정보 전달 이상을 나타내며, 티치 펜던트에 “MSR: RUN Error”를 출력하고 프로그램을 중지합니다.

이동 로봇은 지정된 위치로 이동하여 특징 측정 작업을 수행하기

MoveAbsJ path1\NoEOffs,v3000,fine,tool0;
MSR_Measure_Feature 1,1,MSR_Status;
IF MSR_Status<> 8101 THEN
    TPWrite "MSR: RUN Error";
    STOP;
ENDIF
MoveAbsJ path2\NoEOffs,v3000,fine,tool0;
MSR_Measure_Feature 1,1,MSR_Status;
IF MSR_Status<> 8101 THEN
    TPWrite "MSR: RUN Error";
    STOP;
ENDIF
MoveAbsJ path3\NoEOffs,v3000,fine,tool0;
MSR_Measure_Feature 1,1,MSR_Status;
IF MSR_Status<> 8101 THEN
    TPWrite "MSR: RUN Error";
    STOP;
ENDIF
  • MoveAbsJ: ABB 로봇의 절대 위치 이동 명령어로, 로봇의 각 관절 축이 지정된 위치로 개별적으로 이동함을 의미합니다.

    • \NoEOffs: 이동이 외부 축의 영향을 받지 않음을 의미합니다.

    • v3000: 로봇의 속도는 3000mm/s입니다.

    • fine: 지정된 위치로 정확하게 이동합니다.

    • tool0: 이동 시 로봇이 사용하는 말단장치.

  • MSR_Measure_Feature 1, 1, MSR_Status: 로봇 측에서 대상 물체 번호가 1이고 측정 특징의 측정 번호가 1인 Mech-MSR 프로젝트 실행을 트리거하고, 명령어 상태 코드를 가져옵니다.

  • IF MSR_Status<> 8101 THEN…​ ENDIF: 특징 측정을 트리거할 때마다 상태 코드를 확인합니다. 상태 코드가 8101이 아닌 경우, 티치 펜던트에 “MSR: RUN Error”를 출력하고 프로그램을 중지합니다.

    각 호출의 특징 번호는 실제 상황에 따라 수정해야 합니다.

측정 종료하기

MSR_End_Measure 1,measure_result,FailedCount,MSR_Status;
IF MSR_Status<> 8102 THEN
    TPWrite "MSR: RUN Error";
    STOP;
ENDIF
  • MSR_End_Measure 1,measure_result,FailedCount,MSR_Status: 측정을 중지하고, 동시에 대상 물체의 판정 결과를 measure_result에 저장하며, 불합격 측정 항목 수를 FailedCount에 저장하고, 명령어 상태 코드를 가져옵니다.

  • IF MSR_Status<> 8102 THEN …​ ENDIF: 상태 코드가 8102가 아닌 경우 측정 종료 명령 실행 이상을 나타내며, 티치 펜던트에 “MSR: RUN Error”를 출력하고 프로그램을 중지합니다.

이력 데이터 조회하기

MSR_View_Piece_Data 1,"ABC",MSR_Status;
IF MSR_Status<> 8104 THEN
    TPWrite "MSR: RUN Error";
    STOP;
ENDIF
  • MSR_View_Piece_Data 1,"ABC",MSR_Status: 외부에서 대상 물체 SN을 전달하여 Mech-Metrics 소프트웨어 기본 화면을 전달된 번호(ABC)의 대상 물체로 전환하고, 명령 상태 코드를 가져옵니다.

  • IF MSR_Status<> 8104 THEN …​ ENDIF: 상태 코드가 8104가 아닌 경우 이력 데이터 조회 이상을 나타내며, 티치 펜던트에 “MSR: RUN Error”를 출력하고 프로그램을 중지합니다.

통신 연결 종료하기

MSR_Close_Socket;
stop;
ENDPROC
ENDMODULE

이 페이지가 도움이 되었습니까?

다음 방법을 통해 피드백을 보내주실 수 있습니다:

저희는 귀하의 개인정보를 소중히 다룹니다.

당사 웹사이트는 최상의 사용자 경험을 제공하기 위해 쿠키를 사용하고 있습니다. "모두 수락"을 클릭하시면 쿠키 사용에 동의하시는 것이며, "모두 거부"를 클릭하시면 이 웹사이트 방문 시 귀하의 정보가 추적되거나 기억되지 않도록 단일 쿠키만 사용됩니다.