이전 버전(1.33.4)의 문서를 보고 있습니다. 이 버전은 계속 지원됩니다.
최신 버전 정보는 1.33.5에서 확인하세요.

set_on_monitoring_modbus (수동 모드)

이 절에서는 수동(교시) 작업 중에 set_on_monitoring_modbus로 로봇 컨트롤러와 PLC, 인버터 같은 외부 장치 사이에 주고받는 Modbus I/O 데이터를 실시간으로 모니터링하는 콜백 함수를 등록하는 방법을 설명합니다.

일반적인 사용법

  • 통신을 디버깅하기 위해 Modbus 코일/레지스터 상태를 관찰합니다.

  • 외부 PLC나 인버터의 실시간 신호(예: READY, RUN, FAULT, SPEED)를 모니터링합니다.

  • Modbus 트래픽을 기록하고 잘못된 주소나 값 갱신을 진단합니다.

참고

  • Modbus 데이터(코일, 디스크리트 입력, 홀딩 레지스터, 입력 레지스터)가 바뀔 때마다 콜백이 호출됩니다.

  • 연결한 후, 그리고 add_modbus_signal(수동 모드)로 Modbus 심볼을 정의한 후에 등록해야 합니다.

예제: Modbus 모니터링 콜백 등록 및 처리

// 1) 콜백 함수 정의
void OnMonitoringModbus(const LPMONITORING_MODBUS pModbusData) {
    for (int i = 0; i < pModbusData->_iRegCount; ++i) {
        printf("[Modbus Monitor] Symbol: %s | Value: %u\n",
                    pModbusData->_tRegister[i]._szSymbol,
                    pModbusData->_tRegister[i]._iValue);
    }
}

// 사전 조건:
// - 연결 완료(open_connection)
// - 수동(교시) 모드 활성
// - add_modbus_signal()로 Modbus 신호 등록 완료

// 2) Modbus 모니터링 콜백 함수 등록
drfl.set_on_monitoring_modbus(OnMonitoringModbus);
printf("[Modbus] Monitoring callback registered.\n");

// 3) 업데이트를 수신하도록 프로그램 실행 유지
while (true) {
    std::this_thread::sleep_for(std::chrono::seconds(1));
}

팁

  • 콜백 함수 규칙을 참고하세요.

  • 모니터링 이벤트를 일관되게 받으려면 모든 Modbus 태그가 등록되어 있고 접근 가능한지 확인하세요.

  • 댕글링 콜백을 피하려면 로봇 컨트롤러와 연결을 끊기 전에 등록을 해제하거나 모니터링을 중지하세요.