1. 课程导入与工程全景
在工业自动化现场,UR(Universal Robots)协作机器人常被当作“柔性执行末端”使用:它负责抓取、拧紧、上下料、检测等动作,而动作的触发条件、节拍同步、结果回传,往往来自PLC、传感器、变频器、拧紧枪、视觉系统等外围设备。把这些设备可靠地接入UR控制系统,最常用、最经济、最容易落地的通信方式之一,就是Modbus。本课程围绕“UR机器人 + Modbus协议族 + 工业设备集成”这条主线展开,目标不是单纯讲协议报文,而是让你能独立完成一条产线上多设备与UR的通信设计、配置、调试与排障。
一、为什么是UR与Modbus的组合
UR机器人控制器(如CB3、e-Series、PolyScope 5)原生支持Modbus TCP,可作为Modbus客户端(Client)或服务端(Server)参与通信;同时通过URCap或脚本接口,还能扩展Modbus RTU/ASCII的串行通信能力。这意味着:
- UR可以主动读取PLC的寄存器,获取“允许抓取”“目标工位”“拧紧结果”等信号;
- UR也可以把自身状态(程序运行中、已到位、夹爪开合、报警码)写入PLC或上位机;
- 对于只有RS-485接口的仪表、扫码器、称重模块,可通过网关或URCap转换为Modbus TCP接入。
Modbus的优势在于简单、开放、生态广。它不依赖特定厂商,报文结构清晰,调试工具丰富(Modbus Poll、QModMaster、串口助手等),非常适合作为工业设备集成的“第一通信语言”。但简单也意味着限制:它没有复杂的语义层,寄存器地址、数据类型、字节序、功能码都需要工程人员自己约定和核对。这正是本课程要解决的核心问题。
二、Modbus协议族的工程视角
Modbus协议族并不是单一协议,而是一组基于“请求—响应”模型的通信规范。从工程集成角度看,需要同时理解四个层面:
- 物理层与链路层:Modbus RTU/ASCII跑在RS-232/RS-485上,Modbus TCP跑在以太网上。RS-485半双工、需终端电阻、共地;以太网则关注IP、端口502、连接数限制。
- 报文层:功能码决定操作类型,如01读线圈、03读保持寄存器、06写单寄存器、16写多寄存器。异常响应通过功能码最高位置1返回,并附带异常码。
- 数据模型层:线圈(Coil)、离散输入(Discrete Input)、输入寄存器(Input Register)、保持寄存器(Holding Register)四类对象,地址从0或1开始计数,不同设备手册的“偏移量”约定可能不同。
- 应用映射层:把设备的物理量映射到寄存器。例如拧紧枪的扭矩值放在40001,状态字放在40002,控制字放在40003。UR侧需要按相同地址和数据类型读写。
三、典型产线场景与集成目标
假设一条典型的协作机器人装配线:UR10e负责从输送线抓取工件,放入拧紧工位;拧紧枪完成四颗螺钉拧紧后,把扭矩和结果写入PLC;PLC再通知UR取走工件并放入检测台;视觉相机判断合格后,UR分拣到良品或不良品框。这个场景中,UR需要与至少四类对象通信:
- PLC:交换启动、允许、完成、报警等握手信号;
- 拧紧枪:读取扭矩、角度、OK/NG结果;
- 视觉系统:获取检测结果和坐标偏移;
- 输送线/传感器:获取工件到位信号,控制阻挡气缸。
集成目标可以归纳为三条:信号可达(物理连接与网络连通)、语义一致(地址、类型、字节序、单位一致)、时序可靠(握手不丢步、不超时、异常可恢复)。这三条也是后续所有调试工作的判断依据。
四、学习路径与工程方法
本课程按“先通协议、再通UR、后通系统”的顺序推进。前几章会拆解Modbus RTU与TCP的报文结构、功能码、异常码、地址模型和字节序;随后进入UR侧,讲解Modbus TCP客户端与服务端的配置、URScript中的通信指令、寄存器读写与轮询逻辑;再通过拧紧枪、视觉、远程IO等真实设备案例,完成寄存器映射表设计、握手时序编写、异常处理与联调排障;最后落到工程交付,包括通信文档、测试用例、版本管理和现场验收。
建议你在学习时同步准备三样东西:一台可用的UR控制器或仿真环境(URSim)、一个Modbus调试工具(如Modbus Poll或QModMaster)、一份目标设备的寄存器手册。每学完一个协议点,就在调试工具里手动发一帧报文,观察响应;每学完一个UR配置点,就在PolyScope里建一个最小程序验证读写。这样到课程后期,你面对的不再是抽象概念,而是一张张能跑通的寄存器表和一段段能复现的通信程序。
从工程全景看,UR与Modbus的集成并不神秘,它是一条清晰的链路:物理连接决定能不能通,地址映射决定通得对不对,握手时序决定通得稳不稳。本课程后续每一章,都会围绕这条链路的一个具体环节展开,最终让你具备独立完成一条产线通信集成的能力。