Skip to content
🤖 AI 助手 / 自动化工具:先读 《AI 助手先读》 《Agent 开发指引》 《生成前信息采集清单》;机器可读入口 /llms.txt;技能包(SKILL)直链:SKILL.md

九、焊接工艺(Python) ​

本页对应 C++ 版。函数名与参数顺序与 C++ 完全一致(Python SDK 由 C++ 经 SWIG 生成),差异只在两处:

  1. 返回值形态:C++ 用引用参数回填数据;Python 的返回形态由 SWIG 绑定决定,逐接口实测,不按类型推断。
  2. 少数接口在 Python 中不可直接调用(绑定缺陷),页面内已逐个标注。

本页共 22 个接口,其中 22 个在 Python SDK 中存在。


数据结构 ​

ArcParam ​

cpp
struct ArcParam {
    double weldVoltage;           // 焊接电压 范围[-1000,1000]V
    double weldCurrent;           // 焊接电流 范围[0,1000]A
    double arcOnCurrent;          // 起弧电流 范围[0,1000]A
    double arcOnVoltage;          // 起弧电压 范围[-1000,1000]V
    double arcOnTime;             // 起弧时间 范围[0,5]S
    bool arcOnRampEnable;         // 起弧渐变 false:未使能 true:使能
    int arcOnRampMode;            // 起弧方式 时间渐变
    double arcOnRampTime;         // 起弧渐变时间 范围[0,100000]ms
    double arcOffCurrent;         // 收弧电流 范围[0,1000]A
    double arcOffVoltage;         // 收弧电压 范围[-1000,1000]V
    double arcOffTime;            // 收弧时间 范围[0,5]S
    bool arcOffRampEnable;        // 收弧渐变 false:未使能 true:使能
    int arcOffRampMode;           // 收弧方式 时间渐变
    double arcOffRampTime;        // 收弧渐变时间 范围[0,100000]ms
};

Python 中定义:nrc_interface.ArcParam(构造:nrc.ArcParam())。

可用字段(共 14 个,实测 dir()):

arcOffCurrent、arcOffRampEnable、arcOffRampMode、arcOffRampTime、arcOffTime、arcOffVoltage、arcOnCurrent、arcOnRampEnable、arcOnRampMode、arcOnRampTime、arcOnTime、arcOnVoltage、weldCurrent、weldVoltage


WaveParam ​

cpp
struct WaveParam {
    int type;                      // 摆法方式 0:正弦摆 1:Z字形 2:圆形摆 3:外部轴定点摆
    double swingFreq;              // 摆动频率
    double swingAmplitude;         // 摆动幅度
    double radius;                 // 半径
    double LTypeAngle;             // L型角度
    bool moveWhenEdgeStay;         // 边缘停留
    double leftStayTime;           // 左停留时间
    double rightStayTime;          // 右停留时间
    int initialDir;                // 初始方向
    double horizontalDeflection;   // 水平偏转
    double verticalDeflection;     // 垂直偏转
};

Python 中定义:nrc_interface.WaveParam(构造:nrc.WaveParam())。

可用字段(共 11 个,实测 dir()):

LTypeAngle、horizontalDeflection、initialDir、leftStayTime、moveWhenEdgeStay、radius、rightStayTime、swingAmplitude、swingFreq、type、verticalDeflection


WeldState ​

cpp
struct WeldState {
    int pistolSwitch;            // 焊枪开关  -1:未使能 0:错误 1:使能
    int arcingSuccess;           // 引弧成功  -1:未使能 0:错误 1:使能
    int handWireFeed;            // 手动送丝  -1:未使能 0:错误 1:使能
    double weldCurrent;          // 焊接电流
    double weldVoltage;          // 焊接电压
    double weldTime;             // 焊接时间
    double weldPWM;              // 焊接占空比
};

Python 中定义:nrc_interface.WeldState(构造:nrc.WeldState())。

