九、焊接工艺(Python)
本页对应 C++ 版。函数名与参数顺序与 C++ 完全一致(Python SDK 由 C++ 经 SWIG 生成),差异只在两处:
- 返回值形态:C++ 用引用参数回填数据;Python 的返回形态由 SWIG 绑定决定,逐接口实测,不按类型推断。
- 少数接口在 Python 中不可直接调用(绑定缺陷),页面内已逐个标注。
本页共 22 个接口,其中 22 个在 Python SDK 中存在。
数据结构
ArcParam
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
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
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
def weld_get_config(socketFd, index, param):返回值:int 结果码(0 成功,负数为错误码)。数据通过出参结构体原地填充——先创建 nrc.ArcParam() 传入,调用成功后按字段读取(如 obj.field;结构体不支持 list())。
weld_get_config_robot
def weld_get_config_robot(socketFd, robotNum, index, param):返回值:int 结果码(0 成功,负数为错误码)。数据通过出参结构体原地填充——先创建 nrc.ArcParam() 传入,调用成功后按字段读取(如 obj.field;结构体不支持 list())。
参数说明(与 C++ 一致):
| 参数 | 类型 | 输入/输出 | 说明 |
|---|---|---|---|
| socketFd | SOCKETFD | 输入 | 连接句柄 |
| robotNum | int | 输入 | 机器人编号(仅 _robot 版本) |
| index | int | 输入 | 工艺号 |
| param | ArcParam& | 输出 | 焊接工艺参数 |
C++ 侧返回值描述:Result 枚举,0 表示成功,负数表示失败(-1: 接收失败,-2: 断开连接,-6: 超时)。
weld_set_config / weld_set_config_robot
设置指定工艺号的焊接参数。
weld_set_config
def weld_set_config(socketFd, index, param):返回值:int 结果码(0 成功,负数为错误码)。数据通过出参结构体原地填充——先创建 nrc.ArcParam() 传入,调用成功后按字段读取(如 obj.field;结构体不支持 list())。
weld_set_config_robot
def weld_set_config_robot(socketFd, robotNum, index, param):返回值:int 结果码(0 成功,负数为错误码)。数据通过出参结构体原地填充——先创建 nrc.ArcParam() 传入,调用成功后按字段读取(如 obj.field;结构体不支持 list())。
参数说明(与 C++ 一致):
| 参数 | 类型 | 输入/输出 | 说明 |
|---|---|---|---|
| socketFd | SOCKETFD | 输入 | 连接句柄 |
| robotNum | int | 输入 | 机器人编号(仅 _robot 版本) |
| index | int | 输入 | 工艺号 |
| param | ArcParam& | 输入 | 焊接工艺参数 |
C++ 侧返回值描述:Result 枚举,0 表示成功,负数表示失败。
9.2 送丝/退丝/送气控制
weld_set_feed_wire / weld_set_feed_wire_robot
控制送丝功能。
weld_set_feed_wire
def weld_set_feed_wire(socketFd, state):返回值:int 结果码(0 成功,负数为错误码)。本接口无数据出参。
weld_set_feed_wire_robot
def weld_set_feed_wire_robot(socketFd, robotNum, state):返回值:int 结果码(0 成功,负数为错误码)。本接口无数据出参。
参数说明(与 C++ 一致):
| 参数 | 类型 | 输入/输出 | 说明 |
|---|---|---|---|
| socketFd | SOCKETFD | 输入 | 连接句柄 |
| robotNum | int | 输入 | 机器人编号(仅 _robot 版本) |
| state | int | 输入 | 1: 开启送丝,0: 关闭送丝 |
C++ 侧返回值描述:Result 枚举,0 表示成功,负数表示失败。
weld_set_rewind_wire / weld_set_rewind_wire_robot
控制退丝功能。
weld_set_rewind_wire
def weld_set_rewind_wire(socketFd, state):返回值:int 结果码(0 成功,负数为错误码)。本接口无数据出参。
weld_set_rewind_wire_robot
def weld_set_rewind_wire_robot(socketFd, robotNum, state):返回值:int 结果码(0 成功,负数为错误码)。本接口无数据出参。
参数说明(与 C++ 一致):
| 参数 | 类型 | 输入/输出 | 说明 |
|---|---|---|---|
| socketFd | SOCKETFD | 输入 | 连接句柄 |
| robotNum | int | 输入 | 机器人编号(仅 _robot 版本) |
| state | int | 输入 | 1: 开启退丝,0: 关闭退丝 |
C++ 侧返回值描述:Result 枚举,0 表示成功,负数表示失败。
weld_set_supply_gas / weld_set_supply_gas_robot
控制送气功能。
weld_set_supply_gas
def weld_set_supply_gas(socketFd, state):返回值:int 结果码(0 成功,负数为错误码)。本接口无数据出参。
weld_set_supply_gas_robot
def weld_set_supply_gas_robot(socketFd, robotNum, state):返回值:int 结果码(0 成功,负数为错误码)。本接口无数据出参。
参数说明(与 C++ 一致):
| 参数 | 类型 | 输入/输出 | 说明 |
|---|---|---|---|
| socketFd | SOCKETFD | 输入 | 连接句柄 |
| robotNum | int | 输入 | 机器人编号(仅 _robot 版本) |
| state | int | 输入 | 1: 开启送气,0: 关闭送气 |
C++ 侧返回值描述:Result 枚举,0 表示成功,负数表示失败。
9.3 焊接使能与手动点焊
weld_set_enable / weld_set_enable_robot
控制焊接使能状态。
weld_set_enable
def weld_set_enable(socketFd, state):返回值:int 结果码(0 成功,负数为错误码)。本接口无数据出参。
weld_set_enable_robot
def weld_set_enable_robot(socketFd, robotNum, state):返回值:int 结果码(0 成功,负数为错误码)。本接口无数据出参。
参数说明(与 C++ 一致):
| 参数 | 类型 | 输入/输出 | 说明 |
|---|---|---|---|
| socketFd | SOCKETFD | 输入 | 连接句柄 |
| robotNum | int | 输入 | 机器人编号(仅 _robot 版本) |
| state | int | 输入 | 1: 使能焊接,0: 关闭焊接使能 |
C++ 侧返回值描述:Result 枚举,0 表示成功,负数表示失败。
weld_set_hand_spot / weld_set_hand_spot_robot
控制手动点焊功能。
weld_set_hand_spot
def weld_set_hand_spot(socketFd, state):返回值:int 结果码(0 成功,负数为错误码)。本接口无数据出参。
weld_set_hand_spot_robot
def weld_set_hand_spot_robot(socketFd, robotNum, state):返回值:int 结果码(0 成功,负数为错误码)。本接口无数据出参。
参数说明(与 C++ 一致):
| 参数 | 类型 | 输入/输出 | 说明 |
|---|---|---|---|
| socketFd | SOCKETFD | 输入 | 连接句柄 |
| robotNum | int | 输入 | 机器人编号(仅 _robot 版本) |
| state | int | 输入 | 1: 开启手动点焊,0: 关闭手动点焊 |
C++ 侧返回值描述:Result 枚举,0 表示成功,负数表示失败。
9.4 状态获取
weld_get_feed_wire_status / weld_get_feed_wire_status_robot
获取送丝、退丝、送气、焊接使能、手动点焊的状态。
weld_get_feed_wire_status
def weld_get_feed_wire_status(socketFd, status):返回值:int 结果码(0 成功,负数为错误码)。数据通过出参容器原地填充——先创建 nrc.VectorInt() 传入,调用成功后用 list(obj) 读取。
示例:
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
def weld_get_feed_wire_status_robot(socketFd, robotNum, status):返回值:int 结果码(0 成功,负数为错误码)。数据通过出参容器原地填充——先创建 nrc.VectorInt() 传入,调用成功后用 list(obj) 读取。
示例:
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++ 一致):
| 参数 | 类型 | 输入/输出 | 说明 |
|---|---|---|---|
| socketFd | SOCKETFD | 输入 | 连接句柄 |
| robotNum | int | 输入 | 机器人编号(仅 _robot 版本) |
| status | std::vector<int>& | 输出 | 状态数组,长度 5 |
C++ 侧返回值描述:Result 枚举,0 表示成功,负数表示失败。
weld_get_monitor_status / weld_get_monitor_status_robot
获取焊接实时监控状态,包括焊枪开关、引弧状态、电流电压等实时数据。
weld_get_monitor_status
def weld_get_monitor_status(socketFd, status):返回值:int 结果码(0 成功,负数为错误码)。数据通过出参结构体原地填充——先创建 nrc.WeldState() 传入,调用成功后按字段读取(如 obj.field;结构体不支持 list())。
示例:
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
def weld_get_monitor_status_robot(socketFd, robotNum, status):返回值:int 结果码(0 成功,负数为错误码)。数据通过出参结构体原地填充——先创建 nrc.WeldState() 传入,调用成功后按字段读取(如 obj.field;结构体不支持 list())。
示例:
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++ 一致):
| 参数 | 类型 | 输入/输出 | 说明 |
|---|---|---|---|
| socketFd | SOCKETFD | 输入 | 连接句柄 |
| robotNum | int | 输入 | 机器人编号(仅 _robot 版本) |
| status | WeldState& | 输出 | 焊接状态结构体 |
C++ 侧返回值描述:Result 枚举,0 表示成功,负数表示失败。
9.5 摆焊参数
weld_get_wave_weld_param / weld_get_wave_weld_param_robot
获取摆焊参数数据。控制器支持最多 9 组摆焊参数文件。
weld_get_wave_weld_param
def weld_get_wave_weld_param(socketFd, num, param):返回值:int 结果码(0 成功,负数为错误码)。数据通过出参结构体原地填充——先创建 nrc.WaveParam() 传入,调用成功后按字段读取(如 obj.field;结构体不支持 list())。
weld_get_wave_weld_param_robot
def weld_get_wave_weld_param_robot(socketFd, robotNum, num, param):返回值:int 结果码(0 成功,负数为错误码)。数据通过出参结构体原地填充——先创建 nrc.WaveParam() 传入,调用成功后按字段读取(如 obj.field;结构体不支持 list())。
参数说明(与 C++ 一致):
| 参数 | 类型 | 输入/输出 | 说明 |
|---|---|---|---|
| socketFd | SOCKETFD | 输入 | 连接句柄 |
| robotNum | int | 输入 | 机器人编号(仅 _robot 版本) |
| num | int | 输入 | 摆焊文件编号,范围 [1, 9] |
| param | WaveParam& | 输出 | 摆焊参数 |
C++ 侧返回值描述:Result 枚举,0 表示成功,负数表示失败。
weld_set_wave_weld_param / weld_set_wave_weld_param_robot
设置摆焊参数。控制器支持最多 9 组摆焊参数文件。
weld_set_wave_weld_param
def weld_set_wave_weld_param(socketFd, num, param):返回值:int 结果码(0 成功,负数为错误码)。本接口无数据出参。
weld_set_wave_weld_param_robot
def weld_set_wave_weld_param_robot(socketFd, robotNum, num, param):返回值:int 结果码(0 成功,负数为错误码)。本接口无数据出参。
参数说明(与 C++ 一致):
| 参数 | 类型 | 输入/输出 | 说明 |
|---|---|---|---|
| socketFd | SOCKETFD | 输入 | 连接句柄 |
| robotNum | int | 输入 | 机器人编号(仅 _robot 版本) |
| num | int | 输入 | 摆焊文件编号,范围 [1, 9] |
| param | const WaveParam& | 输入 | 摆焊参数 |
C++ 侧返回值描述:Result 枚举,0 表示成功,负数表示失败。