2. PLC基础回顾
在工业AI与PLC联动项目中,AI算法最终要“落到”PLC上执行,因此必须先把PLC的基本工作方式理解清楚。PLC不是一台普通计算机,它面向的是确定性、实时性、抗干扰的工业现场:输入信号来自按钮、限位、传感器,输出信号去驱动接触器、电磁阀、变频器和指示灯。AI给出的决策,只有通过PLC的输入输出映射和扫描机制,才能变成现场动作。
一、PLC的核心工作原理
PLC采用“循环扫描”的工作方式,而不是像PC那样按事件随机执行。一个完整循环通常包含四个阶段:
- 输入采样:把所有输入端子当前的通断状态一次性读入输入映像区。
- 程序执行:CPU按用户程序顺序逐条运算,读写内部软元件和输出映像区。
- 输出刷新:把输出映像区的结果一次性送到输出模块,驱动外部负载。
- 系统处理:通信、诊断、看门狗、后台任务等。
关键点是:程序执行期间,即使外部输入发生变化,也不会立即影响本次扫描的输入映像。这保证了同一扫描周期内逻辑的一致性,也决定了AI联动时必须考虑“信号何时被采样、结果何时被输出”。
二、扫描周期与实时性
扫描周期(Scan Cycle Time)是PLC最重要的性能参数之一。它决定了输入变化到输出响应之间的最大延迟。假设扫描周期为10 ms,那么一个输入信号最坏情况下要等将近一个周期才被采样,再经过程序执行和输出刷新,实际响应可能达到20 ms以上。
在AI联动场景中,这一点尤其关键。例如视觉AI检测到缺陷后,通过通信把结果写给PLC,PLC需要在下一次扫描中读取该寄存器并触发剔除动作。如果扫描周期过大,或者AI结果写入时机刚好错过采样窗口,就会产生一拍延迟。因此,工程上常把AI结果写入与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的“确定性循环”里,系统才能稳定、可预期地运行。