HYUNDAI 피킹 샘플 프로그램
이 부분에서는 간단한 인식과 이동을 완성하는 로봇 샘플 프로그램을 소개합니다.
이 부분 내용을 시작하기 전에 HYUNDAI 표준 인터페이스 통신 설정 작업을 완료했는지 확인하십시오. |
Mech-Vision을 통해 비전 인식을 실행하여 비전 결과를 획득하기
티치 펜던트 화면에서 왼쪽 상단에 있는 Program 구역을 클릭하여 입력 상자에서 9700을 입력하여 9700 프로그램을 엽니다.
Program File Format Version : 1.6 MechType: 739(HH4-01) TotalAxis: 6 AuxAxis: 0
REM VIS sample
'_
V500$="192.168.1.10"
V500%=8000
V501%=1
CALL 9821_MMH_OPEN
PRINT #0,"UDP OPEN OK !"
DELAY 1.0
'_
V503%=1
V504%=1
V505%=2
V506%=1
V507%=10
P500=P*
'_
CALL 9803_MMH_ChangVIS
IF (V504$ <> "1107") THEN
REM ERROR OCCURED
STOP
ENDIF
'_
CALL 9801_MMH_VIStrig
IF (V504$ <> "1102") THEN
REM ERROR OCCURED
STOP
ENDIF
'_
CALL 9802_MMH_VISresult
IF (V504$ <> "1100") THEN
REM ERROR OCCURED
STOP
ENDIF
'_
CALL 9822_MMH_CLOSE
'_
IF V505% = 2 THEN
FOR LV1%=1 TO VAL(V506$)
LV3%=LV1%-1
LV2%=V507%+LV3%
P[LV2%]=(0,0,0,0,0,0,&H0001)R
P[LV2%].X=V![500+LV3%*14]
P[LV2%].Y=V![501+LV3%*14]
P[LV2%].Z=V![502+LV3%*14]
P[LV2%].RX=V![503+LV3%*14]
P[LV2%].RY=V![504+LV3%*14]
P[LV2%].RZ=V![505+LV3%*14]
NEXT
'_
ELSE
FOR LV1%=1 TO VAL(V506$)
LV2%=V507%+LV1%-1
P[LV2%]=(0,0,0,0,0,0)A
P[LV2%].J1=V![508+LV3%*14]
P[LV2%].J2=V![509+LV3%*14]
P[LV2%].J3=V![510+LV3%*14]
P[LV2%].J4=V![511+LV3%*14]
P[LV2%].J5=V![512+LV3%*14]
P[LV2%].J6=V![513+LV3%*14]
NEXT
ENDIF
'_
'_
END
프로그램 논리 해석
-
4~9번째 줄: 로봇이 비전 시스템과 UDP 연결을 생성합니다. V500$ 변수 값은 IPC의 IP를 나타내고, V500% 변수 값은 Mech-Vision에서 설정한 포트 번호를 나타냅니다.
-
11번째 줄: V503% 변수 값은 Mech-Vision 프로젝트 번호를 나타냅니다.
-
12번째 줄: V504% 변수 값은 반환될 것으로 예상되는 비전 포인트의 수(범위: 0~4)를 나타내며 0은 모든 비전 포인트를 획득하기를 나타냅니다.
-
13번째 줄: V505% 변수 값은 포즈 유형을 나타냅니다. 1은 JPs, 2는 TCP입니다.
-
14번째 줄: V506% 변수 값은 Mech-Vision 프로젝트 번호를 나타냅니다.
-
15번째 줄: V507% 변수 값은 P변수의 초기 인덱스 값을 나타냅니다. 예를 들어, “V507%=10”이면 Mech-Vision에서 출력한 첫 번째 비전 포인트가 P[10]에 할당됨을 의미합니다.
-
18~22번째 줄: Mech-Vision 프로젝트 레시피를 설정합니다. 반환된 상태 코드가 1107이 아니면 레시피 설정에 실패했으며 프로그램 실행이 중지될 것임을 나타냅니다.
-
24~28번째 줄: Mech-Vision 프로젝트 실행을 트리거합니다. 반환된 상태 코드가 1102가 아니면 프로젝트 트리거에 실패했으며 프로그램 실행이 중지될 것임을 나타냅니다.
-
30~34번째 줄: Mech-Vision 프로젝트에서 출력한 비전 포인트를 획득합니다. 반환된 상태 코드가 1100이 아니면 결과 획득에 실패했으며 프로그램 실행이 중지될 것임을 나타냅니다.
-
36번째 줄: 로봇과 비전 시스템 사이의 UDP 연결이 끊어집니다.
-
38~49번째 줄: 비전 포인트의 포즈 유형은 TCP인 경우 P[LV2%]에 TCP 값을 할당합니다.
-
52~61번째 줄: 비전 포인트의 포즈 유형은 JPs인 경우 P[LV2%]에 관절 각도 값을 할당합니다.
Mech-Viz를 사용하여 경로를 계획하기
티치 펜던트 화면에서 왼쪽 상단에 있는 Program 구역을 클릭하여 입력 상자에서 9701을 입력하여 9701 프로그램을 엽니다.
Program File Format Version : 1.6 MechType: 739(HH4-01) TotalAxis: 6 AuxAxis: 0
REM VIZ-path sample
'_
V500$="192.168.1.10"
V500%=8000
V501% =1
CALL 9821_MMH_OPEN
PRINT #0,"UDP OPEN OK !"
DELAY 1.0
'_
V505%=1
P500=P*
'_
CALL 9804_MMH_StartVIZ
IF (V504$ <> "2103") THEN
REM ERROR OCCURED
STOP
ENDIF
'_
V507%=970
V505%=2
'_
CALL 9808_MMH_VIZpath
IF (V504$ <> "2100") THEN
REM ERROR OCCURED
STOP
ENDIF
'_
CALL 9805_MMH_StopVIZ
IF (V504$ <> "2104") THEN
REM ERROR OCCURED
STOP
ENDIF
'_
CALL 9822_MMH_CLOSE
'_
IF V505% = 2 THEN
'_
FOR LV1%=1 TO VAL(V506$)
LV3%=LV1%-1
LV2%=V507%+LV3%
P[LV2%]=(0,0,0,0,0,0,&H0001)R
P[LV2%].X=V![500+LV3%*14]
P[LV2%].Y=V![501+LV3%*14]
P[LV2%].Z=V![502+LV3%*14]
P[LV2%].RX=V![503+LV3%*14]
P[LV2%].RY=V![504+LV3%*14]
P[LV2%].RZ=V![505+LV3%*14]
NEXT
'_
ELSE
FOR LV1%=1 TO VAL(V506$)
LV2%=V507%+LV1%-1
P[LV2%]=(0,0,0,0,0,0)A
P[LV2%].J1=V![508+LV3%*14]
P[LV2%].J2=V![509+LV3%*14]
P[LV2%].J3=V![510+LV3%*14]
P[LV2%].J4=V![511+LV3%*14]
P[LV2%].J5=V![512+LV3%*14]
P[LV2%].J6=V![513+LV3%*14]
NEXT
ENDIF
'_
END
프로그램 논리 해석
-
4~9번째 줄: 로봇이 비전 시스템과 UDP 연결을 생성합니다. V500$ 변수 값은 IPC의 IP를 나타내고, V500% 변수 값은 Mech-Vision에서 설정한 포트 번호를 나타냅니다.
-
11번째 줄: V505% 변수 값은 포즈 유형을 나타냅니다. 1은 JPs, 2는 TCP입니다.
-
14~18번째 줄: Mech-Viz 프로젝트 실행을 트리거합니다. 반환된 상태 코드가 2103이 아니면 프로젝트 트리거에 실패했으며 프로그램 실행이 중지될 것임을 나타냅니다.
-
20번째 줄: V507% 변수 값은 P변수의 초기 인덱스 값을 나타냅니다. 예를 들어, “V507%=10”이면 Mech-Viz에서 출력한 첫 번째 웨이포인트가 P[10]에 할당됨을 의미합니다.
-
23~27번째 줄: Mech-Viz가 계획된 경로를 획득합니다. 반환된 상태 코드가 2100이 아니면 경로 획득에 실패했으며 프로그램 실행이 중지될 것임을 나타냅니다.
-
29~33번째 줄: Mech-Viz 프로젝트 실행을 종료합니다. 반환된 상태 코드가 2104가 아니면 프로젝트 실행 종료에 실패했으며 프로그램 실행이 중지될 것임을 나타냅니다.
-
35번째 줄: 로봇과 비전 시스템 사이의 UDP 연결이 끊어집니다.
-
39~49번째 줄: 웨이포인트의 포즈 유형은 TCP인 경우 P[LV2%]에 TCP 값을 할당합니다.
-
52~61번째 줄: 웨이포인트의 포즈 유형은 JPs인 경우 P[LV2%]에 관절 각도 값을 할당합니다.
샘플 프로그램 실행
샘플 프로그램을 실행하는 방법은 표준 인터페이스 통신 테스트 내용을 참조하십시오.