get_digital_input (자동 모드)

이 절에서는 자동(실행) 운전 중에 get_digital_input으로 센서나 외부 장비에 연결된 디지털 입력(DI) 채널의 상태를 읽는 방법을 설명합니다.

디지털 입력은 부품 감지 센서, 버튼 입력, 기계 준비 신호, 안전 인터록 같은 이진 신호를 받는 데 사용합니다.

DRCF_VERSION 3(기본값)에서는 이 함수를 사용하려면 setup_monitoring_version(1)이 필요합니다. 이를 호출하지 않으면 함수는 false를 반환하고 “Depreciated.. please make sure monitoring version..”을 출력합니다. open_connection을 호출할 때마다 setup_monitoring_version(1)을 다시 호출하세요.

일반적인 사용법

  • 파지하기 전에 센서가 부품을 감지할 때까지 기다립니다.

  • 로봇 동작을 외부 기계 신호와 동기화합니다.

  • 인터록 기반 시퀀스 로직을 구현합니다.

  • 자동 실행 중에 지그/고정구 상태를 모니터링합니다.

참고

  • DI 신호는 센서 유형에 따라 디바운스 로직이 필요한 경우가 많습니다.

  • 툴에 장착한 DI에는 get_tool_digital_input을 사용하세요.

예제: 부품 감지 센서 기다리기

// DI[0]이 TRUE가 될 때까지 대기(부품 있음)
while (!drfl.get_digital_input(GPIO_CTRLBOX_DIGITAL_INDEX_1)) {
    printf("Waiting for part...\n");
    std::this_thread::sleep_for(std::chrono::milliseconds(100));
}

printf("Part detected! Executing pick motion.\n");

float pick[6] = {250.f, 200.f, 180.f, 180.f, 0.f, 0.f};
float vel[2] = {80.f, 40.f}, acc[2] = {300.f, 120.f};
drfl.movel(pick, vel, acc);

이 예제에서는 로봇이 부품 감지 센서가 작동할 때까지 DI 채널을 계속 모니터링한 다음 픽업 동작을 합니다.

팁

  • 센서, 기계 준비 신호, 인터록에는 DI를 사용하세요.

  • 항상 센서 배선과 신호 극성을 확인하세요.

  • 자동 모드 루프를 안정적으로 유지하려면 20–100 ms의 폴링 주기를 사용하세요.

  • DO 신호와 함께 사용해 기계와 로봇을 동기화하여 제어하세요.