4. PLC判定逻辑基础

视觉检测系统给出的是“结果数据”,而PLC要执行的是“动作指令”。两者之间必须经过一层判定逻辑,把检测结果翻译成PLC能理解的开关量、数值比较结果和时序条件。本节围绕输入输出点分配、布尔逻辑、比较指令、定时器与计数器四个基础要素,说明它们在联动判定中各自承担什么角色,以及如何组合成一条可落地的判定链。

一、输入输出点分配:先定义“谁说什么、谁做什么”

PLC联动判定的第一步不是写程序,而是分配I/O点。视觉检测系统与PLC之间的信号通常分为三类:触发类(PLC告诉相机“可以拍了”)、结果类(相机告诉PLC“OK/NG/数据值”)、状态类(相机就绪、通信正常、急停等)。分配时必须明确每个点的方向、有效电平和含义。

以一个典型检测工位为例,假设使用三菱FX系列或西门子S7-1200这类常见小型PLC,I/O分配可参考下表。注意:以下为教学示例参数,实际项目需按设备手册和电气图确认。

信号名称方向地址示例有效电平含义
相机触发PLC→相机Y0高电平脉冲启动一次拍照
检测完成相机→PLCX0上升沿结果已就绪
OK结果相机→PLCX1高电平判定合格
NG结果相机→PLCX2高电平判定不合格
测量值(模拟量)相机→PLCAIW00~10V对应0~27648尺寸/位置数值
剔除气缸PLC→执行Y1高电平NG时推出工件
报警灯PLC→执行Y2高电平NG或故障指示

分配时要注意:结果类信号建议用上升沿或脉冲,避免电平长期保持导致重复判定;模拟量输入要确认量程与相机输出一致,否则比较阈值会整体偏移。I/O分配表一旦确定,后续布尔逻辑和比较指令都基于这些地址编写,不能随意更改。

二、布尔逻辑:把多个条件组合成一个判定

布尔逻辑解决的是“多个条件同时满足才动作”或“任一条件满足就动作”的问题。在联动判定中,最常见的组合是:检测完成 AND 结果为NG AND 工件到位 → 剔除。用梯形图表达就是串联触点;如果是“NG或超差”则用并联。

实际编程时,建议把“结果有效”和“结果内容”分开处理。例如:

// 教学示例:NG判定与剔除输出
// X0: 检测完成上升沿
// X2: NG结果
// X3: 工件到位
// Y1: 剔除气缸

LD X0        // 检测完成
AND X2       // NG结果
AND X3       // 工件到位
OUT Y1       // 剔除气缸动作

这段逻辑的含义是:只有“检测完成”且“结果为NG”且“工件到位”三个条件同时成立,Y1才输出。如果缺少X3,可能在工件还没到位时就剔除,造成误动作;如果缺少X0,可能重复使用上一次结果。布尔逻辑的价值就在于把“什么时候用结果”和“结果是什么”严格区分开。

三、比较指令:处理数值型检测结果

视觉检测不仅输出OK/NG,还经常输出尺寸、角度、偏移量等数值。PLC用比较指令判断这些数值是否在允许范围内。以西门子S7-1200为例,比较指令包括CMP >=、CMP <=、CMP ==等;三菱FX系列则用<、>、=等比较触点。

假设相机输出“孔位偏移量”,模拟量通道AIW0对应0~27648,实际偏移范围-5.0~+5.0mm,则换算关系为:偏移量 = (AIW0 - 13824) / 27648 × 10.0。若允许偏差为±0.5mm,则对应模拟量阈值约为13824±1382,即下限12442、上限15206。程序中可写:

// 教学示例:偏移量超差判定
// AIW0: 偏移量模拟输入
// M10: 超差标志

LDW>= AIW0 15206   // 超过上限
ORW<= AIW0 12442   // 低于下限
= M10              // 超差标志置位

比较指令的关键是阈值来源:可以写死在程序里,也可以从HMI或配方中读取。写死适合固定产品,配方适合多品种切换。无论哪种方式,都要在调试时用已知标准件验证阈值是否对应正确,避免“数值对了但判定反了”。

四、定时器与计数器:处理时间和次数条件

定时器和计数器在联动判定中解决两类问题:持续时间和累计次数。例如:NG信号需要保持200ms以上才确认,避免相机抖动误报;连续3个工件NG则触发报警并停机;剔除气缸动作后需要延时500ms再复位,确保工件被推走。

以三菱FX系列为例,定时器T0设定值K200表示20秒(100ms时基),若需要200ms则用K2。计数器C0设定K3表示计满3次。典型逻辑如下:

// 教学示例:连续NG计数与报警
// X0: 检测完成上升沿
// X2: NG结果
// C0: 连续NG计数器,设定值K3
// Y2: 报警灯

LD X0
AND X2
OUT C0 K3      // 每次NG计数一次
LD C0
OUT Y2         // 计满3次报警
LD X1          // OK结果
RST C0         // OK时清零计数器

这里要注意:计数器必须在OK时复位,否则“连续NG”会变成“累计NG”。定时器则要注意时基选择,100ms时基适合几百毫秒级延时,10ms时基适合更短的精确定时。定时器和计数器的组合还能实现“NG持续超过2秒且累计超过5次”这类复合条件,但逻辑会变复杂,建议拆成中间标志位再组合。

五、四要素如何串成一条判定链

把上述四要素串起来,一条完整的联动判定链是:I/O分配定义信号入口和出口 → 布尔逻辑组合“何时判定”和“判定什么” → 比较指令处理数值型结果 → 定时器/计数器处理持续时间和累计次数 → 最终输出到执行机构。任何一个环节定义不清,都会导致误判、漏判或重复动作。

PLC联动判定四要素与信号链 输入点分配 X0 检测完成 X1 OK结果 X2 NG结果 X3 工件到位 AIW0 偏移量 方向:相机→PLC 布尔逻辑 AND:同时满足 OR:任一满足 上升沿:单次触发 中间标志:M10 组合:X0·X2·X3 作用:定义判定条件 比较指令 CMP >= 上限 CMP <= 下限 阈值:12442~15206 超差标志:M10 数值型结果判定 作用:范围判断 定时器/计数器 T0 K2 = 200ms C0 K3 = 连续3次 OK时RST C0 延时复位气缸 持续时间/次数 作用:时序与累计 输出点分配与执行 Y1 剔除气缸 | Y2 报警灯 | Y0 相机触发 方向:PLC→执行机构/相机 判定链:I/O分配定义信号入口出口 → 布尔逻辑组合“何时判定+判定什么” → 比较指令处理数值范围 → 定时器/计数器处理持续时间与累计次数 → 输出执行 关键原则:结果有效与结果内容分开;阈值需用标准件验证;计数器在OK时复位;定时器时基与延时需求匹配

最后强调三个容易出错的点。第一,结果有效信号和结果内容信号要分开:X0表示“结果来了”,X1/X2表示“结果是什么”,两者不能混用。第二,比较阈值必须用标准件验证:模拟量换算容易在量程和偏移上出错,建议先用已知尺寸的标准件跑一遍,确认AIW0读数与显示值一致后再投入判定。第三,计数器复位条件要明确:连续NG计数必须在OK时清零,否则会变成累计NG,导致报警逻辑与预期不符。把I/O分配、布尔逻辑、比较指令、定时器与计数器四者按信号链顺序理清,PLC联动判定就有了可靠的基础。