KUKA표준 인터페이스 명령어
이 부분에서는 KUKA로봇과 Mech-Mind 온라인 측정 시스템 간의 TCP 통신에서 사용되는 표준 인터페이스 명령어를 설명합니다. 여기서 로봇(클라이언트)은 Mech-Mind온라인 측정 시스템(서버)으로 명령어를 전송하고, Mech-Mind온라인 측정 시스템은 처리된 데이터를 로봇으로 반환합니다.
명령어 개요
| 명령어 이름 | 필수 호출 여부 | 설명 |
|---|---|---|
예 |
로봇과 통신하는 IPC의 IP 주소, 포트 번호 및 통신 시간 초과 대기 시간을 설정합니다. |
|
아니오 |
로봇이 Mech-Metrics에 프로젝트 전환 시작을 알립니다. |
|
예 |
로봇이 Mech-Metrics에 새 대상 물체 측정 시작을 알리고, 대상 물체 이름, 대상 물체 SN 및 기타 대상 물체 정보를 Mech-Metrics에 전송합니다. |
|
예 |
해당 측정 특징의 Mech-MSR프로젝트 실행을 트리거합니다. 여러 번 측정해야 하는 경우, 이 명령어를 여러 번 호출할 수 있습니다. |
|
예 |
로봇이Mech-Metrics에 측정 종료를 알리고, 대상 물체 측정 결과를 조회합니다. |
|
아니오 |
일부 시나리오에서는 측정 시작 시 대상 물체 SN을 가져올 수 없습니다. 예를 들어 측정 중 스캔하여 가져와야 하는 경우가 있습니다. 이 명령어는 대상 물체 측정 중 대상 물체 SN을 전달하는 데 사용됩니다. |
|
아니오 |
대상 물체 SN을 전달하여 Mech-Metrics 소프트웨어 기본 화면을 해당 대상 물체의 데이터 보기로 전환합니다. |
|
예 (자동 캘리브레이션 프로그램) |
로봇의 핸드-아이 캘리브레이션(외부 파라미터 캘리브레이션)에 사용됩니다 |
주의사항
시작하기 전에 다음 주의사항을 확인하시기 바랍니다:
-
KUKA로봇 명령어 호출에 관한 설명:
-
명령어의 형식 파라미터 리스트 중의 각 파라미터 사이를 쉼표로 구분합니다.
-
각 형식 파라미터 변수는 명령어에서만 유효한 지역 변수로 정의됩니다.
-
명령어의 형식 파라미터 리스트는 입력 파라미터 및 출력 파라미터의 정의를 지원합니다.
-
KUKA 로봇의 경우, 통신 초기화를 제외한 기타 명령어에는 TCP 프로토콜 통신 연결을 설정하고 끊는 로직이 내부에 포함되어 있어, 실행 전후에 연결을 자동으로 설정하고 끊습니다.
-
-
데이터 단위:
-
관절 각도의 단위는 도(°)입니다.
-
로봇의 플랜지 포즈 또는 말단장치 포즈는 위치와 포즈로 구성되며 위치는 XYZ 좌표로 표시되며 단위는 밀리미터(mm)입니다. 포즈는 오일러 각도로 표시되며 단위는 각도(°)입니다.
-
통신 초기화
이 명령어는 로봇과 온라인 측정 시스템 간의 TCP 프로토콜 통신 연결을 설정할 수 있습니다.
명령어 포맷
MM_Init_Socket(XML_Name,Alive_Flag,Recv_Flag,Time_Out)
파라미터를 입력하기
XML_Name
파라미터는 네트워크 구성 파일로서 문자열로 표시되며 대소문자를 구분합니다. 이 곳의 네트워크 구성 파일은 XML_Kuka_MSR.xml을 의미합니다. 이 파일은 이미 통신 구성 시 로봇에 복제한 것으로 파일의 구체적 내용은 다음과 같습니다.
<ETHERNETKRL>
<CONFIGURATION>
<EXTERNAL>
<IP>192.168.174.1</IP>
<PORT>4000</PORT>
</EXTERNAL>
<INTERNAL>
<ALIVE Set_Flag="20"/>
<BUFFERING Mode="FIFO" Limit="256"/>
<BUFFSIZE Limit="65534"/>
<TIMEOUT Connect="2000" Receive="5000"/>
<MESSAGES Display="enable" Logging="warning"/>
</INTERNAL>
</CONFIGURATION>
<RECEIVE>
<RAW>
<ELEMENT Tag="Buffer" Type="STREAM" Set_Flag="30" EOS="13,10|13|10"/>
</RAW>
</RECEIVE>
</ETHERNETKRL>
이 파일에서 사용자는 <IP>의 값이 IPC의 IP 주소이고, <PORT>의 값이 Mech-MSR 소프트웨어 툴 바의 로봇 통신 설정에서 설정한 호스트 포트 번호인지 확인해야 합니다.
Alive_Flag
이 파라미터는 XML_Kuka_MSR.xml 파일 중 <ALIVE> 탭의 Set_Flag 값입니다. 위 파일을 예로 들면 해당 파라미터의 값은 20로 설정해야 합니다. 이 매개 변수 값 은 ON 신호 에 대응 하 여 온라인 측정 시스템 이 명 과 성공 적 으로 통신 했 음 을 나타냅니다 .
Recv_Flag
이 파라미터 는 XML _ Kuka _ MSR . xml 파일중 <RECEIVE>중 Set _ Flag 값 을 나타냅니다 . 위 파일을 예로 들면 해당 파라미터의 값은 30로 설정해야 합니다. 이 매개 변수 값 은 ON 신호 에 대응 하 며 , 명 이 온라인 측정 시스템 에서 전송 과 데이터 를 수신 했 음 을 나타냅니다 .
Time_Out
이 매개 변수 는 통신 시간 초과 대기 시간 (초) 을 나타냅니다 .
예제
MM_Init_Socket("XML_Kuka_MSR",20,30,60)
위 의 예 는 XML _ Kuka _ MSR . xml 파일 중 구성 정보 에 따라 온라인 측정 시스템 과 명 간 의 TCP 프로토콜 통신 연결 을 설정 하 는 것 을 나타냅니다 .
프로젝트 전환
로봇이 Mech-Metrics에 프로젝트 전환 시작을 알립니다.
호출 시점
프로젝트 전환 시작 전.
명령어 형식
MSR_SW_PROJ(Robot_Id:IN,Job:IN,MSR_Status:OUT)
파라미터를 입력
Robot_Id
이 파라미터는 대상 물체 번호를 나타냅니다. 대상 물체 번호는 1~99 사이의 정수입니다. 지정한 대상 물체 번호는 대상 물체 번호 구성화면에서 이미 구성되어 있어야 합니다.. 데이터 유형은 num입니다.
Job
이 파라미터는 프로젝트 번호를 의미합니다. 지정한 프로젝트 번호는 프로젝트 전환 규칙을 통해 이미 구성되어 있어야 합니다. 데이터 유형은 num입니다.
파라미터를 출력
MSR_Status
이 파라미터는 명령어 상태 코드를 저장하는 데 사용됩니다.
8105: 명령어 실행 성공을 나타냅니다.
-99: 로봇 통신 오류를 나타냅니다.
예시
MSR_SW_PROJ(1,1,MSR_Status)
위 예시는 대상 물체 번호가 1이고 프로젝트 번호가 1인 프로젝트로 전환하며, 명령어 상태 코드를 MSR_Status에 저장함을 나타냅니다.
측정 시작하기
로봇이 Mech-Metrics에 새 대상 물체 측정 시작을 알리고, 대상 물체 이름, 대상 물체 SN 및 기타 대상 물체 정보를 Mech-Metrics에 전송합니다.
호출 시점
새 대상 물체 측정 시작 시.
명령어 형식
MSR_Start_Measure(RobotID:IN,Piece_Name:IN,Piece_SN:IN,Qc_Mode:IN,Custom_int1:IN,Custom_int2:IN,Custom_int3:IN,Custom_int4:IN,Custom_int5:IN,Custom_int6:IN,Custom_int7:IN,Custom_int8:IN,MSR_Continuous_Mode:OUT,MSR_Status:OUT)
입력 파라미터
RobotID
이 파라미터는 대상 물체 번호를 나타냅니다. 대상 물체 번호는 1~99 사이의 정수입니다. 지정한 대상 물체 번호는 대상 물체 번호 구성 화면에서 이미 구성되어 있어야 합니다. 데이터 유형은 num입니다.
Piece_Name
이 파라미터는 측정할 대상 물체의 이름을 나타냅니다. 대상 물체 이름은 문자와 숫자를 포함할 수 있으며, 길이는 20자를 초과할 수 없습니다. 데이터 유형은 string입니다.
Piece_SN
이 파라미터는 대상 물체 SN을 나타냅니다. 대상 물체 SN은 대상 물체 시리얼 넘버라고도 하며, 해당 대상 물체의 고유 식별자입니다. 대상 물체 SN은 문자와 숫자를 포함할 수 있으며, 길이는 30자를 초과할 수 없습니다. 데이터 유형은 string입니다.
Qc_Mode
이 파라미터는 대상 물체의 품질 검사 모드를 나타냅니다. 데이터 유형은 num입니다. 각 파라미터 값의 의미는 다음과 같습니다:
-
1: 전수 검사입니다.
-
2: 부분 검사입니다.
-
기타: 기존 설정을 사용합니다.
Custom_int1-Custom_int8
이 파라미터는 선택 파라미터이며, 대상 물체의 사용자 정의 정보를 제공하는 데 사용됩니다. 데이터 유형은 num입니다. 사용자 정의 파라미터는 Mech-Metrics에 더 많은 대상 물체 정보를 제공해야 할 때만 사용합니다. 이 명령어는 최대 8개의 사용자 정의 파라미터를 지원하며, 각 사용자 정의 파라미터의 값은 1~8 사이의 정수입니다.
사용자 정의 파라미터를 사용해야 하는 경우:
-
Mech-Metrics 소프트웨어 구성 화면 상단의 기능 영역에서 을 선택하고, 지정한 사용자 정의 파라미터(예: 사용자 정의 파라미터 1)에 대해 해당 파라미터 값(1~8)의 의미를 구성합니다.
-
이 명령어에서 지정한 사용자 정의 파라미터를 설정합니다.
출력 파라미터
MSR_Continuous_Mode
이 파라미터는 이번 실행이 연속 실행인지 단일 실행인지를 나타냅니다. 데이터 유형은 num입니다.
0: 단일 실행입니다.
1: 연속 실행입니다.
단일 실행으로 지정한 경우, 로봇 측에서는 다음 명령어를 한 번씩 실행합니다: 측정 시작하기 → 특징 측정 실행 → 측정 작업 종료. 여러 특징을 측정해야 하는 경우, 특징 측정 명령어를 여러 번 실행하십시오. 예를 들어 사용자가 두 개의 특징을 측정해야 하는 경우, 단일 실행 시 로봇 측에서 다음 명령어를 한 번씩 실행해야 합니다. 프로그램 시작 측정 시작하기 → 특징 측정 실행 → 특징 측정 실행 → 측정 작업 종료 프로그램 종료.
연속 실행으로 지정한 경우, 로봇 측에서 한 라운드의 명령어를 실행한 후 측정 시작하기 위치로 돌아가 반복 실행합니다. 특정 라운드의 측정 시작하기에서 단일 실행이 반환되면, 로봇 프로그램은 해당 라운드의 명령어 실행을 완료한 후 중지됩니다.
|
MSR_Status
이 파라미터는 명령어 상태 코드를 저장하는 데 사용됩니다.
8100: 명령어 실행 성공을 나타냅니다.
-99: 로봇 통신 오류를 나타냅니다.
예시
MSR_Start_Measure(1,"zcl","ABC",2,10,20,30,40,50,60,70,80,MSR_Continuous_Mode,MSR_Status)
위 예시는 대상 물체 번호가 1, 이름이 zc1, SN이 ABC인 대상 물체에 대한 측정을 시작하고, 8개의 사용자 정의 파라미터를 지정함을 나타냅니다.
특징 측정 실행
해당 측정 특징의 Mech-MSR프로젝트 실행을 트리거합니다.
호출 시점
로봇이 측정 특징 촬영 위치에 도달했습니다.
명령어 형식
MSR_Measure_Feature("RobotID:IN","Index_Num:IN","MSR_Status:OUT")
파라미터를 입력
RobotID
이 파라미터는 대상 물체 번호를 나타냅니다. 대상 물체 번호는 1~99 사이의 정수입니다. 지정한 대상 물체 번호는 대상 물체 번호 구성화면에서 이미 구성되어 있어야 합니다.. 데이터 유형은 num입니다.
Index_Num
이 파라미터는 측정할 특징의 측정 번호를 나타냅니다. 데이터 유형은 num입니다. 측정 번호는 해당 특징의 고유 식별자입니다. 측정 특징 번호는 1~999 사이의 정수입니다.
파라미터를 출력
MSR_Status
이 파라미터는 명령어 상태 코드를 저장하는 데 사용됩니다.
8101: 명령어 실행 성공을 나타냅니다.
-99: 로봇 통신 오류를 나타냅니다.
예시
MSR_Measure_Feature(1,1,MSR_Status)
위 예시는 로봇 측에서 대상 물체 번호가 1이고 측정 특징의 측정 번호가 1인 Mech-MSR 프로젝트 실행을 트리거하고, 명령어 상태 코드를 MSR_Status에 저장함을 나타냅니다.
측정 작업 종료
로봇이Mech-Metrics에 측정 종료를 알리고, 대상 물체 측정 결과를 조회합니다.
호출 시점
마지막 측정 특징의 촬영이 완료되어 대상 물체 측정이 완료되었습니다.
명령어 형식
MSR_End_Measure(Robot_ID:IN,Judge:OUT,Failed_Count[]:OUT,MSR_Status:OUT)
파라미터를 입력
Robot_ID
이 파라미터는 대상 물체 번호를 나타냅니다. 대상 물체 번호는 1~99 사이의 정수입니다. 지정한 대상 물체 번호는 대상 물체 번호 구성화면에서 이미 구성되어 있어야 합니다.. 데이터 유형은 num입니다.
파라미터를 출력
Judge
이 파라미터는 대상 물체 판정 결과를 저장합니다. 1은 정상, 0은 불량을 의미합니다. 데이터 유형은 num입니다.
Failed_Count[]
이 파라미터는 숫자 레지스터 번호를 나타내며, 대상 물체의 측정 항목 수를 저장하는 데 사용됩니다. 데이터 유형은 num입니다. 구체적인 내용은 다음과 같습니다:
-
Failed_Count[1]은 대상 물체가 1급 공차대를 초과한 측정 항목 수를 저장합니다.
-
Failed_Count[2]는 대상 물체가 2급 공차대를 초과한 측정 항목 수를 저장합니다.
-
Failed_Count[3]은 대상 물체가 3급 공차대를 초과한 측정 항목 수를 저장합니다.
MSR_Status
이 파라미터는 명령어 상태 코드를 저장하는 데 사용됩니다.
8102: 명령어 실행 성공을 나타냅니다.
-99: 로봇 통신 오류를 나타냅니다.
예시
MSR_End_Measure(1,MSR_Judge,Failed_Count[],MSR_Status)
위 예시는 로봇이 Mech-Metrics에 측정 종료(대상 물체 번호 1)를 알리고, 동시에 대상 물체 판정 결과를 Measure_Result에 저장하며, 측정 항목 수를 Failed_Count[]에 저장하고, 명령어 상태 코드를 MSR_Status에 저장함을 나타냅니다.
측정 중 대상 물체 SN 전달
일부 시나리오에서는 측정 시작 시 대상 물체 SN을 가져올 수 없습니다. 예를 들어 측정 중 스캔하여 가져와야 하는 경우가 있습니다. 이 명령어는 대상 물체 측정 중 대상 물체 SN을 전달하는 데 사용됩니다.
호출 시점
대상 물체 측정 과정 중 임의의 시점.
명령어 형식
MSR_Set_Piece_Info(Robot_Id:IN,Piece_Sn:IN,MSR_Status:OUT)
파라미터를 입력
Robot_Id
이 파라미터는 대상 물체 번호를 나타냅니다. 대상 물체 번호는 1~99 사이의 정수입니다. 지정한 대상 물체 번호는 대상 물체 번호 구성화면에서 이미 구성되어 있어야 합니다.. 데이터 유형은 num입니다.
Piece_Sn
이 파라미터는 대상 물체 SN를 나타냅니다. 대상 물체 SN은 대상 물체 시리얼 넘버라고도 하며, 해당 대상 물체의 고유 식별자입니다. 대상 물체 SN은 문자와 숫자를 포함할 수 있으며, 길이는 30자를 초과할 수 없습니다. 데이터 유형은 string입니다.
파라미터를 출력
MSR_Status
이 파라미터는 명령어 상태 코드를 저장하는 데 사용됩니다.
8103: 명령어 실행 성공을 나타냅니다.
-99: 로봇 통신 오류를 나타냅니다.
예시
MSR_Set_Piece_Info(1,"ert",MSR_Status)
이 예시는 로봇이 Mech-Metrics에 SN이 Jert인 대상 물체(대상 물체 번호 1)를 전달함을 나타냅니다.
대상 물체 이력 데이터 조회하기
외부에서 대상 물체 SN을 전달하여 Mech-Metrics 소프트웨어 기본 화면을 전달된 번호의 대상 물체로 전환합니다.
호출 시점
비측정 중의 임의의 시점.
명령어 형식
MSR_View_Piece_Data(Robot_Id,Piece_Sn:IN,MSR_Status:OUT)
파라미터를 입력
Robot_Id
이 파라미터는 대상 물체 번호를 나타냅니다. 대상 물체 번호는 1~99 사이의 정수입니다. 데이터 유형은 num입니다.
Piece_Sn
이 파라미터는 대상 물체 SN를 나타냅니다. 대상 물체 SN은 대상 물체 시리얼 넘버라고도 하며, 해당 대상 물체의 고유 식별자입니다. 대상 물체 SN은 문자와 숫자를 포함할 수 있으며, 길이는 30자를 초과할 수 없습니다. 데이터 유형은 string입니다.
파라미터를 출력
MSR_Status
이 파라미터는 명령어 상태 코드를 저장하는 데 사용됩니다.
8104: 명령어 실행 성공을 나타냅니다.
-99: 로봇 통신 오류를 나타냅니다.
예시
MSR_View_Piece_Data(1,"ert",MSR_Status)
위 예시는 로봇이 대상 물체 SN을 Mech-Metrics에 전달하고(대상 물체 번호 1), Mech-Metrics 소프트웨어 기본 화면을 해당 대상 물체의 데이터 보기로 전환하며, 명령어 상태 코드를 MSR_Status에 저장함을 나타냅니다.
캘리브레이션
이 명령어는 로봇 핸드-아이 캘리브레이션(카메라 외부 파라미터 캘리브레이션)에 사용됩니다. 이 명령어는 Mech-MSR카메라 메뉴 바에 있는 3D 카메라 캘리브레이션도구와 함께 사용해야 합니다.
호출 순서
정식 측정 전에 이 명령어를 호출하여 로봇 핸드-아이 캘리브레이션을 수행해야 합니다.
명령어 형식
MM_Calib(Move_Type,PosJps,WaitTime,E1)
파라미터를 입력
{Move_Type}
이 파라미터는 로봇의 이동 유형이며, 유효한 값은 1 또는 2입니다.
-
1: 직선 운동.
-
2: 관절 운동.
{Pos_Jps}
이 파라미터는 캘리브레이션 포인트의 포즈 유형을 지정하며, 유효한 값은 1 또는 2입니다.
-
1: 말단장치 포즈.
-
2: 관절 각도.
{Wait_time}
이 파라미터는 로봇이 캘리브레이션 포인트 위치로 이동한 후 흔들림을 피하기 위해 기다리는 시간입니다. 기본값은 2(s)입니다. 단위는 초입니다. 데이터 유형은 num입니다.
{Ext}
이 파라미터는 외부 축 데이터를 지정합니다. 단위는 밀리미터입니다. 7번째 축이 존재하고 현장에서 로봇이 이를 제어하는 경우, 이 파라미터는 특정 외부 축 데이터로 설정해야 합니다. 그렇지 않으면, 이 파라미터는 0으로 설정해야 합니다.
파라미터를 출력
TOP_Status
명령어 상태 코드를 저장하는 데 사용됩니다.
예시
MM_Calib(2,1,2,0)
위의 예시에서, 캘리브레이션 포인트의 포즈 형식은 말단장치 포즈로 표현됩니다. 로봇은 관절 각도 유형을 기반으로 캘리브레이션 포인트로 이동한 후 2초 동안 대기합니다.