4. UR协作机器人焊接通信与接口配置
UR协作机器人本体并不直接“驱动”焊接电源,它承担的是时序控制与信号映射:由UR控制器通过本地I/O或工业总线,把起弧、收弧、电流/电压给定、送丝使能等指令交给焊接电源,同时把电源返回的起弧成功、焊接中、报警、电流/电压反馈等状态读回程序。理解这一层“谁给谁什么信号、信号放在哪个地址、极性如何定义”,是焊接单元能否稳定联调的前提。
一、四类通信通道的定位
UR控制器可用的焊接通信通道主要有四类,它们不是互相替代关系,而是按实时性、接线成本和电源支持能力分层使用:
- UR本地I/O:控制器自带数字输入、数字输出、模拟输入、模拟输出。数字量用于起弧、收弧、使能、报警复位等开关指令;模拟量(0~10V或4~20mA)用于电流、电压、送丝速度给定。优点是延迟低、接线直观,缺点是线数多、模拟量易受干扰。
- Modbus TCP:基于以太网,UR作为客户端或服务器,用寄存器地址读写电源参数。适合读写电流设定、电压设定、焊接程序号、状态字等成组数据,配置简单,但周期通常在10~50ms量级。
- EtherNet/IP:面向工业以太网的CIP协议,通过隐式报文(Implicit)做周期性I/O数据交换,实时性优于Modbus TCP,适合与支持EtherNet/IP的焊接电源做高速状态交互。
- Profinet:西门子生态常用,UR需通过Profinet选项或网关接入,用输入/输出模块槽位映射焊接信号,适合与西门子PLC、Profinet电源共线的产线。
选择原则:安全与急停类信号走硬线,实时焊接时序优先走总线或本地I/O,参数读写可走Modbus TCP。不要把所有信号都塞进一条总线,否则一旦通信抖动,起弧时序就会失稳。
二、本地I/O信号映射的实操配置
以一台支持模拟量给定的MIG电源为例,典型映射如下(示例参数,需按实际电源手册核对):
| UR端口 | 方向 | 信号名 | 电源端子 | 说明 |
|---|---|---|---|---|
| DO[0] | 输出 | ArcStart | 起弧输入 | 高电平起弧,保持至收弧 |
| DO[1] | 输出 | ArcStop | 收弧输入 | 脉冲或电平,按电源定义 |
| DO[2] | 输出 | WeldEnable | 使能输入 | 安全使能,常与安全门联锁 |
| DO[3] | 输出 | AlarmReset | 复位输入 | 报警后复位 |
| AO[0] | 输出 | CurrentRef | 电流给定 | 0~10V对应0~300A |
| AO[1] | 输出 | VoltageRef | 电压给定 | 0~10V对应10~40V |
| DI[0] | 输入 | ArcEstablished | 起弧成功 | 电源确认起弧后置位 |
| DI[1] | 输入 | Welding | 焊接中 | 焊接过程有效 |
| DI[2] | 输入 | Alarm | 报警输出 | 故障时置位 |
| AI[0] | 输入 | CurrentFB | 电流反馈 | 0~10V对应0~300A |
| AI[1] | 输入 | VoltageFB | 电压反馈 | 0~10V对应0~40V |
在UR示教器或PolyScope中,通过“I/O设置”把上述端口命名并设置极性。模拟量给定需要做标定换算:若AO[0]输出0~10V对应0~300A,则设定200A时输出值应为 200/300×10 = 6.67V。UR的模拟输出通常以0~1的归一化值或电压值写入,需在程序里用赋值语句完成换算,例如 set_analog_out(0, 200.0/300.0)。反馈侧同理,读回0.5的归一化值代表150A。
三、Modbus TCP寄存器映射
Modbus TCP配置分三步:确认电源的IP与端口(默认502)、确认寄存器地址表、在UR的“Modbus”客户端中建立连接。以某电源为例(示例地址,实际以手册为准):
# UR中建立Modbus TCP连接(示意)
modbus_add_signal("192.168.1.50", 502, 0, 100, "CurrentSet")
modbus_add_signal("192.168.1.50", 502, 0, 101, "VoltageSet")
modbus_add_signal("192.168.1.50", 502, 0, 200, "StatusWord")
modbus_add_signal("192.168.1.50", 502, 0, 201, "AlarmCode")
# 写入电流设定 180A(寄存器按0.1A分辨率,写1800)
modbus_set_output_register("CurrentSet", 1800)
# 读取状态字
modbus_get_input_register("StatusWord")
注意区分保持寄存器(4x)与输入寄存器(3x),以及字/字节顺序。若读回的电流值明显偏大或偏小,优先检查分辨率与高低字节交换设置。Modbus TCP适合做参数下发和状态巡检,不建议用它承担起弧时序,因为轮询周期不确定。
四、EtherNet/IP与Profinet的映射思路
EtherNet/IP通过EDS文件把电源描述为从站,UR侧配置隐式报文的输入/输出实例与长度。典型输出(UR→电源)为4字节控制字加4字节电流/电压给定,输入(电源→UR)为4字节状态字加4字节实际值。配置完成后,这些数据以固定周期刷新,程序里直接读写对应标签即可。
Profinet则通过GSDML文件导入,UR作为控制器或通过网关,把电源映射为若干输入/输出槽位。每个槽位对应一个信号,例如槽1输出“起弧”,槽2输出“电流给定”,槽3输入“状态字”。配置时务必核对槽位顺序与字节对齐,错位会导致指令与状态完全对不上。
五、联调检查要点
- 先用手动I/O面板逐点强制输出,用万用表在电源端确认电平与极性。
- 模拟量给定从0、50%、100%三点校验,记录电源显示值与UR输出值的偏差。
- 总线通信先用ping和寄存器读写验证连通,再接入焊接时序。
- 完整跑一次“起弧—焊接—收弧”,观察状态字与反馈值是否与过程一致。
- 模拟一次电源报警,确认UR能读到报警位并停止程序。
通信配置的本质是把焊接工艺的时序要求,翻译成UR与电源都能识别的信号和地址。只要方向、极性、分辨率、超时判断四件事对齐,后续的焊接程序才能稳定复现。