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 |
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).