liminfo

FANUC Reference

FANUC TP/KAREL 프로그래밍 레퍼런스

31개 결과

FANUC Reference 소개

FANUC 로봇 프로그래밍 레퍼런스는 FANUC 산업용 로봇 프로그래밍의 31가지 핵심 주제를 다루는 검색 가능한 가이드입니다. 모션 명령 섹션에서는 가장 빠른 점간 이동의 Joint(J) 모션, 용접/도포에 사용하는 직선 TCP 경로의 Linear(L) 모션, 원호 보간의 Circular(C)/Arc(A) 모션, 위치 결정 정밀도와 코너링을 제어하는 FINE/CNT 종료 유형(CNT0~CNT100), PR[] 레지스터를 활용한 동적 위치 조정의 Offset/Tool_Offset을 상세히 다룹니다.

데이터 처리 항목에서는 4가지 레지스터 유형을 다룹니다: R[] 수치 레지스터(최대 200개, 산술/카운터), PR[] 포지션 레지스터(최대 100개, XYZ/Joint 좌표 저장, PR[1,3]으로 Z축 개별 접근), SR[] 문자열 레지스터(로깅/통신), AR[] 아규먼트 레지스터(서브프로그램 인수 전달). I/O 명령에는 DO[]/DI[] 디지털 I/O(PULSE/TIMEOUT 옵션), RO[]/RI[] 로봇 내부 I/O, GO[]/GI[] 그룹 I/O(멀티비트 정수 전송), AO[]/AI[] 아날로그 I/O(0~10V, 4~20mA)가 포함됩니다.

프로그램 흐름 제어(IF/JMP, SELECT 다중 분기, FOR 루프, CALL 동기/RUN 비동기 서브프로그램 호출, WAIT 조건/타임아웃), 좌표계 관리(UFRAME 사용자 프레임, UTOOL 툴 프레임 TCP 정의, JPOS/LPOS/CURPOS 위치 읽기), KAREL 고급 프로그래밍(Pascal 유사 문법, GET_POS_REG/SET_POS_REG, 파일 I/O), 주요 에러 코드(SRVO-001 비상정지, SRVO-023 과부하, MOTN-018 도달 불가, INTP-127 특이점)도 포함됩니다.

주요 기능

  • 모션 명령: J(조인트), L(직선, mm/sec), C(원호 경유점), A(아크 용접), FINE 정확 위치결정과 CNT0~100 코너 블렌딩
  • 4가지 레지스터: R[] 수치(200개, 산술/카운터), PR[] 포지션(100개, XYZ/Joint, PR[n,축] 개별 접근), SR[] 문자열, AR[] 아규먼트
  • I/O 명령: DO[]/DI[] 디지털(PULSE/TIMEOUT), RO[]/RI[] 로봇 내부, GO[]/GI[] 그룹 정수 전송, AO[]/AI[] 아날로그 0~10V/4~20mA
  • 프로그램 흐름: IF/JMP 조건 분기, SELECT 다중 분기(switch-case), FOR 루프, CALL(동기)/RUN(비동기) 서브프로그램 실행
  • 좌표계 설정: UFRAME[] 3점 교시법 사용자 프레임, UTOOL[] 6점 TCP 캘리브레이션 툴 프레임, JPOS/LPOS/CURPOS 위치 읽기
  • KAREL 프로그래밍: Pascal 유사 PROGRAM 구조, GET_POS_REG/SET_POS_REG PR[] 접근, DOUT/DIN/AOUT/AIN I/O 제어, 파일 I/O 데이터 로깅
  • Offset/Tool_Offset 모션 수정자: PR[]로 동적 위치 계산, VR[]과 VOFFSET으로 비전 가이드 보정
  • 에러 코드 문제 해결: SRVO-001(비상정지 해제/리셋), SRVO-023(페이로드 확인/충돌 점검), MOTN-018(도달범위/프레임 확인), INTP-127(특이점 회피)

자주 묻는 질문

이 레퍼런스에서 어떤 FANUC 프로그래밍 주제를 다루나요?

