3. PLC基础与通信协议

在工业视觉AI联动PLC的系统中,PLC(可编程逻辑控制器)是执行机构的核心控制单元,而通信协议则是视觉系统与PLC之间信息交换的“语言”。视觉检测结果(OK/NG)、缺陷坐标、剔除触发信号以及节拍同步信号,都需要通过特定的协议在PLC与视觉控制器之间高效、可靠地传输。本章将深入解析PLC的扫描工作原理、主流品牌的技术特点,并重点剖析Modbus、Profinet、EtherNet/IP三种工业以太网协议在视觉联动场景中的选型与应用要点。

PLC核心单元 通信协议栈 视觉联动链路 CPU 中央处理器 扫描执行用户程序 输入映像区 I0.0 ~ Ix.x 输出映像区 Q0.0 ~ Qx.x 用户程序区 梯形图 / ST / FBD 通信处理器 以太网 / 串口 / 总线 扫描周期:输入采样→程序执行 →输出刷新(循环) Modbus TCP / RTU 主从式 · 功能码 · 寄存器 Profinet IRT 实时同步 · 等时模式 · 诊断 EtherNet/IP 隐式/显式 · CIP · 生产者/消费者 OPC UA (可选) 跨平台 · 语义互操作 选型依据:实时性要求、 数据量大小、品牌兼容性、 工程师技术栈 视觉控制器 AI推理 · 图像处理 结果映射 OK/NG → 位/字/浮点 PLC执行机构 气缸剔除 · 报警 · 停机 节拍同步 触发信号 · 完成信号 · 超时 关键:信号延迟 < 节拍余量 通信故障 → 安全停机 请求/响应

3.1 PLC工作原理与扫描周期

PLC的本质是一台专用于工业控制的实时计算机。其核心工作模式为循环扫描,即CPU按照固定顺序反复执行“读取输入→执行程序→刷新输出”三个步骤。理解扫描周期是进行视觉联动时序设计的基础,因为视觉检测结果必须在PLC扫描周期的合适窗口内被读取,否则可能导致信号丢失或误触发。

一个完整的扫描周期(Scan Cycle)包含以下阶段:

  1. 输入采样阶段:PLC将物理输入端子(如传感器、视觉IO信号)的状态批量读入输入映像寄存器(Input Image Register)。此阶段输入信号的变化不会立即影响程序执行,直到下一个扫描周期。
  2. 程序执行阶段:CPU逐条执行用户程序(梯形图、结构化文本等),从输入映像区读取数据,进行逻辑运算,并将结果写入输出映像寄存器(Output Image Register)。程序执行期间,输出端子的物理状态保持不变。
  3. 输出刷新阶段:CPU将输出映像寄存器的状态一次性传送到物理输出端子,驱动外部负载(如继电器、电磁阀、伺服驱动器)。

扫描周期的典型时长为1ms~20ms,取决于程序大小和CPU性能。对于视觉联动系统,扫描周期决定了PLC对视觉结果的最快响应时间。例如,若PLC扫描周期为10ms,视觉系统在某一时刻输出NG信号,PLC最迟需等待一个完整扫描周期才能捕获该信号。

关键参数:在视觉联动PLC项目中,必须明确三个时间参数:
① 视觉检测周期(相机曝光+图像处理+AI推理时间);
② PLC扫描周期(程序执行时间);
③ 通信延迟(协议传输时间)。
系统总响应时间 = 视觉检测周期 + 通信延迟 + PLC扫描周期(最坏情况为2个扫描周期)。节拍设计时必须保证:总响应时间 < 工位允许的剔除/停机反应时间。

3.2 主流PLC品牌与选型对比

工业现场常见的PLC品牌包括西门子(Siemens)、三菱(Mitsubishi)、欧姆龙(Omron)、罗克韦尔(Rockwell/AB)等。不同品牌的PLC在编程软件、通信协议支持、指令系统上存在显著差异,直接影响视觉系统的对接方式。

品牌 典型系列 编程软件 原生通信协议 视觉联动特点
西门子 S7-1200 / S7-1500 TIA Portal Profinet, Modbus TCP (库) Profinet IRT可实现等时同步,适合高速视觉联动;S7-1500支持OPC UA,便于上位机集成
三菱 FX5U / L系列 / Q系列 GX Works3 / GX Developer CC-Link IE, Modbus TCP (指令), SLMP SLMP协议(Seamless Message Protocol)与视觉控制器通信便捷;FX5U内置以太网口,性价比高
欧姆龙 NJ/NX系列 / CP1H Sysmac Studio EtherNet/IP, EtherCAT (NJ/NX) EtherNet/IP与罗克韦尔兼容性好;NJ/NX支持EtherCAT,适合运动控制与视觉同步
罗克韦尔 CompactLogix / ControlLogix Studio 5000 EtherNet/IP, CIP Sync EtherNet/IP原生支持,与视觉系统(如康耐视)集成度高