可用字段(共 7 个,实测 dir()):

arcingSuccess、handWireFeed、pistolSwitch、weldCurrent、weldPWM、weldTime、weldVoltage


9.1 焊接参数配置 ​

weld_get_config / weld_get_config_robot ​

获取指定工艺号的焊接参数。

weld_get_config

python
def weld_get_config(socketFd, index, param):

返回值:int 结果码(0 成功,负数为错误码)。数据通过出参结构体原地填充——先创建 nrc.ArcParam() 传入,调用成功后按字段读取(如 obj.field;结构体不支持 list())。

weld_get_config_robot

python
def weld_get_config_robot(socketFd, robotNum, index, param):

返回值:int 结果码(0 成功,负数为错误码)。数据通过出参结构体原地填充——先创建 nrc.ArcParam() 传入,调用成功后按字段读取(如 obj.field;结构体不支持 list())。

参数说明(与 C++ 一致):

参数类型输入/输出说明
socketFdSOCKETFD输入连接句柄
robotNumint输入机器人编号(仅 _robot 版本)
indexint输入工艺号
paramArcParam&输出焊接工艺参数

C++ 侧返回值描述:Result 枚举,0 表示成功,负数表示失败(-1: 接收失败,-2: 断开连接,-6: 超时)。


weld_set_config / weld_set_config_robot ​

设置指定工艺号的焊接参数。

weld_set_config

python
def weld_set_config(socketFd, index, param):

返回值:int 结果码(0 成功,负数为错误码)。数据通过出参结构体原地填充——先创建 nrc.ArcParam() 传入,调用成功后按字段读取(如 obj.field;结构体不支持 list())。

weld_set_config_robot

python
def weld_set_config_robot(socketFd, robotNum, index, param):

返回值:int 结果码(0 成功,负数为错误码)。数据通过出参结构体原地填充——先创建 nrc.ArcParam() 传入,调用成功后按字段读取(如 obj.field;结构体不支持 list())。

参数说明(与 C++ 一致):

参数类型输入/输出说明
socketFdSOCKETFD输入连接句柄
robotNumint输入机器人编号(仅 _robot 版本)
indexint输入工艺号
paramArcParam&输入焊接工艺参数

C++ 侧返回值描述:Result 枚举,0 表示成功,负数表示失败。


9.2 送丝/退丝/送气控制 ​

weld_set_feed_wire / weld_set_feed_wire_robot ​

控制送丝功能。

weld_set_feed_wire

python
def weld_set_feed_wire(socketFd, state):

返回值:int 结果码(0 成功,负数为错误码)。本接口无数据出参。

weld_set_feed_wire_robot

python
def weld_set_feed_wire_robot(socketFd, robotNum, state):

返回值:int 结果码(0 成功,负数为错误码)。本接口无数据出参。

参数说明(与 C++ 一致):

参数类型输入/输出说明
socketFdSOCKETFD输入连接句柄
robotNumint输入机器人编号(仅 _robot 版本)
stateint输入1: 开启送丝,0: 关闭送丝

C++ 侧返回值描述:Result 枚举,0 表示成功,负数表示失败。


weld_set_rewind_wire / weld_set_rewind_wire_robot ​

控制退丝功能。

weld_set_rewind_wire

python
def weld_set_rewind_wire(socketFd, state):

返回值:int 结果码(0 成功,负数为错误码)。本接口无数据出参。

weld_set_rewind_wire_robot

python
def weld_set_rewind_wire_robot(socketFd, robotNum, state):

返回值:int 结果码(0 成功,负数为错误码)。本接口无数据出参。

参数说明(与 C++ 一致):

参数类型输入/输出说明
socketFdSOCKETFD输入连接句柄
robotNumint输入机器人编号(仅 _robot 版本)
stateint输入1: 开启退丝,0: 关闭退丝

C++ 侧返回值描述:Result 枚举,0 表示成功,负数表示失败。


