2、基础知识:PLC工作原理、扫描周期、I/O映射、常用编程语言及与AI系统的接口方式

在智慧工厂的“AI+PLC联动”架构中,PLC(可编程逻辑控制器)是执行层与控制层的核心枢纽。AI系统负责感知、推理与决策,而PLC则负责将决策转化为物理世界的确定性动作。理解PLC的工作原理、扫描周期、I/O映射、编程语言以及与AI系统的接口方式,是构建可靠联动系统的前提。本章将从工程实践角度,系统梳理这些基础概念,并重点剖析AI与PLC在数据交互中的关键机制。

AI 系统域 视觉识别 / 缺陷检测 工艺优化 / 预测模型 Python / C++ / 边缘计算 PLC 控制域 梯形图 / 结构化文本 扫描周期 / I/O映射 Siemens / Mitsubishi / Omron 现场设备域 传感器 / 执行器 伺服 / 变频 / 气缸 Profinet / EtherCAT / IO-Link 接口层:OPC UA / Modbus TCP / 网关 / 数字量IO / 工业以太网 数据采集(AI→PLC) + 控制指令下发(AI→PLC) + 状态反馈(PLC→AI) 识别结果 控制指令 I/O信号 驱动指令 PLC 扫描周期(循环执行) ① 读取输入 ② 执行用户程序 ③ 通信处理 ④ 更新输出 循环

2.1 PLC核心工作原理:从继电器逻辑到存储程序控制

PLC的诞生源于对传统继电器控制系统的替代。其本质是一台专为工业环境设计的工业计算机,采用“存储程序、循环扫描”的工作方式。与普通PC不同,PLC的硬件架构(CPU、存储器、I/O接口、电源、通信模块)经过抗振动、抗电磁干扰、宽温设计,且其操作系统为实时操作系统,保证控制任务的确定性执行。

PLC的工作过程可抽象为四个阶段:输入采样、程序执行、通信处理、输出刷新。在输入采样阶段,PLC读取所有数字量输入端子(如传感器信号)和模拟量输入通道(如温度、压力变送器信号)的状态,并将其存入输入映像寄存器。在程序执行阶段,CPU按照用户程序(梯形图或结构化文本)的逻辑,从第一条指令开始逐条执行,运算结果存入输出映像寄存器。通信处理阶段用于处理与编程器、HMI、上位机或AI系统的数据交换。输出刷新阶段则将输出映像寄存器的状态一次性传送到输出锁存器,驱动外部执行器(如接触器、电磁阀、伺服驱动器)。

关键理解:PLC的“扫描”是周期性的、顺序的、确定性的。一个完整的扫描周期(Scan Cycle)通常在几毫秒到几十毫秒之间,具体取决于程序长度、I/O点数及通信负载。对于AI+PLC联动系统,必须将AI推理时间与PLC扫描周期进行匹配设计,避免因AI响应延迟导致控制时序错乱。

2.2 扫描周期与实时性:AI联动中的时序约束

扫描周期是PLC最重要的性能指标之一。它决定了PLC对输入变化的响应速度。扫描周期的计算公式为:

扫描周期 = 输入采样时间 + 程序执行时间 + 通信处理时间 + 输出刷新时间

在实际工程中,程序执行时间占主导,其大小取决于指令条数、指令类型(位逻辑指令快于数学运算指令)以及是否启用中断程序。对于AI联动场景,需要关注以下时序约束:

  • AI推理延迟:视觉识别或模型推理通常需要20-200ms,而PLC扫描周期可能只有5-20ms。若AI结果直接参与安全联锁,必须通过硬接线或专用安全PLC实现,不能依赖AI软件。
  • 数据一致性:AI系统读取的PLC数据必须是同一扫描周期内的快照,否则可能导致决策依据不一致。建议通过PLC的“数据块”或“全局数据包”一次性上传。
  • 通信抖动:以太网通信存在不确定性,对于要求严格同步的场景,应使用PROFINET IRT或EtherCAT等实时以太网协议。
