drl_start

이 함수는 DRL로 작성한 프로그램(태스크)을 로봇 컨트롤러에서 실행합니다.

자동 모드에서만 사용할 수 있습니다. 다른 모드에서는 false를 반환하고 “this command can only be used in auto mode. please change to auto mode as robot mode”를 출력합니다. 모드는 get_robot_mode가 반환하는 값으로 확인합니다.

정의
DRFLEx.h, CDRFLEx 클래스의 public 섹션

bool drl_start(ROBOT_SYSTEM eRobotSystem, string strDrlProgram) {
    return _drl_start(_rbtCtrl, eRobotSystem, strDrlProgram.c_str());
};

매개변수

매개변수 이름

자료형

기본값

설명

eRobotSystem

ROBOT_SYSTEM

열거형 정의를 참고하세요

strDrlProgram

string

실행할 프로그램 문자열입니다. DRL 프로그램 텍스트는 1,042,433바이트를 넘으면 안 됩니다.

반환값

값

유형

설명

0

int

오류

1

int

성공

참고

로봇이 STATE_EMERGENCY_STOP, STATE_SAFE_OFF, STATE_SAFE_OFF2, STATE_SAFE_STOP, STATE_SAFE_STOP2 상태이면 메시지 없이 false를 반환합니다.

요청이 거부되면 false를 반환합니다. true가 반환되어도 컨트롤러가 요청을 적용했다고 확신할 수 없습니다. get_robot_mode와 get_program_state는 이 CDRFLEx 인스턴스가 보낸 요청을 보고하므로 이 함수들로도 확인할 수 없습니다. 거부는 TOnLogAlarmCB로 보고됩니다.

예제

string strDrlProgram = "\r\n\
loop = 0\r\n\
while loop < 3:\r\n\
    movej([10.00, 10.00, 10.00, 10.00, 10.00, 10.00], vel=60, acc=60)\r\n\
    movel(posx(559, 434.5, 651.5, 0, 180, 0), vel=60, acc=60)\r\n\
    loop += 1\r\n";

if (drfl.get_robot_state() == STATE_STANDBY) {
    if (drfl.get_robot_mode() == ROBOT_MODE_AUTONOMOUS) {
        // 자동 모드
        ROBOT_SYSTEM eTargetSystem = ROBOT_SYSTEM_VIRTUAL;
        drfl.drl_start(eTargetSystem, strDrlProgram);
    }
}

참고

  • 로봇 운전 상태는 STATE_STANDBY여야 하며, 로봇이 자동 모드일 때 정상적으로 동작합니다.

  • DRL 프로그램은 부록의 프로그래밍 매뉴얼 문서에 따라 작성하세요.

이 함수로 DRL 언어로 작성한 모션 작업을 컨트롤러에서 직접 실행할 수 있습니다. 주로 문자열 형태로 정의한 DRL 명령으로 자율 작업이나 일괄 작업을 실행할 때 사용합니다. 이 함수를 호출하기 전에 컨트롤러가 대기 상태이고 자동 모드인지 확인하세요.