2. PLC基础回顾

在AI+PLC项目交付中,AI并不是替代PLC,而是围绕PLC的确定性控制能力,补足感知、预测、优化与决策辅助。因此,做AI落地前必须先把PLC的底层运行逻辑重新梳理清楚:它如何扫描、如何读写I/O、如何执行程序、不同品牌和语言有什么差异,以及AI究竟能接在哪一层。本节从工程交付视角回顾PLC基础,并给出AI介入的典型切入点。

一、PLC工作原理:循环扫描与映像区

PLC最核心的特征是循环扫描执行,而不是像PC那样按事件随机执行。一个完整扫描周期通常包含四个阶段:输入采样、程序执行、输出刷新、系统通信与自诊断。关键点在于:输入采样阶段把物理输入状态读入输入映像区,程序执行阶段只访问映像区,输出刷新阶段再把输出映像区结果一次性送到物理输出模块。这意味着在一个扫描周期内,程序看到的输入是“冻结”的,输出也不会立即变化。

这个机制带来两个工程后果:第一,扫描周期直接影响响应实时性,周期越长,信号捕捉越容易漏掉窄脉冲;第二,AI若通过外部接口读写PLC,必须理解映像区与物理I/O之间的时间差,否则会出现“AI算得对、现场动作慢半拍”的交付问题。

PLC循环扫描周期与AI介入层 输入采样 物理输入→映像区 程序执行 逻辑/运算/通信 输出刷新 映像区→物理输出 通信/自诊断 总线、HMI、上位机 下一周期 循环往复 扫描周期 T = 输入采样 + 程序执行 + 输出刷新 + 通信诊断 AI切入点A:数据采集层 OPC UA / Modbus / 网关 读取映像区与历史趋势 用于状态识别、异常检测 不改变PLC原有逻辑 AI切入点B:优化决策层 参数寻优、排产、能耗优化 输出设定值/配方/调度建议 经PLC或上位机下发 需限幅、互锁与人工确认 AI切入点C:边缘协同层 边缘盒子/工控机运行模型 视觉、振动、预测性维护 结果以I/O或总线回传 PLC仍负责安全与执行

二、扫描周期与实时性:AI必须尊重的硬约束

扫描周期由程序规模、指令类型、通信负载和硬件性能共同决定。小型逻辑控制可能只有1~5ms,复杂运动或大量模拟量处理可能达到20~50ms甚至更长。对于AI应用,必须区分三类任务:

  • 硬实时任务:急停、安全门、伺服使能等,必须由PLC本地逻辑保证,AI不得直接干预。
  • 软实时任务:温度调节、速度给定、配方切换,可由AI输出建议值,经PLC限幅和斜坡处理后执行。
  • 非实时任务:报表、趋势分析、模型训练、排产优化,可在上位机或云端完成。
常见误区:把AI推理结果直接写入PLC输出点,绕过原有互锁与安全逻辑。正确做法是AI只写“设定值/建议值”寄存器,由PLC程序做合法性判断、限幅、延时和互锁后再驱动输出。

三、I/O类型与AI数据接入

PLC的I/O分为数字量输入DI、数字量输出DO、模拟量输入AI、模拟量输出AO,以及温度、称重、编码器等特殊模块。AI项目最常接触的是模拟量输入和通信数据。模拟量涉及量程、分辨率、滤波和工程值换算,若量纲不统一,模型输入会严重失真。

I/O类型 典型信号 AI接入方式 注意事项
DI 数字量输入 按钮、限位、光电开关 状态采集、事件触发 注意去抖与扫描周期漏脉冲
DO 数字量输出 继电器、指示灯、阀 一般不直接由AI驱动 必须保留PLC互锁与安全回路
AI 模拟量输入 4-20mA、0-10V、PT100 模型特征输入、趋势预测 量程、滤波、采样周期要统一
AO 模拟量输出 变频器给定、比例阀 AI优化值经PLC限幅后输出 设置变化率限制,防止冲击
通信数据 Modbus、OPC UA、Profinet 批量采集与指令下发 关注地址映射、字节序、超时

四、常见品牌与编程语言

不同品牌PLC在编程习惯、通信协议和工程工具上差异明显。交付AI项目时,先确认品牌与协议,再决定数据采集方案。

  • 西门子:S7-1200/1500,TIA Portal,支持LAD、FBD、SCL、GRAPH,OPC UA与Profinet生态成熟。
  • 三菱:FX、Q、iQ-R系列,GX Works,梯形图为主,CC-Link与MC协议常用。
  • 欧姆龙:CP、CJ、NJ/NX,Sysmac Studio,支持ST与运动控制。
  • 罗克韦尔:ControlLogix、CompactLogix,Studio 5000,LAD、FBD、ST、SFC。
  • 汇川、台达、信捷:国产主流,性价比高,Modbus与以太网通信普遍。

IEC 61131-3定义的五大语言中,LAD适合电气逻辑,FBD适合信号流,SCL/ST适合算法与数据处理,SFC适合流程状态机,IL已逐步淘汰。AI工程师若要与PLC程序协同,至少应能读懂LAD和SCL,并理解变量表、DB块和地址映射。

// SCL示例:AI建议值限幅后写入AO
IF aiSpeedSet > 1500.0 THEN
    aiSpeedSet := 1500.0;
ELSIF aiSpeedSet < 0.0 THEN
    aiSpeedSet := 0.0;
END_IF;

aoSpeed := aiSpeedSet * 27648.0 / 1500.0; // 归一化到模拟量输出

五、案例场景:AI视觉分拣与PLC协同

某包装线使用PLC控制输送带与气缸分拣,新增AI视觉识别瑕疵品。交付方案是:相机与边缘盒子运行视觉模型,识别结果通过数字量I/O或Modbus写入PLC;PLC在下一个扫描周期读取该信号,结合编码器位置触发气缸动作。这里AI不直接控制气缸,只提供“判断结果”,PLC负责时序与安全。调试时重点检查扫描周期是否小于物料经过检测工位的时间,以及信号保持时间是否足够被PLC采样到。

交付建议:AI与PLC之间至少保留一层“信号保持与握手”逻辑,例如AI输出结果后置位一个“结果有效”位,PLC读取后回一个“已接收”位,避免因扫描周期错位导致漏检或重复动作。

六、复盘:AI介入PLC项目的四个常见坑

  1. 把AI当实时控制器:AI推理有延迟和抖动,不能替代PLC的硬实时逻辑。
  2. 忽略扫描周期:窄脉冲信号、快速事件可能被漏采,需用中断或高速计数模块。
  3. 量纲与地址映射错误:模拟量未换算、字节序不一致,导致模型输入完全错误。
  4. 缺少安全边界:AI输出未限幅、未互锁,异常值直接下发可能造成设备损坏。

总结来看,PLC提供确定性的执行底座,AI提供数据驱动的优化能力。理解扫描周期、映像区、I/O类型和品牌语言差异,是设计AI介入方案的前提。只有把AI放在合适的层级,并保留PLC的安全与实时职责,项目才能稳定交付。