weld_set_supply_gas / weld_set_supply_gas_robot ​

控制送气功能。

weld_set_supply_gas

python
def weld_set_supply_gas(socketFd, state):

返回值:int 结果码(0 成功,负数为错误码)。本接口无数据出参。

weld_set_supply_gas_robot

python
def weld_set_supply_gas_robot(socketFd, robotNum, state):

返回值:int 结果码(0 成功,负数为错误码)。本接口无数据出参。

参数说明(与 C++ 一致):

参数类型输入/输出说明
socketFdSOCKETFD输入连接句柄
robotNumint输入机器人编号(仅 _robot 版本)
stateint输入1: 开启送气,0: 关闭送气

C++ 侧返回值描述:Result 枚举,0 表示成功,负数表示失败。


9.3 焊接使能与手动点焊 ​

weld_set_enable / weld_set_enable_robot ​

控制焊接使能状态。

weld_set_enable

python
def weld_set_enable(socketFd, state):

返回值:int 结果码(0 成功,负数为错误码)。本接口无数据出参。

weld_set_enable_robot

python
def weld_set_enable_robot(socketFd, robotNum, state):

返回值:int 结果码(0 成功,负数为错误码)。本接口无数据出参。

参数说明(与 C++ 一致):

参数类型输入/输出说明
socketFdSOCKETFD输入连接句柄
robotNumint输入机器人编号(仅 _robot 版本)
stateint输入1: 使能焊接,0: 关闭焊接使能

C++ 侧返回值描述:Result 枚举,0 表示成功,负数表示失败。


weld_set_hand_spot / weld_set_hand_spot_robot ​

控制手动点焊功能。

weld_set_hand_spot

python
def weld_set_hand_spot(socketFd, state):

返回值:int 结果码(0 成功,负数为错误码)。本接口无数据出参。

weld_set_hand_spot_robot

python
def weld_set_hand_spot_robot(socketFd, robotNum, state):

返回值:int 结果码(0 成功,负数为错误码)。本接口无数据出参。

参数说明(与 C++ 一致):

参数类型输入/输出说明
socketFdSOCKETFD输入连接句柄
robotNumint输入机器人编号(仅 _robot 版本)
stateint输入1: 开启手动点焊,0: 关闭手动点焊

C++ 侧返回值描述:Result 枚举,0 表示成功,负数表示失败。


9.4 状态获取 ​

weld_get_feed_wire_status / weld_get_feed_wire_status_robot ​

获取送丝、退丝、送气、焊接使能、手动点焊的状态。

weld_get_feed_wire_status

python
def weld_get_feed_wire_status(socketFd, status):

返回值:int 结果码(0 成功,负数为错误码)。数据通过出参容器原地填充——先创建 nrc.VectorInt() 传入,调用成功后用 list(obj) 读取。

示例:

python
import nrc_interface as nrc

fd = nrc.connect_robot("192.168.1.13", "6001")
out_status = nrc.VectorInt()
ret = nrc.weld_get_feed_wire_status(fd, out_status)
print(ret, list(out_status))    # 容器用 list() 读取

weld_get_feed_wire_status_robot

python
def weld_get_feed_wire_status_robot(socketFd, robotNum, status):

返回值:int 结果码(0 成功,负数为错误码)。数据通过出参容器原地填充——先创建 nrc.VectorInt() 传入,调用成功后用 list(obj) 读取。

示例:

python
import nrc_interface as nrc

fd = nrc.connect_robot("192.168.1.13", "6001")
out_status = nrc.VectorInt()
ret = nrc.weld_get_feed_wire_status_robot(fd, 1, out_status)
print(ret, list(out_status))    # 容器用 list() 读取

参数说明(与 C++ 一致):

参数类型输入/输出说明
socketFdSOCKETFD输入连接句柄
robotNumint输入机器人编号(仅 _robot 版本)
statusstd::vector<int>&输出状态数组,长度 5