7개 카테고리를 다룹니다: 모션 명령(J, L, C, A 모션, FINE/CNT, 오프셋), 레지스터(R[], PR[], SR[], AR[]), I/O 명령(디지털, 로봇, 그룹, 아날로그), 프로그램 흐름(IF/JMP, SELECT, FOR, CALL/RUN, WAIT), 좌표계/프레임(UFRAME, UTOOL, 위치 읽기), KAREL 고급 프로그래밍, 에러 코드.

J 모션과 L 모션의 차이는 무엇인가요?

J(Joint) 모션은 각 축이 독립적으로 회전하여 목표점에 도달하므로 가장 빠르지만 경로가 곡선으로 예측 불가합니다. L(Linear) 모션은 TCP가 지정 속도(mm/sec)로 직선 경로를 따라 이동하므로, 용접, 도포, 팔레타이징 등 경로 제어가 필요한 작업에 필수입니다.

FINE과 CNT 종료 유형은 어떻게 동작하나요?

FINE은 다음 명령 실행 전에 정확한 목표 위치에 도달해야 하므로 최대 정밀도를 제공합니다. CNT0부터 CNT100까지 코너 블렌딩이 가능하며, CNT0은 거의 정확, CNT100은 최대 경로 라운딩입니다. CNT는 각 포인트에서 감속/가속을 피해 사이클 타임을 줄이지만 위치 정밀도가 떨어집니다.

포지션 레지스터로 동적 오프셋을 어떻게 사용하나요?

PR[1] = LPOS로 현재 TCP 위치를 저장하고, PR[1,3] = PR[1,3] + 50으로 Z축에 50mm를 추가한 후, L P[1] 500mm/sec FINE Offset,PR[1]로 모션에 적용합니다. Tool_Offset,PR[2]는 툴 좌표계 기준으로 오프셋을 적용합니다. 팔레트 패턴이나 비전 가이드 픽앤플레이스에 필수적입니다.

CALL과 RUN 서브프로그램 호출의 차이는 무엇인가요?

CALL은 서브프로그램을 동기적으로 실행하여 완료될 때까지 호출 프로그램이 대기합니다. RUN은 비동기적으로 병렬 실행하여 두 프로그램이 동시에 동작합니다. WAIT R[50] = 1로 RUN 서브프로그램 완료를 동기화합니다. CALL은 인수 전달도 지원합니다: CALL WELD_SEQ(1,100)은 AR[1]과 AR[2]에 값을 전달합니다.

UFRAME과 UTOOL 좌표계를 어떻게 설정하나요?

UFRAME(사용자 프레임)은 3점 교시법으로 작업면의 원점, X방향, Y방향 점을 SETUP > Frames > User Frame에서 정의하고 UFRAME_NUM = 1로 활성화합니다. UTOOL(툴 프레임)은 6점 또는 3점 TCP 캘리브레이션으로 도구 끝점 위치를 SETUP > Frames > Tool Frame에서 정의하고 UTOOL_NUM = 1로 활성화합니다.

KAREL로 어떤 고급 기능을 사용할 수 있나요?

KAREL은 TP 프로그램을 넘어서는 Pascal 유사 구조적 프로그래밍 언어입니다. XYZWPR 위치 변수, GET_POS_REG/SET_POS_REG로 PR[] 레지스터 읽기/쓰기(상태 확인 포함), DOUT/DIN/AOUT/AIN 직접 I/O 제어, 파일 I/O(OPEN FILE, READ, WRITE, CLOSE FILE)로 데이터 로깅, 설정 파일, 외부 통신을 지원합니다.

FANUC 에러 코드를 어떻게 해결하나요?

SRVO-001(비상정지): 비상정지 버튼을 시계방향으로 해제하고 TP에서 RESET, 서보 전원 ON 순서입니다. SRVO-023(과부하): SETUP > Motion에서 페이로드 설정 확인, 충돌 점검합니다. MOTN-018(도달 불가): 목표 좌표, UTOOL/UFRAME 설정, 축 리밋을 확인합니다. INTP-127(특이점): J 모션으로 특이점 우회, CNT 경유점 추가, 또는 $SINGULARITY_AVOIDANCE = 1을 설정합니다.