场景PLC扫描周期AI推理时间联动策略
缺陷检测分拣10ms50msAI提前一个工位预判,PLC缓存结果
安全急停联锁5ms不适用硬接线安全回路,AI仅做监控
工艺参数实时调节20ms100msPLC采用“预测+反馈”双通道控制
风险提示:切勿将AI推理结果直接作为安全联锁的唯一依据。工业安全标准(如ISO 13849、IEC 61508)要求安全功能必须独立于非安全功能。AI系统只能作为“建议”或“预判”,最终安全动作必须由PLC或专用安全继电器执行。

2.3 I/O映射与地址分配:AI数据交互的物理基础

I/O映射是将PLC的物理输入/输出通道与内部存储地址建立对应关系的过程。在AI+PLC联动中,I/O映射不仅是电气接线的逻辑映射,更是数据语义的桥梁。例如,AI系统识别出“产品A有划痕”,需要将这一结论映射为PLC中的一个布尔变量(如DB10.DBX0.0),或者映射为某个数字量输出点(如Q0.3),用于触发剔除气缸。

I/O映射分为三类:数字量I/O映射(DI/DO)、模拟量I/O映射(AI/AO)和通信映射(如PROFINET IO设备映射)。数字量映射简单直接,但信息量有限;模拟量映射用于连续过程控制;通信映射则通过工业以太网将AI系统(如工业PC、智能相机)作为PROFINET IO设备接入PLC,实现高带宽数据交换。

在工程实践中,建议建立I/O映射表,明确每个信号的功能、地址、数据类型、刷新周期和来源/去向。对于AI联动项目,应预留足够的备用I/O点,并采用结构化命名(如“AI_Result_OK”、“AI_Result_NG”、“Robot_Start_Cmd”),便于跨团队协作。

经验建议:当AI系统与PLC通过通信方式交互时,优先使用PLC的“数据块”(DB)或“全局数据包”作为共享内存区域。AI系统通过OPC UA或Modbus TCP读写这些数据块,避免直接操作I/O地址,提高代码可维护性和安全性。

2.4 常用编程语言:梯形图与结构化文本的协同

IEC 61131-3标准定义了PLC的五种编程语言:梯形图(LD)、结构化文本(ST)、功能块图(FBD)、指令表(IL)和顺序功能图(SFC)。在AI+PLC联动项目中,最常用的是梯形图和结构化文本。

梯形图直观易懂,适合表达位逻辑、互锁、自锁等控制逻辑,是电气工程师的首选。例如,一个简单的电机启停控制:

// 梯形图逻辑(示意)
// 网络1:启动保持
// | | 启动按钮(I0.0) | | 停止按钮(I0.1) | | 电机接触器(Q0.0) |
// |---[ ]-------------------[\/]-------------------( )----|
// |                                                       |
// |---[ ] 电机接触器(Q0.0) -------------------------------|

结构化文本类似Pascal语言,适合编写复杂的数学运算、数据处理、循环和条件判断。在AI联动中,结构化文本常用于解析AI系统发送的JSON或字节流数据、执行PID调节、实现状态机逻辑。例如,解析AI返回的缺陷坐标:

// 结构化文本示例:解析AI结果
CASE ai_command OF
    1: // 启动分拣
       sort_enable := TRUE;
       defect_x := ai_data[0];  // 从通信缓冲区读取X坐标
       defect_y := ai_data[1];
       // 调用运动控制功能块
       MoveToPosition(defect_x, defect_y);
    2: // 停止
       sort_enable := FALSE;
END_CASE;

在实际项目中,推荐采用“混合编程”策略:用梯形图实现安全联锁和基本逻辑,用结构化文本实现数据处理和算法,用顺序功能图实现多步骤工艺流程。这样既保证了程序的可读性,又提升了复杂逻辑的表达效率。

2.5 AI与PLC的接口方式:从物理IO到工业以太网

