TOnMonitoringDigitalWeldingDataCB
이 콜백 함수로 용접 작업 중 로봇 컨트롤러의 디지털 용접 신호(예: 용접 상태, 오류 플래그 등)를 모니터링합니다. 사용자는 이 콜백으로 용접 작업 상태나 안전 이벤트 같은 디지털 피드백을 추적할 수 있습니다.
디지털 용접 데이터가 갱신되면 자동으로 호출됩니다.
콜백 함수 규칙을 참고하세요.
정의 위치: DRFLEx.h
// typedef 정의(DRFLEx.h)
typedef void (*TOnMonitoringDigitalWeldingDataCB)(const LPMONITORING_DIGITAL_WELDING);
// 내부 함수 정의(실시간)
DRFL_API void _set_on_monitoring_digital_welding_data(LPROBOTCONTROL pCtrl,
TOnMonitoringDigitalWeldingDataCB pCallbackFunc);
// 사용자용 함수
void set_on_monitoring_digital_welding_data(TOnMonitoringDigitalWeldingDataCB pCallbackFunc)
{
_set_on_monitoring_digital_welding_data(_rbtCtrl, pCallbackFunc);
};
매개변수
매개변수 이름 |
자료형 |
기본값 |
설명 |
|---|---|---|---|
pDigitalWeld |
상태 플래그, 오류, 이진 신호 상태 같은 디지털 용접 피드백을 담은 구조체입니다. |
반환값
없음
예제
#include "DRFLEx.h"
#include <iostream>
#include <thread>
#include <chrono>
using namespace DRAFramework;
using namespace std;
// 디지털 용접 데이터 콜백 함수
void OnMonitoringDigitalWeldingDataCB(const LPMONITORING_DIGITAL_WELDING pDigitalWeld)
{
if (!pDigitalWeld) return;
cout << "[DIGITAL WELDING DATA UPDATED]" << endl;
// 디지털 상태 표시
cout << "Welding Status: " << (pDigitalWeld->_iStatus ? "Active" : "Inactive") << endl;
// 예: 보고된 오류가 있는지 확인
cout << "Error flag: " << (pDigitalWeld->_iError ? "Error present" : "No error") << endl;
}
int main()
{
#if DRCF_VERSION == 2
CDRFLEx drfl;
if (!drfl.open_connection("192.168.137.100")) {
cout << "Failed to connect to controller." << endl;
return -1;
}
// 디지털 용접 모니터링 콜백 함수 등록
drfl.set_on_monitoring_digital_welding_data(OnMonitoringDigitalWeldingDataCB);
// 갱신을 모니터링하도록 실행 유지
while (true) std::this_thread::sleep_for(std::chrono::milliseconds(100));
drfl.close_connection();
#else
cout << "TOnMonitoringDigitalWeldingDataCB requires DRCF_VERSION == 2." << endl;
#endif
return 0;
}
참고
이 콜백은 다음과 같은 디지털 용접 신호를 실시간으로 제공합니다.
- 용접 상태(활성 또는 비활성)
- 용접 중 오류 플래그나 경고
- 용접 공정과 관련된 기타 디지털 신호의 상태DRCF_VERSION == 2일 때만 사용할 수 있습니다.
일반적인 사용 사례:
- 용접 진행 상황과 오류 모니터링
- 오류가 감지되면 알람이나 수정 조치 실행
- 진단과 문제 해결을 위한 디지털 상태 기록콜백은 호출될 때마다 가장 최근 데이터를 받습니다. 콜백 실행 시간이 데이터 주기(DRCF 3.5 이전 100 ms, DRCF 3.5부터 20 ms)보다 길면 그 사이의 샘플은 전달되지 않습니다. 모든 샘플을 받는다고 가정하지 마세요(예: 적분이나 미분).