选型建议:若视觉系统与PLC均为同一品牌生态(如西门子视觉+西门子PLC),优先使用原生协议(Profinet)以获得最佳实时性和诊断功能。若为第三方视觉系统(如基恩士、海康、自主开发AI视觉),则需评估PLC对通用协议(Modbus TCP、EtherNet/IP)的支持程度。对于改造项目,Modbus TCP因其极高的兼容性成为最稳妥的选择。

3.3 核心通信协议深度解析

在视觉联动PLC的工程实践中,三种协议占据主导地位:Modbus TCP、Profinet、EtherNet/IP。理解它们的数据模型、传输机制和实时性差异,是进行通信配置和故障排查的前提。

3.3.1 Modbus TCP:通用性与简单性

Modbus TCP是Modbus协议在以太网上的延伸,基于TCP/IP协议栈,端口502。其数据模型基于寄存器(Holding Register)和线圈(Coil),视觉系统通常将检测结果写入PLC的保持寄存器或线圈区域。

  • 主从架构:PLC作为Modbus主站(Master),视觉控制器作为从站(Slave),或反之。视觉系统主动向PLC写入结果数据。
  • 功能码:常用功能码包括FC01(读线圈)、FC03(读保持寄存器)、FC05(写单个线圈)、FC06(写单个寄存器)、FC15(写多个线圈)、FC16(写多个寄存器)。
  • 数据映射:例如,将视觉检测的OK/NG状态映射到PLC的M0.0(内部继电器),将缺陷码映射到D100~D105(数据寄存器)。
// 视觉系统向PLC写入检测结果示例(Modbus TCP)
// 功能码:FC16(写多个寄存器)
// 起始地址:40001(保持寄存器地址偏移0)
// 数据内容:[0x0001=OK, 0x0002=NG, 0x0003=缺陷码]

请求报文: 00 01 00 00 00 09 01 10 00 00 00 02 04 00 01 00 02
响应报文: 00 01 00 00 00 06 01 10 00 00 00 02

实时性分析:Modbus TCP的响应时间通常在1~10ms量级,取决于网络负载和PLC扫描周期。对于节拍在500ms以上的产线,Modbus TCP完全满足要求;但对于高速飞拍(节拍<200ms)场景,需谨慎评估。

3.3.2 Profinet:西门子生态的实时骨干

Profinet是西门子力推的工业以太网标准,支持三种实时等级:NRT(非实时)、RT(实时)、IRT(等时实时)。在视觉联动中,IRT模式可实现精确的时钟同步(精度达1μs以下),确保视觉触发信号与PLC输出动作的严格同步。

  • 设备模型:PLC作为IO控制器(IO Controller),视觉系统作为IO设备(IO Device)。通过GSDML文件描述设备属性。
  • 数据交换:循环IO数据(Cyclic IO Data)在PLC与视觉系统之间周期性交换,典型周期为1ms~8ms。诊断数据通过非循环通道传输。
  • 等时同步:IRT模式下,所有设备共享同一个同步时钟,PLC的输出刷新与视觉的触发信号可在同一时间基准上对齐。
工程经验:使用Profinet IRT时,必须使用支持IRT的交换机(如西门子SCALANCE X系列),且网络拓扑应为星型或线型,避免环网带来的延迟抖动。在TIA Portal中配置视觉设备时,需正确设置“更新时间”和“看门狗时间”,防止通信超时导致PLC停机。

3.3.3 EtherNet/IP:罗克韦尔与欧姆龙的通用选择

EtherNet/IP基于CIP(Common Industrial Protocol),采用生产者/消费者(Producer/Consumer)模型,支持隐式报文(I/O数据实时交换)和显式报文(参数配置、诊断)。其特色在于同一网络上可同时传输实时I/O和标准TCP/IP数据。

  • 数据对象:CIP对象模型包括Assembly对象(用于I/O数据聚合)、Connection对象(管理连接)、Message Router(路由显式报文)。
  • RPI(Requested Packet Interval):决定数据刷新速率,典型值为10ms~50ms。RPI设置过小会增加网络负载,过大则影响实时性。
  • 兼容性:欧姆龙NJ/NX、罗克韦尔CompactLogix均原生支持EtherNet/IP,视觉系统(如康耐视In-Sight)也广泛支持该协议。

三种协议的选型对比可归纳如下:

对比维度 Modbus TCP Profinet EtherNet/IP
实时性 一般(ms级) 高(IRT可达μs级) 中高(RPI可调)
配置复杂度 低(寄存器映射) 中高(GSDML、拓扑规划) 中(Assembly配置)
诊断能力 弱(仅通信状态) 强(通道诊断、设备诊断) 强(CIP对象诊断)
品牌生态 全品牌通用 西门子为主 罗克韦尔、欧姆龙
适用场景 改造项目、跨品牌集成 高速同步、西门子全集成 AB/欧姆龙生态、中速产线

3.4 实战案例:视觉检测结果通过Modbus TCP联动三菱FX5U剔除

以下案例展示了一个典型的视觉AI缺陷检测联动PLC剔除的完整实施过程,重点体现通信协议配置与调试方法。

项目背景:某电子元器件组装线,产线节拍为2秒/件。视觉系统(海康AI相机)检测产品表面划痕和污渍,检测结果需发送至三菱FX5U PLC,由PLC控制气缸将NG品剔除至废料箱。原方案采用硬接线IO,但存在接线复杂、信号易受干扰、无法传输缺陷码等问题,现改为Modbus TCP通信。

初始参数:

  • 视觉检测周期:约300ms(含AI推理)
  • PLC扫描周期:约5ms(程序较小)
  • 通信方式:视觉系统作为Modbus TCP客户端,PLC作为服务器(从站)
  • 数据映射:D100=检测结果(0=OK, 1=NG, 2=超时);D101=缺陷类型编码(1=划痕, 2=污渍, 3=其他)

实施步骤:

  1. PLC侧配置:在GX Works3中启用FX5U内置以太网口的Modbus TCP服务器功能,设置端口502,允许来自视觉系统IP地址的连接。配置保持寄存器区域D100~D101为可写。
  2. 视觉侧配置:在视觉软件中新建Modbus TCP客户端连接,设置PLC的IP地址(192.168.1.10)和端口(502)。编写脚本:检测完成后,将结果写入D100和D101。
  3. PLC程序编写:在梯形图中添加通信接收完成标志位(如M100),当M100为ON时,读取D100的值。若D100=1,则置位剔除气缸输出Y0,延时200ms后复位;若D100=2(超时),则触发报警输出Y1并停机。
  4. 联调测试:使用Wireshark抓包分析Modbus TCP报文,确认请求/响应帧格式正确。测试三种场景:OK品放行、NG品剔除、通信中断(拔掉网线)时PLC报警。

结果与复盘:通信延迟实测为2~3ms,远小于节拍余量。但调试中发现一个问题:当视觉系统连续快速发送写入请求时,PLC的Modbus服务器缓冲区偶尔溢出,导致通信超时。解决方案是在视觉脚本中增加写入间隔(至少10ms),并在PLC程序中增加通信超时计数,连续3次超时则触发安全停机。

风险提示:在视觉联动PLC的通信设计中,必须考虑通信故障的降级策略。切勿将“通信正常”作为设备运行的隐含前提。应在PLC程序中设置看门狗定时器,若超过设定时间(如500ms)未收到视觉系统的心跳信号,立即执行安全动作(如停机、报警、剔除所有产品)。

3.5 常见误区与总结

在PLC与视觉系统的通信实施中,工程师常陷入以下误区:

  • 误区一:认为通信协议越高级越好。实际上,对于简单的OK/NG信号,Modbus TCP的线圈读写比Profinet IRT更简单可靠,且调试成本更低。
  • 误区二:忽略PLC扫描周期对通信数据的影响。即使通信协议本身延迟很低,PLC程序也需等到下一个扫描周期才能处理收到的数据。因此,通信数据应尽量在程序开头读取,减少等待时间。
  • 误区三:未考虑字节序(Byte Order)问题。不同品牌PLC对多字节数据的存储方式不同(大端/小端),视觉系统写入的16位或32位数据在PLC中可能被错误解析。建议在通信测试阶段先写入固定值(如0x1234)验证字节序。
  • 误区四:忽视通信周期与视觉检测周期的匹配。若视觉检测周期为300ms,而PLC的通信刷新周期为10ms,则PLC会频繁读取到相同的旧数据。应在视觉端增加“数据有效标志”,PLC仅在标志变化时处理新数据。

总结:PLC与视觉系统的通信设计是工业视觉AI项目落地的关键环节。工程师应首先明确节拍要求和实时性需求,据此选择合适的协议;其次,深入理解PLC扫描周期与通信异步性,设计合理的握手信号和数据映射;最后,务必进行通信故障的模拟测试,确保系统的安全性和鲁棒性。掌握Modbus TCP的通用性、Profinet的实时性和EtherNet/IP的兼容性,能够应对绝大多数工业现场的联动需求。