liminfo

KUKA Reference

KUKA KRL 프로그래밍/WorkVisual 레퍼런스

26개 결과

KUKA Reference 소개

KUKA KRL 레퍼런스는 KRC4 및 KRC5 컨트롤러를 탑재한 KUKA 산업용 로봇의 프로그래밍 언어인 KRL(KUKA Robot Language)의 검색 가능한 치트 시트입니다. 프로그램 구조(DEF...END 블록), 변수 선언(INT, REAL, BOOL, CHAR, E6POS, E6AXIS, FRAME 타입의 DECL), 제어 흐름(IF/ELSE/ENDIF, SWITCH/CASE/ENDSWITCH, FOR/WHILE/REPEAT 루프), 실행 제어(HALT 프로그램 정지, WAIT SEC 시간 대기, WAIT FOR 조건 대기) 등 KRL 기본 사항을 모두 다룹니다.

모션 명령 섹션에서는 세 가지 보간 유형의 상세 구문을 제공합니다. 가장 빠르지만 경로 예측이 불가능한 축 보간 이동 PTP, 정밀 작업용 직선 TCP 이동 LIN, 보조점과 끝점을 통한 원호 이동 CIRC가 있습니다. 상대 이동 명령(PTP_REL, LIN_REL), 속도 설정($VEL.CP로 m/s 경로 속도, PTP의 Vel 퍼센트), 그리고 C_PTP와 C_DIS 모션 플래그를 이용한 부드러운 코너 블렌딩을 위한 근사 위치 결정($APO.CPTP, $APO.CDIS)을 포함합니다.

디지털/아날로그 I/O 제어($IN[n], $OUT[n], $ANIN[n], $ANOUT[n], PULSE 출력), 시스템 타이머($TIMER[1-20]), SmartPad 코드 구성을 위한 FOLD 블록, 인터럽트 처리(WHEN/DO 조건의 INTERRUPT DECL, 즉시 정지 BRAKE, 경로 복귀 RESUME), 툴 및 베이스 좌표계($TOOL, $BASE, TOOL_DATA[n], BASE_DATA[n], 3점 캘리브레이션), 부하 데이터 설정($LOAD), 그리고 프로젝트 생성, EtherCAT I/O 맵핑, SIL2/PLd 준수 SafeOperation 안전 설정을 포함한 WorkVisual 오프라인 프로그래밍까지 다룹니다.

주요 기능

  • DEF/END 블록, DECL 변수 타입(INT, REAL, BOOL, E6POS, E6AXIS, FRAME), 제어 흐름문을 포함한 완전한 KRL 프로그램 구조
  • PTP(축 보간), LIN(직선), CIRC(원호) 모든 모션 명령과 PTP_REL/LIN_REL 상대 변형 및 속도 설정
  • C_PTP, C_DIS, C_ORI, C_VEL 플래그를 이용한 연속 경로의 부드러운 코너 블렌딩 근사 위치 결정($APO)
  • 공정 제어를 위한 디지털 I/O($IN/$OUT), 아날로그 I/O($ANIN/$ANOUT), PULSE 출력, 시스템 타이머($TIMER) 명령
  • WHEN/DO 조건의 INTERRUPT DECL, 비상 정지 BRAKE, 경로 복귀 RESUME을 포함한 인터럽트 프로그래밍
  • $TOOL, $BASE, TOOL_DATA, BASE_DATA, 3점 측정법, $LOAD 페이로드 설정을 포함한 툴 및 베이스 캘리브레이션
  • INI FOLD 초기화 패턴을 포함한 SmartPad 친화적 코드 구성 FOLD 블록 구문
  • 컨트롤러 설정(KRC4/KRC5), EtherCAT I/O 맵핑, SafeOperation 안전 설정, 배포를 위한 WorkVisual 프로젝트 워크플로우

자주 묻는 질문

KRL이란 무엇이고 어떤 KUKA 컨트롤러에서 지원하나요?

KRL(KUKA Robot Language)은 KUKA 산업용 로봇의 전용 프로그래밍 언어입니다. KRC4 및 KRC5 컨트롤러에서 실행되며 smartPAD 티치 펜던트나 WorkVisual 오프라인 소프트웨어로 프로그래밍합니다. DEF/END 프로그램 블록, 타입 지정 변수 선언(DECL), 전용 모션 명령을 갖춘 구조적 절차형 구문을 사용합니다. KR AGILUS부터 KR QUANTEC 시리즈까지 모든 KUKA 로봇이 KRL을 사용합니다.

PTP, LIN, CIRC 모션 명령의 차이점은 무엇인가요?

