TOnMonitoringAnalogWeldingDataCB

이 콜백 함수로 용접 작업 중 로봇 컨트롤러의 아날로그 용접 신호(예: 전류/전압 아날로그 피드백)를 모니터링합니다. 갱신될 때마다 자동으로 호출됩니다.

등록 함수 set_on_monitoring_analog_welding_data는 DRCF_VERSION이 2일 때만 선언됩니다(예: -DDRCF_VERSION=2). DRCF 버전 호환성을 참고하세요.

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

정의 위치: DRFLEx.h

// typedef 정의(DRFLEx.h)
typedef void (*TOnMonitoringAnalogWeldingDataCB)(const LPMONITORING_ALALOG_WELDING);

// 등록 API(내부 + 래퍼)
DRFL_API void _set_on_monitoring_analog_welding_data(LPROBOTCONTROL pCtrl,
                                                     TOnMonitoringAnalogWeldingDataCB pCallbackFunc);
void set_on_monitoring_analog_welding_data(TOnMonitoringAnalogWeldingDataCB pCallbackFunc)
{
    _set_on_monitoring_analog_welding_data(_rbtCtrl, pCallbackFunc);
};

매개변수

매개변수 이름

자료형

기본값

설명

pAnalogWeld

MONITORING_ALALOG_WELDING

아날로그 용접 피드백(예: 전류/전압 채널, 상태)을 담은 구조체의 포인터입니다.

반환값
없음

예제

#include "DRFLEx.h"
#include <iostream>
#include <thread>
#include <chrono>
#include <iomanip>
using namespace DRAFramework;
using namespace std;

// 아날로그 용접 피드백 콜백 함수(DRCF v2)
void OnMonitoringAnalogWeldingDataCB(const LPMONITORING_ALALOG_WELDING pAnalogWeld)
{
    if (!pAnalogWeld) return;

    cout << fixed << setprecision(2);
    cout << "[WELD-ANALOG] updated" << endl;

    // 전류/전압 아날로그 측정값
    cout << "Current(A): " << pAnalogWeld->_fActualCur << " | "
         << "Voltage(V): " << pAnalogWeld->_fActualVol << 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_analog_welding_data(OnMonitoringAnalogWeldingDataCB);

    // 갱신을 수신하도록 실행 유지
    while (true) std::this_thread::sleep_for(std::chrono::milliseconds(100));

    drfl.close_connection();
#else
    cout << "TOnMonitoringAnalogWeldingDataCB requires DRCF_VERSION == 2." << endl;
#endif
    return 0;
}

참고

  • 아날로그 용접 피드백을 바탕으로 한 품질 모니터링, 추적성 기록, 적응형 제어에 사용하세요.

  • 콜백은 호출될 때마다 가장 최근 데이터를 받습니다. 콜백 실행 시간이 데이터 주기(DRCF 3.5 이전 100 ms, DRCF 3.5부터 20 ms)보다 길면 그 사이의 샘플은 전달되지 않습니다. 모든 샘플을 받는다고 가정하지 마세요(예: 적분이나 미분).