KUKA 온라인 측정 샘플 프로그램
프로그램 소개
기능 설명 |
사용자는 로봇 측에서Mech-Metrics를 트리거하여 Mech-MSR를 사용해 측정하고, Mech-Metrics로 측정 결과를 반환합니다. |
파일 경로 |
Mech-MSR 및 Mech-Metrics 소프트웨어 설치 디렉터리의 |
필요한 리소스 |
Mech-MSR솔루션 및 Mech-Metrics 프로젝트 |
사용 전제 조건 |
|
| 이 샘플 프로그램은 예시 프로그램일 뿐입니다. 사용자는 실제 상황에 맞춰 이 내용을 바탕으로 수정해야 하며, 해당 프로그램을 그대로 사용하지 않도록 하십시오. |
프로그램 해설
다음에는 MSR_METRICS_SAMPLE 샘플 프로그램의 코드와 관련 설명입니다.
&ACCESS RVP
&PARAM EDITMASK = *
&PARAM TEMPLATE = C:\KRC\Roboter\Template\vorgabe
DEF MSR_METRICS_SAMPLE( )
;FUNCTION: Test Metrics
INT MSR_Continuous_Mode,Measure_Result,MSR_Status
MSR_Continuous_Mode = 0
Measure_Result = 0
Failed_Count[1] = 0
Failed_Count[2] = 0
Failed_Count[3] = 0
MSR_Init_Socket("XML_Kuka_MSR",20,30,60)
MSR_Start_Measure(1,"Piece01","ABC",2,10,20,30,40,50,60,70,80,MSR_Continuous_Mode,MSR_Status)
IF MSR_Status <> 8100 THEN
MSR_LOG("Run failed!")
HALT;
ENDIF
MSR_Set_Piece_Info(1,"Piece01",MSR_Status)
IF MSR_Status <> 8103 THEN
MSR_LOG("Run failed!")
HALT;
ENDIF
;FOLD PTP P3 CONT Vel=100 % PDAT3 Tool[1] Base[0];%{PE}
;FOLD Parameters ;%{h}
;Params IlfProvider=kukaroboter.basistech.inlineforms.movement.old; Kuka.IsGlobalPoint=False; Kuka.PointName=P3; Kuka.BlendingEnabled=True; Kuka.MoveDataPtpName=PDAT3; Kuka.VelocityPtp=100; Kuka.CurrentCDSetIndex=0; Kuka.MovementParameterFieldEnabled=True; IlfCommand=PTP
;ENDFOLD
$BWDSTART = FALSE
PDAT_ACT = PPDAT3
FDAT_ACT = FP3
BAS(#PTP_PARAMS, 100.0)
;SET_CD_PARAMS (0)
PTP XP3 C_Dis
;ENDFOLD
MSR_Measure_Feature(1,1,MSR_Status)
IF MSR_Status <> 8101 THEN
MSR_LOG("Run failed!")
HALT;
ENDIF
;FOLD PTP P2 CONT Vel=100 % PDAT2 Tool[1] Base[0];%{PE}
;FOLD Parameters ;%{h}
;Params IlfProvider=kukaroboter.basistech.inlineforms.movement.old; Kuka.IsGlobalPoint=False; Kuka.PointName=P2; Kuka.BlendingEnabled=True; Kuka.MoveDataPtpName=PDAT2; Kuka.VelocityPtp=100; Kuka.CurrentCDSetIndex=0; Kuka.MovementParameterFieldEnabled=True; IlfCommand=PTP
;ENDFOLD
$BWDSTART = FALSE
PDAT_ACT = PPDAT2
FDAT_ACT = FP2
BAS(#PTP_PARAMS, 100.0)
;SET_CD_PARAMS (0)
PTP XP2 C_Dis
;ENDFOLD
MSR_Measure_Feature(1,1,MSR_Status)
IF MSR_Status <> 8101 THEN
MSR_LOG("Run failed!")
HALT;
ENDIF
;FOLD PTP P4 CONT Vel=100 % PDAT4 Tool[1] Base[0];%{PE}
;FOLD Parameters ;%{h}
;Params IlfProvider=kukaroboter.basistech.inlineforms.movement.old; Kuka.IsGlobalPoint=False; Kuka.PointName=P4; Kuka.BlendingEnabled=True; Kuka.MoveDataPtpName=PDAT4; Kuka.VelocityPtp=100; Kuka.CurrentCDSetIndex=0; Kuka.MovementParameterFieldEnabled=True; IlfCommand=PTP
;ENDFOLD
$BWDSTART = FALSE
PDAT_ACT = PPDAT4
FDAT_ACT = FP4
BAS(#PTP_PARAMS, 100.0)
;SET_CD_PARAMS (0)
PTP XP4 C_Dis
;ENDFOLD
MSR_Measure_Feature(1,1,MSR_Status)
IF MSR_Status <> 8101 THEN
MSR_LOG("Run failed!")
HALT;
ENDIF
MSR_End_Measure(1,Measure_Result,Failed_Count[],MSR_Status)
IF MSR_Status <> 8102 THEN
MSR_LOG("Run failed!")
HALT;
ENDIF
MSR_View_Piece_Data(1,"Piece01",MSR_Status)
IF MSR_Status <> 8104 THEN
MSR_LOG("Run failed!")
HALT;
ENDIF
WAIT SEC 1
END
다음 표는 위 절차에 대한 논리적 해석을 제공합니다. 위 코드에서 세미콜론(;)으로 시작하는 주석 처리된 행은 주석 처리된 내용이 해제되었음을 나타냅니다.
| 워크플로 | 코드와 설명 | ||
|---|---|---|---|
통신 초기화하기 |
|
||
측정을 시작하기 |
|
||
대상 물체를 Mech-Metrics에 전달하기 |
|
||
이동 로봇은 지정된 위치로 이동하여 특징 측정 작업을 수행하기 |
|
||
측정 종료하기 |
|
||
이력 데이터 조회하기 |
|