TOnMonitoringWeldingDataCB

This callback is used for monitoring welding data in the robot controller. It is specifically triggered during the welding operation to track parameters such as welding current, voltage, and other relevant metrics in real time.

The registration function set_on_monitoring_welding_data is declared only when DRCF_VERSION is set to 2, for example with -DDRCF_VERSION=2. See DRCF Version Compatibility.

See Rules for callback functions.

Defined in: DRFLEx.h

// typedef (DRFLEx.h)
typedef void (*TOnMonitoringWeldingDataCB)(const LPROBOT_WELDING_DATA);

// internal definition
DRFL_API void _set_on_monitoring_welding_data(LPROBOTCONTROL pCtrl, TOnMonitoringWeldingDataCB pCallbackFunc);

// user-callable API (Welding Data Monitoring)
void set_on_monitoring_welding_data(TOnMonitoringWeldingDataCB pCallbackFunc)
{
    _set_on_monitoring_welding_data(_rbtCtrl, pCallbackFunc);
};

Parameter

Parameter Name

Data Type

Default Value

Description

pWeldingData

ROBOT_WELDING_DATA

Provides detailed information on the welding parameters including current, voltage, and status.

Return
None

Example

// Build with -DDRCF_VERSION=2
#include "DRFLEx.h"
#include <iostream>
#include <thread>
#include <chrono>
using namespace DRAFramework;
using namespace std;

// Callback for monitoring welding data
void OnMonitoringWeldingDataCB(const LPROBOT_WELDING_DATA pWeldingData)
{
    if (!pWeldingData) return;

    cout << "[WELDING DATA UPDATED]" << endl;
    cout << "Current: " << pWeldingData->_fActualCur << " A" << endl;
    cout << "Voltage: " << pWeldingData->_fActualVol << " V" << endl;
    cout << "Status: " << (pWeldingData->_iStatus == 1 ? "Welding in progress" : "Welding stopped") << endl;
    cout << "-----------------------------------" << endl;
}

int main()
{
    CDRFLEx drfl;

    // Connect to robot controller
    if (!drfl.open_connection("192.168.137.100")) {
        cout << "Failed to connect to controller." << endl;
        return -1;
    }

    // Register callback for welding data monitoring
    drfl.set_on_monitoring_welding_data(OnMonitoringWeldingDataCB);

    // Keep running (real-time loop)
    while (true)
        std::this_thread::sleep_for(std::chrono::milliseconds(100));

    drfl.close_connection();
    return 0;
}

Notes

  • This callback provides real-time welding data such as:
    - Welding current (in Amperes)
    - Welding voltage (in Volts)
    - Welding status (in progress or stopped)

  • This callback should only be used when the controller supports welding operations.

  • DRCF_VERSION == 2 is required for the callback to function correctly.

  • Common applications:
    - Monitoring welding quality in real time.
    - Logging welding parameters for quality control.
    - Adaptive control based on welding performance (current/voltage feedback).

  • Each callback receives the most recent data. If the callback takes longer than the data period (100 ms before DRCF 3.5, 20 ms from DRCF 3.5), intermediate samples are not delivered. Do not rely on receiving every sample (for example for integration or differentiation).