十二、激光切割工艺(Python)
本页对应 C++ 版。函数名与参数顺序与 C++ 完全一致(Python SDK 由 C++ 经 SWIG 生成),差异只在两处:
- 返回值形态:C++ 用引用参数回填数据;Python 的返回形态由 SWIG 绑定决定,逐接口实测,不按类型推断。
- 少数接口在 Python 中不可直接调用(绑定缺陷),页面内已逐个标注。
本页共 16 个接口,其中 16 个在 Python SDK 中存在。
数据结构
LaserCuttingGlobalParam
struct LaserCuttingGlobalParam {
LaserCuttingEquipment equipment; // 设备参数
};LaserCuttingEquipment 子结构体:
| 字段 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| RetreatDistance | double | 0.0 | 回退距离(mm) |
| arrivalOutLightMode | int | 0 | 到位出光模式 |
| collisionDistance | double | 10.0 | 碰撞检测距离(mm) |
| delAspiratedMode | int | 1 | 延时吸气模式 |
| delAspiratedTime | double | 0.0 | 延时吸气时间(S) |
| focusCompensation | bool | false | 焦点补偿使能 |
| focusCompensationConstant | double | 0.0 | 焦点补偿常数 |
| focusCompensationPower | double | 0.0 | 焦点补偿功率 |
| focusCompensationTime | double | 0.0 | 焦点补偿时间(S) |
| focusFormula | int | 0 | 焦点计算公式 |
| follow | int | 0 | 随动模式 |
| preAspiratedTime | double | 0.0 | 预吸气时间(S) |
| rePerforate | int | 1 | 重穿孔模式 |
| waitFollowTime | double | 1.0 | 等待随动时间(S) |
| waitLiftUpTime | double | 1.0 | 等待抬起时间(S) |
Python 中定义:nrc_interface.LaserCuttingGlobalParam(构造:nrc.LaserCuttingGlobalParam())。
可用字段(共 1 个,实测 dir()):
equipment
LaserCuttingCraftParam
struct LaserCuttingCraftParam {
int num; // 工艺号
LaserCuttingParam cut; // 切割参数
};LaserCuttingParam 子结构体:
| 字段 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| dutyRatio | int | 0 | 占空比(%) |
| focusPosition | double | 0.0 | 焦点位置(mm) |
| followHeight | double | 0.10 | 随动高度(mm) |
| freq | int | 1 | 频率(Hz) |
| power | int | 1 | 激光功率(%) |
| pressure | double | 0.0 | 气压(bar) |
| note | string | "" | 备注信息 |
Python 中定义:nrc_interface.LaserCuttingCraftParam(构造:nrc.LaserCuttingCraftParam())。
可用字段(共 2 个,实测 dir()):
cut、num
LaserCuttingAnalogParam
struct LaserCuttingAnalogParam {
LaserCuttingAnalogMatch analogMatch; // 模拟量匹配曲线
};LaserCuttingAnalogMatch 子结构体:
| 字段 | 类型 | 说明 |
|---|---|---|
| laserPower | Curve | 激光功率匹配曲线(含level和x/y向量) |
| pressure | Curve | 气压匹配曲线(含level和x/y向量) |
Curve 结构体:
| 字段 | 类型 | 说明 |
|---|---|---|
| level | int | 曲线等级/层数 |
| x | vector<double> | X轴数据(输入值) |
| y | vector<double> | Y轴数据(输出值) |
Python 中定义:nrc_interface.LaserCuttingAnalogParam(构造:nrc.LaserCuttingAnalogParam())。
可用字段(共 1 个,实测 dir()):
analogMatch
LaserCuttingIOParam
struct LaserCuttingIOParam {
IO io; // IO端口配置
Fault laser_fault; // 激光器故障输入端口
Fault pressure_fault; // 气压故障输入端口
Fault regulator_fault; // 调压器故障输入端口
Fault water_cooler_fault; // 水冷机故障输入端口
};IO 子结构体:
| 字段 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| AO_laserPower | int | - | 激光功率模拟量输出端口 |
| AO_pressure | int | - | 气压模拟量输出端口 |
| DI_backMiddleArrival | int | - | 回中到位数字量输入端口 |
| DI_capacitance_ | int | - | 电容传感器数字量输入端口 |
| DI_followArrival | int | - | 随动到位数字量输入端口 |
| DI_liftUpArrival | int | - | 抬起到位数字量输入端口 |
| DI_perforateArrival | int | - | 穿孔到位数字量输入端口 |
| DO_aspiration | int | - | 吸气数字量输出端口 |
| DO_backMiddle | int | - | 回中数字量输出端口 |
| DO_capacitance_ | int | - | 电容传感器数字量输出端口 |
| DO_follow | int | - | 随动数字量输出端口 |
| DO_highPressgas | int | - | 高压气数字量输出端口 |
| DO_liftUp | int | - | 抬起数字量输出端口 |
| DO_lightGate | int | - | 光闸数字量输出端口 |
| DO_lowPressgas | int | - | 低压气数字量输出端口 |
| DO_redLight | int | - | 红光数字量输出端口 |
| pwm_port_ | int | - | PWM输出端口 |
Fault 结构体:
| 字段 | 类型 | 说明 |
|---|---|---|
| input_port | int | 故障信号输入端口号 |
Python 中定义:nrc_interface.LaserCuttingIOParam(构造:nrc.LaserCuttingIOParam())。
可用字段(共 5 个,实测 dir()):
io、laser_fault、pressure_fault、regulator_fault、water_cooler_fault
12.1 全局参数
laser_cutting_set_global_parameter / laser_cutting_set_global_parameter_robot
设置激光切割的全局参数,包括回退距离、碰撞检测、随动模式、穿孔模式等设备级配置。
laser_cutting_set_global_parameter
def laser_cutting_set_global_parameter(socketFd, param):返回值:int 结果码(0 成功,负数为错误码)。本接口无数据出参。
laser_cutting_set_global_parameter_robot
def laser_cutting_set_global_parameter_robot(socketFd, robotNum, param):返回值:int 结果码(0 成功,负数为错误码)。本接口无数据出参。
参数说明(与 C++ 一致):
| 参数 | 类型 | 输入/输出 | 说明 |
|---|---|---|---|
| socketFd | SOCKETFD | 输入 | 连接句柄 |
| robotNum | int | 输入 | 机器人编号(仅 _robot 版本) |
| param | LaserCuttingGlobalParam | 输入 | 切割全局参数 |
C++ 侧返回值描述:Result 枚举,0 表示成功,-1 表示等待消息失败,-2 表示找不到指定的客户端。
laser_cutting_get_global_parameter / laser_cutting_get_global_parameter_robot
查询激光切割当前的全局参数配置。
laser_cutting_get_global_parameter
def laser_cutting_get_global_parameter(socketFd, param):返回值:int 结果码(0 成功,负数为错误码)。数据通过出参结构体原地填充——先创建 nrc.LaserCuttingGlobalParam() 传入,调用成功后按字段读取(如 obj.field;结构体不支持 list())。
示例:
import nrc_interface as nrc
fd = nrc.connect_robot("192.168.1.13", "6001")
out_param = nrc.LaserCuttingGlobalParam()
ret = nrc.laser_cutting_get_global_parameter(fd, out_param)
print(ret, out_param.type, out_param.num) # 结构体按字段读取laser_cutting_get_global_parameter_robot
def laser_cutting_get_global_parameter_robot(socketFd, robotNum, param):返回值:int 结果码(0 成功,负数为错误码)。数据通过出参结构体原地填充——先创建 nrc.LaserCuttingGlobalParam() 传入,调用成功后按字段读取(如 obj.field;结构体不支持 list())。
示例:
import nrc_interface as nrc
fd = nrc.connect_robot("192.168.1.13", "6001")
out_param = nrc.LaserCuttingGlobalParam()
ret = nrc.laser_cutting_get_global_parameter_robot(fd, 1, out_param)
print(ret, out_param.type, out_param.num) # 结构体按字段读取参数说明(与 C++ 一致):
| 参数 | 类型 | 输入/输出 | 说明 |
|---|---|---|---|
| socketFd | SOCKETFD | 输入 | 连接句柄 |
| robotNum | int | 输入 | 机器人编号(仅 _robot 版本) |
| param | LaserCuttingGlobalParam& | 输出 | 接收全局参数 |
C++ 侧返回值描述:Result 枚举,0 表示成功,-1 表示等待消息失败,-2 表示找不到指定的客户端。
12.2 工艺参数
laser_cutting_set_craft_parameter / laser_cutting_set_craft_parameter_robot
设置激光切割的工艺参数,包括指定工艺号的功率、频率、占空比、焦点位置、随动高度和气压等。
laser_cutting_set_craft_parameter
def laser_cutting_set_craft_parameter(socketFd, param):返回值:int 结果码(0 成功,负数为错误码)。本接口无数据出参。
laser_cutting_set_craft_parameter_robot
def laser_cutting_set_craft_parameter_robot(socketFd, robotNum, param):返回值:int 结果码(0 成功,负数为错误码)。本接口无数据出参。
参数说明(与 C++ 一致):
| 参数 | 类型 | 输入/输出 | 说明 |
|---|---|---|---|
| socketFd | SOCKETFD | 输入 | 连接句柄 |
| robotNum | int | 输入 | 机器人编号(仅 _robot 版本) |
| param | LaserCuttingCraftParam | 输入 | 切割工艺参数,含工艺号和切割参数 |
C++ 侧返回值描述:Result 枚举,0 表示成功,-1 表示等待消息失败,-2 表示找不到指定的客户端。
laser_cutting_get_craft_parameter / laser_cutting_get_craft_parameter_robot
查询激光切割的工艺参数。
laser_cutting_get_craft_parameter
def laser_cutting_get_craft_parameter(socketFd, param):返回值:int 结果码(0 成功,负数为错误码)。数据通过出参结构体原地填充——先创建 nrc.LaserCuttingCraftParam() 传入,调用成功后按字段读取(如 obj.field;结构体不支持 list())。
示例:
import nrc_interface as nrc
fd = nrc.connect_robot("192.168.1.13", "6001")
out_param = nrc.LaserCuttingCraftParam()
ret = nrc.laser_cutting_get_craft_parameter(fd, out_param)
print(ret, out_param.type, out_param.num) # 结构体按字段读取laser_cutting_get_craft_parameter_robot
def laser_cutting_get_craft_parameter_robot(socketFd, robotNum, param):返回值:int 结果码(0 成功,负数为错误码)。数据通过出参结构体原地填充——先创建 nrc.LaserCuttingCraftParam() 传入,调用成功后按字段读取(如 obj.field;结构体不支持 list())。
示例:
import nrc_interface as nrc
fd = nrc.connect_robot("192.168.1.13", "6001")
out_param = nrc.LaserCuttingCraftParam()
ret = nrc.laser_cutting_get_craft_parameter_robot(fd, 1, out_param)
print(ret, out_param.type, out_param.num) # 结构体按字段读取参数说明(与 C++ 一致):
| 参数 | 类型 | 输入/输出 | 说明 |
|---|---|---|---|
| socketFd | SOCKETFD | 输入 | 连接句柄 |
| robotNum | int | 输入 | 机器人编号(仅 _robot 版本) |
| param | LaserCuttingCraftParam& | 输出 | 接收工艺参数(需先设置 param.num 指定要查询的工艺号) |
C++ 侧返回值描述:Result 枚举,0 表示成功,-1 表示等待消息失败,-2 表示找不到指定的客户端。
12.3 模拟量匹配参数
laser_cutting_set_analog_parameter / laser_cutting_set_analog_parameter_robot
设置激光切割的模拟量匹配曲线参数,用于将激光功率百分比和气压值映射到实际的模拟量输出电压。
laser_cutting_set_analog_parameter
def laser_cutting_set_analog_parameter(socketFd, param):返回值:int 结果码(0 成功,负数为错误码)。本接口无数据出参。
laser_cutting_set_analog_parameter_robot
def laser_cutting_set_analog_parameter_robot(socketFd, robotNum, param):返回值:int 结果码(0 成功,负数为错误码)。本接口无数据出参。
参数说明(与 C++ 一致):
| 参数 | 类型 | 输入/输出 | 说明 |
|---|---|---|---|
| socketFd | SOCKETFD | 输入 | 连接句柄 |
| robotNum | int | 输入 | 机器人编号(仅 _robot 版本) |
| param | LaserCuttingAnalogParam | 输入 | 模拟量匹配参数 |
C++ 侧返回值描述:Result 枚举,0 表示成功,-1 表示等待消息失败,-2 表示找不到指定的客户端。
laser_cutting_get_analog_parameter / laser_cutting_get_analog_parameter_robot
查询激光切割当前的模拟量匹配曲线参数。
laser_cutting_get_analog_parameter
def laser_cutting_get_analog_parameter(socketFd, param):返回值:int 结果码(0 成功,负数为错误码)。数据通过出参结构体原地填充——先创建 nrc.LaserCuttingAnalogParam() 传入,调用成功后按字段读取(如 obj.field;结构体不支持 list())。
示例:
import nrc_interface as nrc
fd = nrc.connect_robot("192.168.1.13", "6001")
out_param = nrc.LaserCuttingAnalogParam()
ret = nrc.laser_cutting_get_analog_parameter(fd, out_param)
print(ret, out_param.type, out_param.num) # 结构体按字段读取laser_cutting_get_analog_parameter_robot
def laser_cutting_get_analog_parameter_robot(socketFd, robotNum, param):返回值:int 结果码(0 成功,负数为错误码)。数据通过出参结构体原地填充——先创建 nrc.LaserCuttingAnalogParam() 传入,调用成功后按字段读取(如 obj.field;结构体不支持 list())。
示例:
import nrc_interface as nrc
fd = nrc.connect_robot("192.168.1.13", "6001")
out_param = nrc.LaserCuttingAnalogParam()
ret = nrc.laser_cutting_get_analog_parameter_robot(fd, 1, out_param)
print(ret, out_param.type, out_param.num) # 结构体按字段读取参数说明(与 C++ 一致):
| 参数 | 类型 | 输入/输出 | 说明 |
|---|---|---|---|
| socketFd | SOCKETFD | 输入 | 连接句柄 |
| robotNum | int | 输入 | 机器人编号(仅 _robot 版本) |
| param | LaserCuttingAnalogParam& | 输出 | 接收模拟量匹配参数 |
C++ 侧返回值描述:Result 枚举,0 表示成功,-1 表示等待消息失败,-2 表示找不到指定的客户端。
12.4 IO 参数
laser_cutting_set_io_parameter / laser_cutting_set_io_parameter_robot
设置激光切割的 IO 端口配置,包括模拟量输出、数字量输入输出以及各类故障检测端口。
laser_cutting_set_io_parameter
def laser_cutting_set_io_parameter(socketFd, param):返回值:int 结果码(0 成功,负数为错误码)。本接口无数据出参。
laser_cutting_set_io_parameter_robot
def laser_cutting_set_io_parameter_robot(socketFd, robotNum, param):返回值:int 结果码(0 成功,负数为错误码)。本接口无数据出参。
参数说明(与 C++ 一致):
| 参数 | 类型 | 输入/输出 | 说明 |
|---|---|---|---|
| socketFd | SOCKETFD | 输入 | 连接句柄 |
| robotNum | int | 输入 | 机器人编号(仅 _robot 版本) |
| param | LaserCuttingIOParam | 输入 | IO参数配置(含IO端口和故障检测端口) |
C++ 侧返回值描述:Result 枚举,0 表示成功,-1 表示等待消息失败,-2 表示找不到指定的客户端。
laser_cutting_get_io_parameter / laser_cutting_get_io_parameter_robot
查询激光切割当前的 IO 端口配置。
laser_cutting_get_io_parameter
def laser_cutting_get_io_parameter(socketFd, param):返回值:int 结果码(0 成功,负数为错误码)。数据通过出参结构体原地填充——先创建 nrc.LaserCuttingIOParam() 传入,调用成功后按字段读取(如 obj.field;结构体不支持 list())。
示例:
import nrc_interface as nrc
fd = nrc.connect_robot("192.168.1.13", "6001")
out_param = nrc.LaserCuttingIOParam()
ret = nrc.laser_cutting_get_io_parameter(fd, out_param)
print(ret, out_param.type, out_param.num) # 结构体按字段读取laser_cutting_get_io_parameter_robot
def laser_cutting_get_io_parameter_robot(socketFd, robotNum, param):返回值:int 结果码(0 成功,负数为错误码)。数据通过出参结构体原地填充——先创建 nrc.LaserCuttingIOParam() 传入,调用成功后按字段读取(如 obj.field;结构体不支持 list())。
示例:
import nrc_interface as nrc
fd = nrc.connect_robot("192.168.1.13", "6001")
out_param = nrc.LaserCuttingIOParam()
ret = nrc.laser_cutting_get_io_parameter_robot(fd, 1, out_param)
print(ret, out_param.type, out_param.num) # 结构体按字段读取参数说明(与 C++ 一致):
| 参数 | 类型 | 输入/输出 | 说明 |
|---|---|---|---|
| socketFd | SOCKETFD | 输入 | 连接句柄 |
| robotNum | int | 输入 | 机器人编号(仅 _robot 版本) |
| param | LaserCuttingIOParam& | 输出 | 接收IO参数配置 |
C++ 侧返回值描述:Result 枚举,0 表示成功,-1 表示等待消息失败,-2 表示找不到指定的客户端。