PTP(Point-to-Point)는 각 축이 독립적으로 최대 속도로 이동하여 가장 빠르지만 경로가 예측 불가능한 곡선입니다. LIN(Linear)은 TCP가 직선 경로를 따라 이동하며 용접, 절단, 정밀 핸들링에 필수적입니다. CIRC(Circular)는 보조점과 끝점으로 정의된 원호를 그립니다. PTP는 Vel을 퍼센트(1-100%)로, LIN과 CIRC는 m/s 절대 속도로 설정합니다. 위치 이동에는 PTP, 공정 핵심 경로에는 LIN/CIRC를 사용하세요.

KUKA에서 근사 위치 결정($APO)은 어떻게 작동하나요?

근사 이동은 로봇이 정확한 목표점에 정지하지 않고 모션 세그먼트 사이를 부드럽게 블렌딩합니다. PTP 근사에는 $APO.CPTP(0-100%), 거리 기반 근사에는 $APO.CDIS(mm)를 설정합니다. 모션 명령에 C_PTP나 C_DIS 플래그를 추가하세요. 시퀀스의 마지막 포인트(C_ 플래그 없음)는 정확히 도달합니다. 다점 경로에서 사이클 타임을 크게 줄일 수 있습니다.

KRL에서 디지털/아날로그 I/O는 어떻게 제어하나요?

디지털 I/O는 $OUT[n] = TRUE/FALSE로 출력을 설정하고 $IN[n]으로 입력을 읽습니다. WAIT FOR $IN[n]으로 신호 도착까지 대기합니다. 시간 제한 펄스는 PULSE($OUT[n], TRUE, 시간)으로 지정 시간 동안 출력을 활성화합니다. 아날로그 I/O는 $ANOUT[n]으로 전압/전류를 출력하고 $ANIN[n]으로 센서값을 읽습니다. 시스템 타이머 $TIMER[1-20]는 $TIMER_STOP으로 시작/정지를 제어하여 경과 시간을 측정합니다.

FOLD 블록이란 무엇이고 왜 사용하나요?

FOLD 블록(;FOLD ... ;ENDFOLD)은 SmartPad 티치 펜던트에서 여러 줄의 코드를 한 줄로 접어서 보여주는 KRL 코드 구성 기능입니다. $BWDSTART, LDAT_ACT, FDAT_ACT 할당 같은 구현 세부사항을 설명적 헤더 뒤에 숨겨 가독성을 높입니다. 프로그램 시작의 INI FOLD에는 속도, 좌표계, 공구 설정을 위한 BAS(#INITMOV, 0) 초기화 코드가 들어갑니다. 깔끔하고 운영자 친화적인 프로그램 유지에 필수적입니다.

KRL에서 비동기 이벤트 처리를 위한 인터럽트는 어떻게 작동하나요?

INTERRUPT DECL n WHEN 조건 DO 서브루틴()으로 선언하고, INTERRUPT ON n으로 활성화, INTERRUPT OFF n으로 비활성화합니다. 모션 중 조건이 트리거되면 로봇이 즉시 서브루틴을 실행합니다. 서브루틴 내에서 BRAKE로 즉시 정지하고, 필요한 WAIT FOR 조건을 처리한 후, RESUME으로 원래 경로로 복귀합니다. 생산 현장의 센서 트리거 정지, 부품 감지, 비상 처리에 핵심적입니다.

툴과 베이스 좌표계는 어떻게 캘리브레이션하나요?

툴(TCP)은 $TOOL = TOOL_DATA[n]으로 설정하며, 데이터에는 플랜지 기준 X, Y, Z 오프셋과 A, B, C 회전값이 포함됩니다. SmartPad에서 4점법이나 XYZ 참조법으로 정밀한 TCP 캘리브레이션을 수행합니다. 베이스 프레임은 $BASE = BASE_DATA[n]으로 3점법(원점, X축 방향, XY 평면 점)을 사용하여 작업 좌표계를 정의합니다. 안전한 동적 성능을 위해 항상 $LOAD에 페이로드 질량, 무게중심, 관성 모멘트를 설정하세요.

WorkVisual이란 무엇이고 컨트롤러에 프로그램을 어떻게 배포하나요?

WorkVisual은 프로젝트 설정, I/O 맵핑, 안전 구성, 프로그램 관리를 위한 KUKA 오프라인 엔지니어링 소프트웨어입니다. KRC4/KRC5 컨트롤러를 추가하여 프로젝트를 생성하고, EtherCAT 버스 토폴로지를 구성한 후 물리 I/O를 논리 신호($IN/$OUT 주소)에 맵핑합니다. SafeOperation에서 직교 작업 공간 제한, 축 모니터링, 안전 속도를 SIL2/PLd 준수에 맞게 설정합니다. Extras > Transfer > Deploy로 실제 컨트롤러에 배포하며 재시작이 필요합니다.