3. PLC基础与机器人联动

在工业自动化产线中,PLC(可编程逻辑控制器)与工业机器人的协同作业已成为标配。无论是焊接、搬运、装配还是码垛,PLC通常作为产线的“中枢神经”,负责逻辑顺序控制、传感器信号采集、安全联锁和工位状态管理;而机器人则作为高柔性执行单元,负责轨迹运动和工艺动作。理解PLC的工作原理、梯形图编程方法以及PLC与机器人控制器的物理/协议连接方式,是集成工程师必须掌握的核心技能。本章将从这三个维度展开,并结合实际案例说明联动调试中的关键要点。

PLC 控制系统 信号交互层 机器人控制器 CPU 模块 扫描周期 DI/DO 模块 24V 开关量 AI/AO 模块 模拟量信号 通信模块 EtherCAT/Modbus 梯形图程序 |--[X0]----[M100]--(Y0) |--[X1]----[/M100]--(Y1) |--[T0 K50]----(Y2) 运动控制 轨迹规划 I/O 板卡 DI/DO 扩展 通信接口 EtherCAT/Profinet 逻辑控制 任务调度 机器人程序 IF DI[1]=ON THEN MoveJ pPick ENDIF 硬接线 I/O 联动 DI/DO 24V 电平信号 现场总线联动 EtherCAT / Modbus TCP 安全信号联动 STO / 安全门 / 急停 PLC 扫描周期典型值:10~50ms 机器人响应时间:1~10ms(总线) 硬接线响应:< 1ms PLC 模块 机器人模块 联动方式

3.1 PLC核心工作原理与扫描周期

PLC本质上是一台专为工业环境设计的工业计算机,其核心工作模式是循环扫描。与普通PC的“事件驱动”不同,PLC按照固定的顺序反复执行“读取输入→执行程序→刷新输出”这三个阶段,这一完整过程称为一个扫描周期(Scan Cycle)。理解扫描周期是进行PLC与机器人联动编程的基础,因为所有输入信号的采样和输出信号的刷新都发生在特定的时间窗口内。

一个典型的PLC扫描周期包含以下五个阶段:

  1. 系统自检阶段:CPU检查硬件状态、通信端口和看门狗定时器,确保系统运行正常。
  2. 读取输入阶段(I/O刷新):PLC将物理输入端子(如传感器、按钮、机器人输出信号)的状态批量读入到输入映像寄存器(Input Image Register)中。这一阶段决定了PLC“看到”的外部世界状态。
  3. 执行用户程序阶段:CPU从第一条指令开始,逐条执行梯形图或结构化文本程序,运算结果写入输出映像寄存器(Output Image Register),但此时并不立即驱动物理输出。
  4. 通信处理阶段:处理与编程软件、HMI、其他PLC或机器人控制器的通信请求,如Modbus报文、EtherCAT数据帧等。
  5. 刷新输出阶段:将输出映像寄存器的状态一次性传送到物理输出端子,驱动继电器、接触器或机器人输入信号。

扫描周期的长短直接影响联动响应的实时性。对于大多数产线应用,PLC扫描周期在10~50ms之间,这对机器人启停、夹具控制等逻辑信号完全足够。但如果涉及高速运动同步或安全联锁,则需要考虑采用硬件中断、高速计数模块或直接通过总线通信实现更快的响应。

关键概念:输入映像寄存器与输出映像寄存器的存在,使得PLC在一个扫描周期内对输入信号的采样是“一次性快照”。如果机器人在PLC扫描中途改变了输出信号,PLC要等到下一个扫描周期的输入刷新阶段才能感知。因此,在编写联动程序时,应避免依赖“瞬时”信号,而应使用电平保持或脉冲展宽逻辑。

3.2 梯形图编程基础与联动逻辑设计

梯形图(Ladder Diagram, LD)是最直观的PLC编程语言,其图形化表达方式源自继电器控制电路,电气工程师可以快速上手。梯形图由左右两条母线(Power Rail)和中间的触点(Contact)、线圈(Coil)、功能块(Function Block)组成。左母线相当于火线,右母线相当于零线,电流从左流向右,当触点条件满足时,线圈得电。

在PLC与机器人联动场景中,梯形图的核心任务包括:

  • 机器人启动/停止控制:通过按钮、选择开关或上位机指令,控制机器人程序的启动与暂停。
  • 工作模式切换:自动/手动模式互锁,防止在自动运行状态下人员进入机器人工作区域。
  • 工位状态联锁:只有当夹具到位、工件检测传感器ON、安全门关闭等条件全部满足时,才允许机器人开始作业。
  • 信号握手(Handshake):PLC发出“请求取件”信号,机器人完成取件后返回“取件完成”信号,PLC收到后才允许下一工位动作。

