get_robot_mode (수동 모드)
이 절에서는 수동(교시) 작업 중에 get_robot_mode를 사용하는 방법을 설명합니다. 이 함수는 이 CDRFLEx 인스턴스에 저장된 모드(초기값 ROBOT_MODE_MANUAL)를 반환합니다. set_robot_mode는 요청한 모드를 저장합니다. 컨트롤러에 안전 모드를 보내는 호출도 컨트롤러가 받아들이면 모드를 저장합니다. drl_stop은 수동 모드를 저장하고, set_safety_mode와 set_robot_control의 초기화 및 복구 옵션은 보낸 안전 모드를 저장하며, multi_jog, 모션 명령, 힘 제어(Force Control) 명령은 현재 안전 모드를 저장합니다. 저장된 모드는 수동 모드로 시작하며 컨트롤러에서 읽어 오지 않습니다. 따라서 컨트롤러가 이미 자동 모드이더라도 자동 모드 전용 함수를 쓰기 전에 set_robot_mode(ROBOT_MODE_AUTONOMOUS)를 호출하세요. 컨트롤러가 모드 변경을 받아들였는지 확인하려면 set_robot_mode의 반환값을 확인하세요.
일반적인 사용법
조그나 모션 명령을 보내기 전에 로봇의 현재 운전 모드를 확인합니다.
모드에 따라 GUI나 입력 권한을 자동으로 조정합니다.
수동 상태에서 의도하지 않은 자동 명령을 막습니다.
참고
일반적인 값:
ROBOT_MODE_MANUAL: 티치펜던트 또는 수동 제어ROBOT_MODE_AUTONOMOUS: 프로그램 또는 외부 제어수동 교시 중에는 ROBOT_MODE_MANUAL을 반환해야 합니다.
주의
set_robot_mode는 false를 반환하더라도 요청한 모드를 저장합니다. 그러면 get_robot_mode가 요청한 모드를 반환하고, 컨트롤러의 모드가 바뀌지 않았는데도 자동 모드나 수동 모드가 필요한 함수가 호출을 받아들입니다. set_robot_mode가 false를 반환하면 이후 set_robot_mode 호출이 true를 반환할 때까지 모드 제한이 있는 함수를 사용하지 마세요.
예제: 로봇이 수동 모드인지 확인
ROBOT_MODE mode = drfl.get_robot_mode();
if (mode == ROBOT_MODE_MANUAL) {
printf("Robot is in Manual mode. Jogging enabled.\n");
drfl.jog(JOG_AXIS_TASK_Y, MOVE_REFERENCE_BASE, 10.0f);
} else {
printf("Robot is not in Manual mode. Jogging disabled.\n");
}
팁
수동 모션이나 교시 전에 항상 수동 모드인지 확인하세요.
안전을 위해 자동 모드에서는 jog나 multi_jog 명령을 제한하세요.
교시 GUI나 원격 조그 제어 애플리케이션에 이 확인 절차를 넣으세요.