6.4.1 Welding Tutorials
The Welding Tutorials section provides examples for controlling welding applications using the Doosan Robotics API. It covers both analog and digital interfaces, along with weaving (oscillation) motion, parameter adjustment, and TCP calibration.
These examples demonstrate how to integrate the welding interface with a real robot motion sequence to achieve synchronized weld control.
Tutorial Flow
Analog Welding Control – Configure and adjust analog welding conditions.
Digital Welding Control (EtherNet/IP) – Set up digital interface and process mapping.
Weaving Patterns – Apply trapezoidal, zigzag, circular, or sinusoidal weaving motion.
Real-time Parameter Adjustment – Modify welding conditions dynamically during operation.
Welding TCP Calibration – Calibrate the welding tool center point (TCP).
Monitoring & Signal Output – Monitor welding data and control digital welding signals.
Analog Welding Control
Purpose
Enable analog welding control interface and set base welding conditions
such as voltage, current, and wire feed speed.
CONFIG_ANALOG_WELDING_INTERFACE analog_if{};
CONFIG_ANALOG_WELDING_SETTING analog_set{};
// Enable analog interface
Drfl.app_weld_enable_analog(&analog_if);
// Set analog welding condition
analog_set._fVoltage = 22.5f;
analog_set._fCurrent = 160.0f;
analog_set._fWireFeedSpeed = 6.5f;
Drfl.app_weld_set_weld_cond_analog(&analog_set);
Check
Analog interface is activated successfully,
and the configured parameters (voltage/current/feed) are applied to the external welder.
Digital Welding Control (EtherNet/IP)
Purpose
Establish communication with the welder through EtherNet/IP
and configure both R2M (Robot-to-Machine) and M2R (Machine-to-Robot) signals.
CONFIG_DIGITAL_WELDING_INTERFACE eip_if{};
CONFIG_DIGITAL_WELDING_SETTING eip_set{};
// Set up EtherNet/IP process interface
Drfl.app_weld_set_interface_eip_r2m_process(&eip_if);
Drfl.app_weld_set_interface_eip_m2r_monitoring(&eip_if);
// Enable digital interface
Drfl.app_weld_enable_digital(&eip_set);
Check
Digital interface activates successfully and EtherNet/IP connection status is valid.
Weaving Patterns
Purpose
Configure and apply a weaving pattern (trapezoidal, zigzag, circular, or sinusoidal)
to simulate weld bead oscillation.
CONFIG_TRAPEZOID_WEAVING_SETTING weave{};
weave._fOffsetY = 2.0f;
weave._fOffsetZ = 1.0f;
weave._fWeavingWidth = 5.0f;
weave._fWeavingCycle = 3.0f;
Drfl.app_weld_weave_cond_trapezoidal(
weave._fOffsetY, weave._fOffsetZ, 0.0f,
weave._fWeavingWidth, weave._fWeavingCycle
);
Check
The robot follows the configured oscillation pattern
and maintains consistent bead width across the welding path.
Real-time Parameter Adjustment
Purpose
Adjust welding parameters dynamically during operation for adaptive control.
bool enable = true;
float new_voltage = 23.0f;
float new_current = 165.0f;
float new_feed_speed = 7.0f;
Drfl.app_weld_adj_welding_cond_analog(
enable, false, new_voltage, new_current, new_feed_speed, 0.0f, 0.0f, 1.0f
);
Check
Voltage/current/feed parameters update smoothly in real time
without interrupting the welding process.
Welding TCP Calibration
Purpose
Calibrate the TCP (Tool Center Point) for accurate weld torch alignment.
CONFIG_WELDING_TCP tcp{};
Drfl.measure_welding_tcp(&tcp);
Check
TCP measurement completes successfully,
and the calibrated position matches the torch tip location.
Monitoring & Signal Output
Purpose Monitor welding data and control digital outputs for arc start/stop signals.
// Start monitoring
Drfl.set_on_monitoring_welding_data(OnMonitoringWeldingData);
// Control output signal
Drfl.set_digital_welding_signal_output(GPIO_TOOL_DIGITAL_INDEX_2, TRUE); // Arc start
std::this_thread::sleep_for(std::chrono::seconds(2));
Drfl.set_digital_welding_signal_output(GPIO_TOOL_DIGITAL_INDEX_2, FALSE); // Arc stop
Check
Monitoring callback provides real-time welding feedback,
and the digital output toggles the external welder correctly.
Note
Welding tutorials require an external welding machine (analog or digital EtherNet/IP) configured with the correct parameters.
All welding operations must run under Auto Mode with Servo ON.