以下是一个典型的“机器人取件请求-完成”握手梯形图逻辑示例:

|----[X0 启动按钮]----[X1 安全门关闭]----[X2 工件到位]----(M100 取件请求)----|
|----[M100 取件请求]----[Y10 机器人取件完成]----(Y0 允许机器人运行)----|
|----[Y10 机器人取件完成]----[M100]----(M101 取件完成标志)----|

在这个逻辑中,M100是内部继电器,用于保持取件请求状态;Y0是输出到机器人控制器的启动信号;Y10是机器人返回给PLC的完成信号。通过这种互锁设计,可以确保机器人不会在安全条件不满足时误动作。

梯形图编程还需要注意执行顺序。PLC从上到下、从左到右扫描梯形图,因此线圈的输出状态在同一个扫描周期内可以被后续触点使用。利用这一特性,可以编写出紧凑的顺序控制逻辑,但也容易因顺序不当导致逻辑混乱。建议在编写联动程序时,将安全联锁放在最前面,然后是模式选择,最后才是动作输出。

3.3 PLC与机器人控制器的连接方式

PLC与机器人控制器之间的连接方式主要分为三大类:硬接线I/O连接、现场总线连接和以太网通信连接。选择哪种方式取决于产线规模、响应速度要求、已有设备兼容性和成本预算。

连接方式 信号类型 典型响应时间 接线复杂度 适用场景
硬接线I/O 24V DC 开关量 < 1ms 高(每点需单独布线) 安全联锁、急停、简单启停
Modbus TCP/RTU 寄存器数据 5~20ms 低(网线/RS485) 参数传递、状态监控、多设备组网
EtherCAT 过程数据对象(PDO) < 1ms(循环同步) 低(菊花链拓扑) 高速协同、多轴同步、实时控制
Profinet I/O 数据块 1~10ms 低(以太网) 西门子PLC与机器人集成

3.3.1 硬接线I/O连接

这是最传统也最可靠的方式。PLC的数字量输出模块(晶体管或继电器型)直接连接到机器人控制器的数字量输入端子,反之亦然。信号电平通常为24V DC,需要特别注意PLC输出模块的类型:晶体管输出响应快(毫秒级),但只能驱动直流负载;继电器输出可驱动交直流负载,但响应较慢(约10ms),且触点寿命有限。

硬接线连接的关键在于信号定义表的制定。例如,约定PLC的Y0输出对应机器人的DI[1](启动信号),Y1对应DI[2](复位信号),机器人的DO[1]对应PLC的X10(运行中),DO[2]对应X11(程序完成)。双方工程师必须严格遵循同一份I/O映射表,否则调试时会出现信号错乱。

风险提示:硬接线I/O连接时,务必确认PLC输出模块和机器人输入模块的极性(源型/漏型)是否匹配。源型输出(PNP)提供正电压,漏型输出(NPN)提供负电压。如果PLC是NPN输出而机器人输入要求PNP信号,需要增加中间继电器进行电平转换,否则可能损坏端口或无法触发。

3.3.2 现场总线连接(EtherCAT/Modbus)

现代工业机器人(如ABB、KUKA、发那科)普遍支持EtherCAT、Profinet、EtherNet/IP等实时以太网总线。通过总线连接,PLC与机器人之间可以交换大量数据,包括数字量信号、模拟量数值、机器人位置坐标、速度、报警代码等,而无需额外布线。

以EtherCAT为例,PLC作为主站(Master),机器人控制器作为从站(Slave)。在PLC组态软件中,需要导入机器人的ESI(EtherCAT Slave Information)文件,然后配置过程数据对象(PDO)的映射关系。通常,PLC会向机器人发送控制字(Control Word)和目标位置/速度,机器人则向PLC返回状态字(Status Word)和当前位置/电流。

Modbus TCP则更常用于非实时性要求较高的场景,如机器人状态监控、产量统计、参数下载等。PLC作为Modbus客户端,机器人作为服务器,通过读写保持寄存器(Holding Register)或输入寄存器(Input Register)交换数据。例如,PLC读取地址40001的数值获取机器人当前报警代码,写入地址40010触发机器人程序号选择。

3.4 实战案例:PLC与机器人联动的搬运工作站调试

