1. 协同控制认知与系统全景
三菱iQ-F系列PLC(如FX5U、FX5UC)与工业机器人的协同控制,本质上是把“逻辑控制”和“运动控制”两类能力放进同一条生产节拍里。PLC擅长处理传感器、气缸、变频器、安全信号和工序互锁,机器人擅长在空间内完成搬运、焊接、装配、码垛等轨迹动作。两者不是谁替代谁,而是通过通信把“什么时候可以动、动到哪里、动完告诉谁”这件事串起来。理解这一章,重点不是记住某个指令,而是先看清系统由哪些层组成、数据沿什么路径流动、不同通信方式各自适合什么场景。
一、典型架构:三层设备与两条链路
一个典型的iQ-F与机器人协同工位,可以按“管理层—控制层—执行层”来理解。管理层通常是触摸屏GOT、上位机或MES终端,负责人机交互、配方下发和产量统计;控制层是iQ-F PLC,承担主控逻辑、安全联锁、节拍调度和通信中转;执行层包括机器人控制器、伺服/变频器、气缸阀岛、光电传感器、安全门锁等。PLC与机器人控制器之间构成一条“协同链路”,PLC与现场I/O之间构成另一条“设备链路”。两条链路在PLC内部通过软元件(X/Y/M/D/R)交汇,形成完整的控制闭环。
需要特别注意的是,机器人控制器本身也是一个独立的运动控制系统。它内部有自己的程序、点位和状态机。PLC并不直接控制机器人每一个关节,而是通过通信向机器人发送“启动、暂停、复位、选择程序号”等命令,并接收“运行中、到位、报警、当前程序号”等状态。这种“命令—状态”的交互方式,是协同控制最基本的认知。
二、通信方式:选型先看距离、实时性和数据量
iQ-F与机器人之间常见的通信方式有三类。第一类是硬线I/O:PLC的晶体管输出点接机器人控制器的输入端子,机器人输出点接PLC输入点。这种方式最简单、延迟最低,适合“启动、暂停、急停、到位”这类开关量信号,但线缆多、信息量小,无法传递程序号或坐标数据。第二类是以太网通信:FX5U自带以太网口,可通过MC协议、SLMP或Socket方式与机器人控制器交换数据。它适合传递程序号、配方参数、报警代码等字节级信息,但需要约定好端口号、数据格式和握手时序。第三类是现场总线:通过CC-Link IE Field Basic或加装通信模块,把机器人作为从站接入,实现周期性数据交换。这种方式布线简洁、扩展性好,适合多机器人或多工位协同。
选择时先问三个问题:信号是开关量还是数据量?允许的响应延迟是多少?现场是否已有总线网络?如果只是单工位上下料,硬线I/O加少量以太网数据往往最经济;如果是多机器人联动、需要实时交换位置或状态字,则应优先考虑总线或高速以太网。
三、控制层级:谁发命令,谁给反馈
协同控制中,PLC通常担任“主控”角色,机器人担任“执行与反馈”角色。但这不意味着PLC可以随意打断机器人动作。正确的做法是:PLC发出启动命令后,机器人按自身程序运行;PLC通过周期读取机器人状态字,判断其处于“运行中”“等待中”还是“报警中”,再决定下一步工序是否放行。例如,当机器人完成抓取并发出“到位”信号后,PLC才允许输送线前进;当机器人报警时,PLC立即切断相关输出并点亮报警灯。
这种“命令—执行—反馈—判断”的循环,是协同控制的基本节拍。PLC程序里通常用M软元件做握手标志,用D软元件存放程序号或报警代码,用X/Y做硬线信号映射。理解这些软元件如何与机器人信号对应,是后续编写通信程序的基础。
四、学习路线:从单机到协同
建议按四步推进。第一步,熟悉FX5U的I/O分配和基本逻辑指令,能独立完成气缸、传感器和指示灯的控制。第二步,掌握GX Works3的工程创建、参数设置和在线监控,学会用软元件批量监视观察信号变化。第三步,学习一种通信方式,建议从硬线I/O加MC协议以太网入手,先实现“PLC发启动、机器人回到位”的最小闭环。第四步,引入节拍与异常处理,练习机器人报警时PLC如何安全停机、如何复位、如何记录报警代码。每一步都应在真实或仿真设备上验证,而不是只看手册。
学习提示:初学阶段最容易犯的错误,是把PLC和机器人的程序各自写完后再联调。更高效的做法是先定义好“接口表”——列出每一个交互信号的名称、方向、地址、有效电平和含义,再分别编写两侧程序。接口表是协同控制的“合同”,后续调试和排障都依赖它。
五、接口表示例
下面给出一份最小协同工位的接口表示例,用于说明PLC与机器人之间需要约定哪些字段。表中地址为示例假设,实际项目应按硬件接线和通信配置调整。
| 信号名称 | 方向 | PLC侧地址 | 机器人侧地址 | 有效电平/含义 |
|---|---|---|---|---|
| 启动命令 | PLC → 机器人 | Y10 | DI0 | 高电平有效,脉冲≥100ms |
| 暂停命令 | PLC → 机器人 | Y11 | DI1 | 高电平有效,保持 |
| 程序号选择 | PLC → 机器人 | D100 | 寄存器R0 | 16位整数,1~8 |
| 运行中 | 机器人 → PLC | X20 | DO0 | 高电平表示机器人正在执行 |
| 到位完成 | 机器人 → PLC | X21 | DO1 | 高电平脉冲,宽度≥50ms |
| 报警 | 机器人 → PLC | X22 | DO2 | 高电平有效,需PLC切断输出 |
| 报警代码 | 机器人 → PLC | D200 | 寄存器R10 | 16位整数,0表示无报警 |
有了这张表,PLC程序中的X20、X21、X22就不再是抽象编号,而是对应机器人真实状态的“窗口”。调试时,可以在GX Works3的软元件监视界面中同时观察Y10是否发出、X20是否返回、D200是否变化,从而快速判断问题出在命令侧还是反馈侧。这就是系统全景认知带来的实际价值:知道信号从哪来、到哪去、在哪个环节可能断掉。