2. PLC基础回顾

在工业AI与PLC联动项目中,AI算法最终要“落到”PLC上执行,因此必须先把PLC的基本工作方式理解清楚。PLC不是一台普通计算机,它面向的是确定性、实时性、抗干扰的工业现场:输入信号来自按钮、限位、传感器,输出信号去驱动接触器、电磁阀、变频器和指示灯。AI给出的决策,只有通过PLC的输入输出映射和扫描机制,才能变成现场动作。

一、PLC的核心工作原理

PLC采用“循环扫描”的工作方式,而不是像PC那样按事件随机执行。一个完整循环通常包含四个阶段:

  1. 输入采样:把所有输入端子当前的通断状态一次性读入输入映像区。
  2. 程序执行:CPU按用户程序顺序逐条运算,读写内部软元件和输出映像区。
  3. 输出刷新:把输出映像区的结果一次性送到输出模块,驱动外部负载。
  4. 系统处理:通信、诊断、看门狗、后台任务等。

关键点是:程序执行期间,即使外部输入发生变化,也不会立即影响本次扫描的输入映像。这保证了同一扫描周期内逻辑的一致性,也决定了AI联动时必须考虑“信号何时被采样、结果何时被输出”。

PLC循环扫描:输入采样 → 程序执行 → 输出刷新 外部输入 按钮/限位/传感器 输入映像区 本周期冻结状态 CPU程序执行 梯形图/逻辑运算 输出映像区 待刷新结果 输出模块 继电器/晶体管 外部负载 阀/接触器/灯 下一扫描周期重新采样,循环往复 扫描周期时间构成 T = 输入采样 + 程序执行 + 输出刷新 + 系统处理 典型范围:1 ms ~ 50 ms(取决于程序规模与CPU) AI联动关注:周期抖动会直接影响响应实时性

二、扫描周期与实时性

扫描周期(Scan Cycle Time)是PLC最重要的性能参数之一。它决定了输入变化到输出响应之间的最大延迟。假设扫描周期为10 ms,那么一个输入信号最坏情况下要等将近一个周期才被采样,再经过程序执行和输出刷新,实际响应可能达到20 ms以上。

在AI联动场景中,这一点尤其关键。例如视觉AI检测到缺陷后,通过通信把结果写给PLC,PLC需要在下一次扫描中读取该寄存器并触发剔除动作。如果扫描周期过大,或者AI结果写入时机刚好错过采样窗口,就会产生一拍延迟。因此,工程上常把AI结果写入与PLC扫描同步考虑,必要时使用中断或高速任务。

提示:不要简单认为“PLC很快”。扫描周期是循环的,通信数据到达PLC后,通常要等下一个扫描周期才被用户程序使用。做联动方案时,应把“通信延迟 + 扫描周期 + 输出动作时间”一起估算。

三、输入输出模块与信号类型

PLC的输入输出模块是它与现场之间的桥梁。常见类型如下:

模块类型 典型信号 常见电压/电流 典型用途
数字量输入 DI 通/断、0/1 24 V DC、110/220 V AC 按钮、限位、接近开关
数字量输出 DO 继电器、晶体管、晶闸管 24 V DC、220 V AC 电磁阀、接触器、指示灯
模拟量输入 AI 4~20 mA、0~10 V 电流/电压 温度、压力、流量
模拟量输出 AO 4~20 mA、0~10 V 电流/电压 变频器给定、比例阀
高速计数/脉冲 脉冲串、编码器 24 V DC 定位、测速、计数

接线时要注意源型/漏型(Sink/Source)区别,以及公共端COM的接法。数字量输入通常采用光电隔离,输出模块则要关注负载电流和浪涌保护。AI联动中,如果AI结果需要通过模拟量输出给变频器,还要考虑量程映射和线性化。

四、常见品牌与编程语言

工业现场PLC品牌众多,不同品牌在编程软件、指令系统和通信协议上差异明显。常见品牌包括:

  • 西门子(Siemens):S7-1200/1500、S7-200 SMART,使用TIA Portal,支持LAD、FBD、SCL。
  • 三菱(Mitsubishi):FX、Q、iQ-R系列,使用GX Works,梯形图为主。
  • 欧姆龙(Omron):CP、CJ、NJ系列,Sysmac Studio,支持ST。
  • 罗克韦尔(Rockwell):ControlLogix、CompactLogix,Studio 5000,支持梯形图、功能块、ST。
  • 汇川、台达、信捷:国产主流,性价比高,常用于中小型设备。

IEC 61131-3标准定义了五种编程语言:梯形图(LAD)、功能块图(FBD)、顺序功能图(SFC)、指令表(IL)、结构化文本(ST)。其中梯形图最接近继电器逻辑,现场维护人员最熟悉;ST则更接近高级语言,适合复杂运算和AI联动中的数据处理。

// 示例:ST语言中读取AI结果并触发输出
IF AI_Result_Ready THEN
    Defect_Count := Defect_Count + 1;
    Reject_Valve := TRUE;
    Reject_Timer(IN := TRUE, PT := T#500ms);
    IF Reject_Timer.Q THEN
        Reject_Valve := FALSE;
        AI_Result_Ready := FALSE;
    END_IF;
END_IF;

五、案例与常见误区

某包装线使用视觉AI检测标签缺失,AI工控机通过Modbus TCP把结果写入PLC的保持寄存器。PLC程序中每50 ms读取一次该寄存器,若为1则触发剔除气缸。调试时发现偶尔漏剔,排查后发现:AI写入结果后只保持20 ms,而PLC扫描周期为30 ms,导致部分结果未被采样到。解决办法是AI侧把结果保持到收到PLC确认信号后再清除,或改用中断方式通知PLC。

常见误区:
  • 把PLC当成PC,认为通信写入后程序会立即响应,忽略扫描周期。
  • 输入信号抖动未做滤波,导致AI联动误触发。
  • 输出模块负载电流选型不足,频繁动作后损坏。
  • 不同品牌PLC的寄存器地址和通信协议混用,导致数据错位。

理解PLC的循环扫描、输入输出映像和模块特性,是后续设计AI与PLC联动方案的基础。只有把AI的“智能”放进PLC的“确定性循环”里,系统才能稳定、可预期地运行。