3. PLC基础
在工业视觉AI与PLC联动的系统中,PLC承担着“执行末端”和“现场协调者”的双重角色。视觉系统负责判断“看到了什么”,而PLC负责决定“接下来做什么”。如果对PLC的工作机制、I/O结构和通信方式理解不清,视觉AI给出的结果就无法可靠地转化为现场动作。本节从工程落地角度,梳理PLC的核心原理与关键接口。
一、PLC的循环扫描工作原理
PLC最本质的特征是循环扫描。它不像普通计算机那样按事件驱动执行,而是周而复始地完成同一套动作:读取输入、执行程序、刷新输出、处理通信与诊断。一个完整周期称为扫描周期,通常为1~20ms,高速PLC可低于1ms。
- 输入采样阶段:把物理输入端子(如传感器、视觉OK信号)的当前状态一次性读入输入映像区。
- 程序执行阶段:CPU按用户程序顺序逐条运算,读写内部软元件和映像区,不直接访问物理端子。
- 输出刷新阶段:把输出映像区的结果统一写到物理输出端子,驱动继电器、气缸、指示灯等。
- 通信与诊断:处理上位机、视觉控制器、HMI的通信请求,并执行自检。
二、五种IEC 61131-3编程语言
PLC编程语言由IEC 61131-3标准定义,工程中常见五种。视觉联动项目里,梯形图用于电气联锁,结构化文本用于数据处理,二者配合最普遍。
| 语言 | 缩写 | 特点 | 视觉联动典型用途 |
|---|---|---|---|
| 梯形图 | LD | 图形化,贴近继电器电路 | 急停、安全门、气缸联锁 |
| 功能块图 | FBD | 以功能块连线表达运算 | 滤波、计数、PID调节 |
| 顺序功能图 | SFC | 按步与转换条件组织 | 上料→拍照→判定→分选流程 |
| 结构化文本 | ST | 类Pascal高级语言 | 结果解析、坐标换算、配方管理 |
| 指令表 | IL | 助记符逐条执行 | 老设备维护、底层优化 |
三、I/O模块与信号类型
I/O模块是PLC与现场之间的“神经末梢”。视觉系统与PLC交互,绝大多数信号都落在数字量I/O和部分模拟量上。
- 数字量输入DI:接收视觉“拍照完成”“OK”“NG”等开关信号,常见24V DC源型/漏型,需注意NPN与PNP匹配。
- 数字量输出DO:驱动电磁阀、剔除气缸、三色灯,分继电器输出、晶体管输出、晶闸管输出,高速动作优先晶体管。
- 模拟量AI/AO:用于亮度调节、压力反馈、位置微调等连续量,需关注分辨率与量程标定。
- 特殊模块:高速计数、脉冲输出、运动控制模块,用于编码器同步与飞拍触发。
四、通信接口与工业控制逻辑
视觉AI与PLC的数据交互方式主要有三类:硬线I/O、现场总线、工业以太网。硬线I/O实时性最好但信息量小;以太网信息量大但需关注抖动与握手时序。
// 典型视觉-PLC握手时序(伪代码)
1. PLC置位 Trigger = TRUE
2. 视觉收到触发,拍照并推理
3. 视觉输出 Result_OK / Result_NG
4. 视觉置位 Done = TRUE
5. PLC读取结果,执行分选动作
6. PLC复位 Trigger,视觉复位 Done
// 注意:Done未复位前不得再次触发,防止结果错位
工业控制逻辑的核心是联锁、互锁与状态机。例如:安全门未关闭时禁止气缸动作;视觉NG时禁止流入下一工位;急停触发后所有输出立即复位。这些逻辑必须由PLC硬逻辑保证,不能只依赖视觉软件判断。
五、案例与复盘
某3C装配线使用视觉检测螺丝缺失,视觉控制器通过PROFINET向PLC发送结果。初期偶发漏剔,复盘发现:视觉Done信号宽度仅2ms,而PLC扫描周期为8ms,导致部分结果未被采样。改进方案是将Done信号保持至PLC应答后再复位,并改用中断输入捕获。改造后漏剔率降为零。
该案例说明:理解PLC扫描机制与I/O时序,是视觉AI真正落地工业现场的基本功。只有把视觉的“判断”与PLC的“执行”在时间和逻辑上对齐,系统才能稳定可靠。