2. PLC基础回顾
在智慧工厂的AI+PLC联动方案中,AI负责“看、算、判”,PLC负责“控、动、稳”。如果对PLC的基本工作方式理解不深,AI给出的优化指令就可能被错误地映射到I/O点,或者在扫描周期的时序上产生冲突。本节把PLC的核心机制重新梳理一遍,为后续的AI联动打好基础。
一、PLC工作原理:循环扫描与集中输入/集中输出
PLC本质上是一台工业计算机,但它与普通计算机最大的区别在于:它不按“事件驱动”执行程序,而是按循环扫描的方式周而复始地运行。一个完整的工作过程通常分为四个阶段:
- 输入采样:PLC一次性读取所有输入模块的当前状态,写入输入映像区。此后即使外部信号变化,程序中也只能看到本次采样值。
- 程序执行:CPU按用户程序的顺序,从第一条指令执行到最后一条,逐条运算并更新输出映像区。
- 输出刷新:把输出映像区的结果一次性写入输出模块,驱动继电器、接触器、变频器等执行机构。
- 系统管理:处理通信、诊断、看门狗、内存自检等后台任务。
这种“集中采样、集中输出”的机制带来一个重要特性:输入信号的宽度必须大于一个扫描周期,否则可能被漏读。对于高速脉冲信号,必须使用高速计数模块或中断功能,而不能依赖普通输入点。
二、扫描周期:AI联动必须关注的时序参数
扫描周期是PLC从一次输入采样到下一次输入采样的时间间隔,典型值为1~50ms,大型程序或复杂通信可能达到100ms以上。它与AI联动的关键关系体现在三个方面:
- 控制实时性:AI推理结果下发到PLC后,最快也要等一个扫描周期才能生效。若AI推理耗时200ms,而PLC扫描周期20ms,则整体响应延迟主要由AI侧决定。
- 信号保持时间:AI通过通信写入的触发位,必须保持至少一个扫描周期,否则可能被程序漏读。建议使用上升沿检测或握手信号。
- 看门狗与超时:若AI通信中断,PLC应通过看门狗定时器自动回退到安全逻辑,而不是无限等待。
经验公式:AI联动总响应时间 ≈ AI采集与推理时间 + 通信传输时间 + 1~2个PLC扫描周期 + 执行机构动作时间。在节拍要求高的产线,必须把PLC扫描周期压到10ms以内,并让AI推理走边缘侧。
三、I/O模块:AI与物理世界的接口
I/O模块是PLC与现场设备之间的桥梁,分为数字量(DI/DO)和模拟量(AI/AO)两大类。AI联动项目中,AI通常不直接驱动执行器,而是通过PLC的I/O模块间接控制。
| 模块类型 | 典型信号 | AI联动中的角色 | 注意事项 |
|---|---|---|---|
| DI 数字量输入 | 24V DC、干接点 | 采集按钮、限位、光电开关状态,作为AI判断的上下文 | 注意输入滤波时间,高速信号需用中断或HSC |
| DO 数字量输出 | 继电器、晶体管 | 执行AI下发的启停、换向、分拣指令 | 晶体管输出用于高频动作,继电器输出寿命有限 |
| AI 模拟量输入 | 4~20mA、0~10V、RTD | 采集温度、压力、流量,作为AI模型输入特征 | 注意量程映射、滤波与屏蔽接地 |
| AO 模拟量输出 | 4~20mA、0~10V | 输出AI优化后的设定值,如变频器频率、阀位 | 需做限幅与斜坡处理,防止执行机构冲击 |
四、常见品牌与编程语言
工业现场PLC品牌众多,AI联动方案通常需要适配不同品牌的通信协议和编程习惯。常见品牌包括:西门子(S7-1200/1500)、三菱(FX/Q/iQ-R)、欧姆龙(NJ/NX)、罗克韦尔(ControlLogix)、施耐德(M241/M580)、汇川(AM/H5U)等。它们大多支持以太网、Modbus TCP、OPC UA或Profinet/EtherNet/IP,这为AI系统接入提供了标准通道。
IEC 61131-3定义了五种标准编程语言,实际工程中最常用的是梯形图(LD)、结构化文本(ST)和功能块图(FBD):
- 梯形图(LD):图形化、直观,适合电气工程师快速上手,常用于逻辑联锁和顺序控制。
- 结构化文本(ST):类Pascal的高级语言,适合复杂运算、循环、数组和AI数据预处理。
- 功能块图(FBD):以功能块连线表达信号流,适合PID、滤波、通信等模块化设计。
// ST语言示例:AI下发的目标速度限幅与斜坡处理
IF AI_Speed_SP > SPEED_MAX THEN
Speed_SP := SPEED_MAX;
ELSIF AI_Speed_SP < SPEED_MIN THEN
Speed_SP := SPEED_MIN;
ELSE
Speed_SP := AI_Speed_SP;
END_IF;
// 斜坡限速,防止执行机构冲击
IF Speed_SP > Speed_Actual + RAMP_STEP THEN
Speed_Actual := Speed_Actual + RAMP_STEP;
ELSIF Speed_SP < Speed_Actual - RAMP_STEP THEN
Speed_Actual := Speed_Actual - RAMP_STEP;
ELSE
Speed_Actual := Speed_SP;
END_IF;
// 通信心跳检测,超时回退安全值
IF AI_Heartbeat = FALSE AND TON_Heartbeat.Q THEN
Speed_Actual := 0.0;
AI_Enable := FALSE;
END_IF;
五、案例场景:AI视觉分拣与PLC联动
某3C装配线使用AI视觉检测产品外观,检测结果通过Modbus TCP写入PLC。PLC侧用ST语言做限幅和握手,用梯形图做气缸动作联锁。AI判定NG时,写入Reject_Req := TRUE并保持50ms;PLC在扫描周期内检测到上升沿后,置位Reject_Done,AI收到确认后清除请求。若AI通信中断超过200ms,PLC自动切换到“全部放行+报警”的安全策略,避免产线停死。
调试建议:先用PLC的强制表或仿真功能验证AI写入的每一个变量地址,再接入真实AI服务。重点检查字节序、数据类型(INT/REAL/BOOL)和寄存器映射,这三处是AI+PLC联动最常见的“隐形坑”。
六、常见误区与复盘
- 误区一:把AI输出直接映射到DO。AI推理存在抖动和误判,必须经过PLC侧的限幅、滤波、互锁和超时回退。
- 误区二:忽略扫描周期导致的信号丢失。AI写入的脉冲信号若短于一个扫描周期,PLC可能完全看不到,应改用握手或保持型信号。
- 误区三:模拟量不做量程和滤波处理。AI模型对输入尺度敏感,PLC侧应统一工程量纲,并做一阶滤波或中值滤波。
- 误区四:通信中断无安全策略。必须设计看门狗和故障回退,确保AI掉线时设备处于安全状态。
把以上PLC基础打牢,后续的AI联动才不会停留在“能通”的层面,而是真正做到“通得稳、控得准、退得安全”。