以下是一个典型的PLC与机器人联动案例,用于说明从设计到调试的完整闭环。

背景与约束:某汽车零部件厂需要改造一条搬运工作站,将工件从传送带A搬运至传送带B。原有系统采用人工操作,效率低且存在安全隐患。改造要求:PLC(西门子S7-1200)控制传送带和气缸,机器人(ABB IRB 120)负责搬运。现场已有安全门、急停按钮、光电传感器。响应时间要求:从PLC发出取件指令到机器人开始运动不超过100ms。

初始现象与目标:在首次联调时,发现机器人经常出现“等待超时”报警,且偶尔发生工件未到位时机器人就执行抓取的动作。通过分析PLC程序与机器人日志,发现PLC的“工件到位”信号(X2)在梯形图中被放在取件请求(M100)之后,导致当工件短暂离开传感器区域时,M100已经置位,但X2已经变为OFF,机器人仍然执行了取件动作。

分析判断过程:进一步检查发现,PLC扫描周期约为20ms,而光电传感器检测到工件通过的时间约为150ms。由于梯形图扫描顺序问题,PLC在同一个扫描周期内先执行了M100的置位,然后才读取X2的状态,导致逻辑判断滞后。此外,机器人侧的DI信号滤波时间设置为10ms,加剧了信号抖动的影响。

实际操作步骤:

  1. 调整梯形图顺序:将“工件到位”X2的常开触点放在M100线圈之前,确保只有在X2为ON时才能置位M100。
  2. 增加信号保持逻辑:使用置位/复位指令(SET/RST),当X2为ON时置位M100,当机器人返回“取件完成”信号时复位M100,避免信号瞬时丢失。
  3. 优化机器人侧输入滤波:将ABB机器人的DI[1]滤波时间从10ms调整为2ms,提高信号响应速度。
  4. 增加安全联锁:在PLC程序中增加“安全门打开时强制复位所有输出”的逻辑,确保人员安全。

结果对比:调整后,机器人等待超时报警消失,取件动作与工件到位信号的同步性显著改善。通过示波器抓取信号波形,PLC输出Y0到机器人启动的延迟从原来的约45ms降低到约25ms,满足100ms的设计要求。

风险与代价:在调整过程中,由于需要修改PLC程序,产线停机约2小时。此外,增加信号保持逻辑后,如果传感器故障导致信号一直为ON,机器人会持续取件,因此需要在程序中增加超时保护(例如,M100置位后5秒内未收到完成信号则报警停机)。

复盘经验:PLC与机器人联动调试中,信号时序是最容易出问题的环节。建议在项目启动前,双方工程师共同制定详细的I/O信号时序图,明确每个信号的建立时间、保持时间和撤销条件。同时,在PLC程序中增加必要的延时和滤波处理,避免因现场干扰导致误动作。

经验提醒:在PLC与机器人联动项目中,建议采用“PLC为主、机器人为从”的控制架构。所有跨设备的安全联锁信号(如安全门、急停)必须通过硬接线连接,且PLC程序中使用常闭触点(失电安全)逻辑。总线通信仅用于非安全相关的数据交换,如工艺参数、状态监控等。

3.5 常见误区与总结复盘

在PLC与机器人联动项目中,工程师常犯以下错误,需要特别警惕:

  • 误区一:忽视扫描周期的影响。认为PLC输出后机器人立即响应,实际上存在一个扫描周期的延迟。对于高速应用,应使用中断或总线同步。
  • 误区二:I/O地址分配混乱。没有建立统一的信号映射表,导致调试时频繁修改接线和程序。
  • 误区三:安全信号仅通过总线传输。安全联锁(如急停、安全门)必须使用硬接线,不能依赖总线通信,因为总线可能故障或延迟。
  • 误区四:梯形图顺序不当。将输出线圈放在输入条件之前,导致逻辑判断滞后。
  • 误区五:忽略信号抖动。现场电磁干扰可能导致信号在临界状态反复跳动,应在PLC程序中增加滤波时间或使用硬件滤波模块。

总结而言,PLC与机器人联动的基础在于深刻理解PLC的扫描工作模式,掌握梯形图编程中的顺序控制和互锁技巧,并根据应用场景选择合适的连接方式。硬接线用于安全与关键信号,总线用于数据密集型交换。在实际项目中,制定详细的I/O映射表和时序图是成功的关键。通过本章的学习,读者应能够独立完成PLC与机器人控制器的信号连接、基础梯形图编程和联动调试工作。