AI系统与PLC的接口方式决定了数据交互的带宽、实时性和可靠性。根据应用场景的不同,主要有以下四种方式:

  1. 数字量I/O直连:AI系统(如智能相机)通过数字量输出点直接连接PLC的DI模块。例如,相机检测到OK/NG,输出24V信号。这种方式响应快(毫秒级)、成本低,但信息量有限,只能传递“是/否”结论。
  2. 模拟量I/O连接:AI系统输出4-20mA或0-10V模拟信号,用于传递连续值(如位置偏差、温度补偿值)。适用于需要精细调节的场景,但精度受限于模拟量分辨率。
  3. 串口通信(RS-232/485):通过Modbus RTU协议传输数据。适合小数据量、低速场景,但抗干扰能力较弱,布线距离受限。
  4. 工业以太网(OPC UA / Modbus TCP / PROFINET):这是当前智慧工厂的主流方式。AI系统作为客户端或服务器,通过OPC UA与PLC交换结构化数据。OPC UA支持复杂数据类型、加密和语义建模,非常适合AI与PLC的深度集成。
接口方式数据带宽实时性典型应用
数字量I/O1 bit<1ms合格/不合格判定
模拟量I/O16 bit<10ms连续位置补偿
Modbus RTU≤256字节10-100ms小型设备数据采集
OPC UA不限5-50msAI视觉、MES、云端协同
工程推荐:对于新建的AI+PLC联动项目,优先采用OPC UA over PROFINET或EtherCAT的架构。AI系统(如工业PC)通过OPC UA Server将识别结果写入PLC的DB块,同时PLC通过OPC UA Client将设备状态、报警信息上传给AI系统。这种双向通信机制既保证了数据完整性,又便于后期扩展。

2.6 实战案例:视觉检测与PLC分拣联动的接口设计

以下是一个典型的AI视觉检测与PLC联动分拣案例,用于说明上述基础知识的综合应用。

背景与约束:某汽车零部件生产线需要检测螺栓表面划痕,产线速度120件/分钟,即每件间隔500ms。现有PLC为Siemens S7-1500,扫描周期约8ms。视觉系统采用Basler工业相机+本地GPU推理,单件检测耗时约80ms。要求NG件自动剔除,且不能影响产线节拍。

初始现象与目标:最初方案是视觉系统直接输出数字量信号给PLC,但发现只能传递“OK/NG”结论,无法传递缺陷类型和位置信息,导致后续追溯困难。目标改为通过OPC UA传递结构化数据,包括缺陷类型、坐标、置信度。

关键参数与实施步骤:

  1. I/O映射设计:在PLC中建立DB块“AI_Result”,包含:Bool IsOK、Int DefectType、Real PosX、Real PosY、Real Confidence。
  2. 通信配置:PLC作为OPC UA Server,视觉系统作为Client。视觉系统每检测完一个工件,将结果写入DB块,并置位“NewData”标志。
  3. PLC程序逻辑:在OB1中调用FB“AI_Data_Handler”,当检测到“NewData”上升沿时,读取DB块数据,根据DefectType触发分拣气缸动作。同时,将当前工件序号与AI结果绑定,存入FIFO缓冲区。
  4. 时序匹配:由于视觉检测时间(80ms)小于工件节拍(500ms),视觉系统有充足时间提前将结果发送给PLC。PLC在工件到达分拣工位前,已准备好剔除指令。

结果对比与复盘:改造后,系统不仅实现了高速剔除,还实现了缺陷数据的全流程追溯。通过OPC UA的语义模型,MES系统也能实时获取质量数据。复盘发现,初期通信抖动导致偶尔丢包,通过启用OPC UA的“KeepAlive”机制和PLC侧的数据有效性校验(增加时间戳),问题得以解决。

风险与代价:OPC UA通信增加了系统复杂度,需要专业人员进行配置和调试。此外,PLC的DB块容量和通信负载需提前评估,避免因数据量过大导致扫描周期延长。在本案例中,DB块仅占用约50字节,对扫描周期影响可忽略不计。

2.7 常见误区与总结复盘

在AI+PLC联动项目的实施中,工程师常陷入以下误区:

  • 误区一:认为AI可以完全替代PLC。实际上,AI擅长非结构化决策,PLC擅长确定性执行,二者是互补关系。
  • 误区二:忽视扫描周期对AI决策的影响。AI系统必须考虑PLC的扫描周期,避免发出“过时”的控制指令。
  • 误区三:I/O映射混乱。未建立清晰的映射表,导致调试时信号追溯困难。
  • 误区四:通信协议选择不当。在实时性要求高的场合使用非实时以太网,导致控制抖动。