C++ 侧返回值描述:Result 枚举,0 表示成功,负数表示失败。


weld_get_monitor_status / weld_get_monitor_status_robot ​

获取焊接实时监控状态,包括焊枪开关、引弧状态、电流电压等实时数据。

weld_get_monitor_status

python
def weld_get_monitor_status(socketFd, status):

返回值:int 结果码(0 成功,负数为错误码)。数据通过出参结构体原地填充——先创建 nrc.WeldState() 传入,调用成功后按字段读取(如 obj.field;结构体不支持 list())。

示例:

python
import nrc_interface as nrc

fd = nrc.connect_robot("192.168.1.13", "6001")
out_status = nrc.WeldState()
ret = nrc.weld_get_monitor_status(fd, out_status)
print(ret, out_status.type, out_status.num)    # 结构体按字段读取

weld_get_monitor_status_robot

python
def weld_get_monitor_status_robot(socketFd, robotNum, status):

返回值:int 结果码(0 成功,负数为错误码)。数据通过出参结构体原地填充——先创建 nrc.WeldState() 传入,调用成功后按字段读取(如 obj.field;结构体不支持 list())。

示例:

python
import nrc_interface as nrc

fd = nrc.connect_robot("192.168.1.13", "6001")
out_status = nrc.WeldState()
ret = nrc.weld_get_monitor_status_robot(fd, 1, out_status)
print(ret, out_status.type, out_status.num)    # 结构体按字段读取

参数说明(与 C++ 一致):

参数类型输入/输出说明
socketFdSOCKETFD输入连接句柄
robotNumint输入机器人编号(仅 _robot 版本)
statusWeldState&输出焊接状态结构体

C++ 侧返回值描述:Result 枚举,0 表示成功,负数表示失败。


9.5 摆焊参数 ​

weld_get_wave_weld_param / weld_get_wave_weld_param_robot ​

获取摆焊参数数据。控制器支持最多 9 组摆焊参数文件。

weld_get_wave_weld_param

python
def weld_get_wave_weld_param(socketFd, num, param):

返回值:int 结果码(0 成功,负数为错误码)。数据通过出参结构体原地填充——先创建 nrc.WaveParam() 传入,调用成功后按字段读取(如 obj.field;结构体不支持 list())。

weld_get_wave_weld_param_robot

python
def weld_get_wave_weld_param_robot(socketFd, robotNum, num, param):

返回值:int 结果码(0 成功,负数为错误码)。数据通过出参结构体原地填充——先创建 nrc.WaveParam() 传入,调用成功后按字段读取(如 obj.field;结构体不支持 list())。

参数说明(与 C++ 一致):

参数类型输入/输出说明
socketFdSOCKETFD输入连接句柄
robotNumint输入机器人编号(仅 _robot 版本)
numint输入摆焊文件编号,范围 [1, 9]
paramWaveParam&输出摆焊参数

C++ 侧返回值描述:Result 枚举,0 表示成功,负数表示失败。


weld_set_wave_weld_param / weld_set_wave_weld_param_robot ​

设置摆焊参数。控制器支持最多 9 组摆焊参数文件。

weld_set_wave_weld_param

python
def weld_set_wave_weld_param(socketFd, num, param):

返回值:int 结果码(0 成功,负数为错误码)。本接口无数据出参。

weld_set_wave_weld_param_robot

python
def weld_set_wave_weld_param_robot(socketFd, robotNum, num, param):

返回值:int 结果码(0 成功,负数为错误码)。本接口无数据出参。

参数说明(与 C++ 一致):

参数类型输入/输出说明
socketFdSOCKETFD输入连接句柄
robotNumint输入机器人编号(仅 _robot 版本)
numint输入摆焊文件编号,范围 [1, 9]
paramconst WaveParam&输入摆焊参数

C++ 侧返回值描述:Result 枚举,0 表示成功,负数表示失败。


9.6 完整焊接流程示例 ​