1. 2026年做AI工业控制,得先承认“AI不替代PLC,而是补上决策层”
最近几个月,好几个做产线自动化的朋友都来问我同一个问题:“2026年了,AI工业控制系统到底怎么搭?我们想上,但总觉得市面上的AI方案离车间太远。”说实话,我也有过同样的困惑。大模型再聪明,放进工业现场也得先解决延迟、并发、误报这三座大山。但今年真刀真枪跑了几套试点之后,我发现结论变了:AI工业控制系统已经不是停留在PPT里的概念,而是真正能从“演示Demo”走到“产线闭环”了。只是它的搭建思路,跟传统PLC/DCS完全不一样。这篇文章就把我这段时间的架构设计、选型对照、搭建步骤和踩坑过程完整捋一遍,适合正在评估AI落地的自动化工程师、做工业AI解决方案的产品经理,以及想搞懂AI怎么管产线的技术负责人。
1.1 传统工控的边界:为什么PLC够用,却还缺一块
先别急着上AI。得承认一个事实:传统PLC和DCS在工业控制里依然是绝对主力,地位不可动摇。几十毫秒甚至几毫秒级的IO扫描周期,确定性逻辑执行,安全完整性等级认证,这些都是工业控制的生命线。产线上任何一台设备突然停机,都可能造成数十万损失,所以控制系统的可靠性永远是第一位。
但传统控制有一个明显的天花板:它擅长确定性逻辑,却不擅长处理多变量、强耦合、非线性的复杂决策。比如一条锂电池涂布产线,烘箱温度、走带张力、涂布辊间隙、浆料固含量、环境湿度之间相互影响,现场工程师只能靠经验反复调参。这种场景你想要的是根据实时工况动态寻优,传统PID和PLC的逻辑根本写不出来——你没法把所有工况下的最优参数全部穷举成梯形图。
所以传统工控缺的不是“控制能力”,而是“决策能力”。AI工业控制系统真正要补的,是这一块:把过去只能靠老师傅经验判断的事情,变成可计算、可更新、可解释的算法决策。
1.2 AI控制系统的“落点”:感知、决策、执行三层各干各的
很多人一听“AI控制”,第一反应是AI直接取代PLC去控制设备。这个理解最容易出问题。在工业现场,一条产线的完整控制链路可以拆成三层:
- 感知层:机器视觉、振动分析、温度压力传感器、工业声纹,把物理世界变成结构化数据。
- 决策层:大模型、强化学习、优化引擎,负责工况识别、故障诊断、参数寻优、策略生成。
- 执行层:PLC、运动控制卡、机器人控制器,负责把决策指令变成物理动作。
AI工业控制系统真正要做的,是在决策层建设一个“智能大脑”,让它读取感知层的数据,输出可执行的建议或指令,再交给原有的执行层去落地。也就是说,AI不是替换PLC,更不是绕开PLC,而是给控制系统装上一个更聪明的决策模块。
这个定位非常关键。想清楚这一点,后面很多架构选择就顺了。
1.3 2026年技术成熟度:为什么是这个时候才值得搭
不少朋友问,前几年也聊AI工业控制,为什么当时不落地?因为这几年有几个关键条件刚好同时成熟了。
一是边缘推理算力下放到位了。现在一台普通的工控机插上AI加速卡,或者用一块嵌入式GPU模组,就能跑轻量级大模型或者专用预测模型,推理延迟能控制在几十毫秒到几百毫秒之间。这个响应速度足够覆盖工艺优化这类控制闭环,价格也降到了项目能接受的范围。
二是模型和Agent框架开始“工具化”。大模型不再只是聊天窗口,而是能通过标准接口调用外部工具:查时序数据库、读工艺手册、调OPC-UA服务、下发控制指令。2025年前后这一波Agent爆发,让“模型+工具+执行”这种工业控制架构第一次变得工程上可行。
三是现场数据标准化程度高了。OPC-UA、MQTT、Sparkplug B这类协议在产线里普及度越来越高,设备数据不再是信息孤岛,AI系统有干净的“自来水”可喝,而不需要自己到处挖井。
2. 整体架构怎么定:感知-决策-执行三段式与接口规范
架构设计是整个项目的基石。我在最开始做框架时走过弯路,一开始把方案设计得特别复杂,各类微服务十几个模块,结果连调试都费劲。后来重新收敛成“数据接入-模型服务-Agent编排-执行回退”四个层次,逻辑清晰了很多。下面是我实际用的参考架构。
2.1 推荐的四层一总线架构
这套架构可以理解为“四层一总线”:
- 数据接入层:负责从PLC、传感器、视觉系统、MES里取数。核心协议是OPC-UA/MQTT,核心存储是时序数据库。这一层的关键指标是数据完整性和时间戳准确性。
- AI模型服务层:负责跑各种模型,包括大语言模型、专用的预测模型、视觉模型。模型统一封装成HTTP推理服务,对外只暴露“输入特征向量,输出预测结果/决策建议”这一种能力。
- Agent编排层:这是“大脑中的大脑”。它负责理解当前工况,决定调用哪个模型、查哪些数据、要不要生成调整建议,以及把建议翻译成标准指令。
- 执行与回退层:负责把AI生成的指令经过安全校验后发送给PLC、机器人或DCS,同时监控执行结果。一旦发现异常,立刻启动回退机制,恢复为传统控制逻辑。
这四个层之间通过统一消息总线和接口交互。我强烈建议不要把AI内部搞成网状调用,所有的模块通信都走核心总线和注册中心,方便审计和排查。
| 层级 | 核心职责 | 典型组件 | 关键指标 |
|---|---|---|---|
| 数据接入层 | 采集、清洗、时标校准 | OPC-UA客户端、MQTT Broker、TDengine/InfluxDB | 采集完整率、时标偏差 |
| AI模型服务层 | 推理、特征计算、模型版本管理 | ONNX Runtime、TensorRT、vLLM | 推理延迟、服务可用性 |
| Agent编排层 | 任务规划、工具调用、记忆管理 | 流程引擎、LangGraph、Redis状态存储 | 决策周期、任务成功率 |
| 执行回退层 | 指令校验、限幅、下发、回退 | 安全网关、DCS/PLC接口、手动切换开关 | 指令正确率、回退触发时间 |
2.2 接口规范:为什么统一消息格式能救你半条命
做这类项目,最大的隐性成本不是模型效果,而是接口混乱。AI模块之间如果今天传一个JSON带message字段,明天换个服务又带input字段,后天下游解析就崩了。我在第一版系统里就吃过这个亏,联调阶段一大半时间都在对字段。
后来我吸取教训,在系统里统一约定了一个标准消息结构,所有模型服务的请求都用这个结构:
{ "input": { "feature_vec": [23.5, 45.1, 67.2], "context": { "line_id": "L01", "shift": "DAY", "product_code": "BC-2026", "ts": "2026-05-18T14:32:00Z" } }, "session_id": "task-9f2c3e", "version": "1.0" }这里特意用了input而不是message。原因是message这个词在聊天模型上下文里太泛滥了,指代不清楚。工业场景里我们需要的是严格的“输入关键字+上下文元信息”的结构,语义越明确,下游解析就越不容易歧义。再说大模型服务的输入、数据处理管道的输入、Agent内部状态的输入都叫input,一以贯之,工程上少很多心智负担。
2.3 OT/IT边界:AI系统不能直接碰执行器
我始终坚持一个原则:AI可以想说,但不可以直接动手。所有AI生成的调整指令,都不能直接怼给PLC。
具体落地时,我在AI系统和DCS控制器之间加了一道“安全网关”。AI把指令发到网关,网关先做三件事:参数限幅校验,看目标值是否在允许范围内;操作权限校验,看当前AI是否有权限动这个变量;执行区段校验,看现在是不是允许自动执行的工况窗口。校验通过后,风险等级低的指令自动下发,风险等级高的必须等操作员在现场确认。
这么做不是保守,而是必要的工业伦理。AI模型哪怕错误率只有千分之一,在这种天天跑的系统里迟早会撞上一次。有回退机制和权限分级,最多损失一批料;没有,就是一场安全事故。
3. 关键选型对照:大模型、Agent编排、ROS与边缘算力的取舍
选型是另一个头疼环节。市面上AI方案五花八门,不是参数最高就好,而是匹配你现场的工况、延迟、成本要求。我按自己的实测经验把几个关键选型点列出来。
3.1 大模型:云端大模型和本地轻量模型怎么搭配
工业现场选大模型,最大的矛盾是能力与安全性、延迟的三角关系:
- 云端通用大模型:复杂推理和常识能力强,但延迟高(通常秒级),且数据出域安全审查严格,不适合实时决策。
- 本地轻量模型:响应快(毫秒到百毫秒级)、数据不出厂,但复杂推理能力较弱。
我给一个大多数项目都能用“双轨制”:实时控制闭环用本地轻量模型或专用小模型,只做单一任务,比如预测温度趋势、识别异常工况;复杂运维诊断和自然语言报告生成用云端大模型,但它不参与实时控制,只做离线分析和辅助决策。
| 模型类型 | 推理延迟 | 部署位置 | 适合场景 |
|---|---|---|---|
| 专用小模型 | 10-50ms | 边缘盒子 | 视觉质检、趋势预测、异常检测 |
| 轻量大模型 | 百ms级 | 边缘工作站 | 实时控制决策、复杂特征识别 |
| 云端大模型 | 秒级 | 公有云/私有云 | 离线诊断、报表生成、知识问答 |
3.2 Agent编排:有状态编排和无状态推理必须分离
这一节想重点聊一个问题:产线的AI系统怎么扛并发?一条中型产线上,各种数据和事件每秒可能有几百条,关键事件并发上来时,几十台设备同时上报异常都有可能。
我一开始图省事,把Agent要用的状态也放在推理服务里,结果一扩容就乱套。后来按工程经验拆成两个部分:
- 无状态推理服务:可以横向扩展,多挂几个节点,负载均衡分发请求。模型推理本身没有记忆,谁接都一样,天然适合扩。
- 有状态编排逻辑:把每个任务的状态(当前上下文、历史对话、决策步骤)单独存到Redis这类中心化存储中,编排节点只负责调度和执行逻辑,重启了也能从Redis恢复。
这样拆完之后,即使某一个编排节点被打挂了,另一个节点也能接管,不会出现“会话丢了一半”的尴尬。配合消息队列做流量削峰,几千个并发上报也能平稳落库、逐条处理。
3.3 ROS与工业机器人:AI决策后的动作指令怎么交出去
做柔性产线的朋友经常遇到ROS系统的机械臂、AGV,和一些传统PLC混在一起的局面。AI Agent怎么跟ROS协作?我目前的经验是,别让Agent直接发ROS topic,那层耦合太深了。
更靠谱的做法是,Agent先生成“意图+动作参数”,比如“移动到A点并抓取物料”,然后通过一个指令翻译服务,把意图映射为具体的ROS action调用。这个翻译服务就是中间层,负责把Agent的抽象输出,变成ROS能执行的server/action请求。
就目前开源社区来看,把ROS和AI Agent打通已经有不少现成工具链可以借鉴,比如一些Agent开发框架配合ROS去完成感知到执行的任务闭环。但在没有特殊原因的情况下,我建议把Agent发出来的指令再经过工厂级协议(比如OPC-UA或MQTT)过一遍,保证整个链路在上位机、MES层面是统一的、可审计的。不然你日志查不准到底是ROS层面的问题,还是Agent层的问题。
3.4 边缘算力怎么选:别追指标,看控制周期
边缘算力选型的核心逻辑是“控制周期决定算力成本”:
- 视觉质检这类需要毫秒级推理的,必须上带GPU或NPU的边缘盒子,比如Jetson Orin或者带AI加速卡的工控机。
- 工艺优化决策这类秒级到分钟级响应的,一台普通多核工控机加上AI推理接口足够。
- 完全不需要在每个现场部署大模型的场景,可以走中心化服务器,只把轻量Agent放在现场。
千万别为了“AI部署在边缘”硬买个高端盒子,结果里面只跑了个每分钟一次的简单预测,纯纯浪费预算。选型之前先算清楚控制周期和并发请求量,用数据说话。
4. 从0到1搭建闭环:数据打通、推理部署与指令下发的完整步骤
讲完架构和选型,接下来是真正的干货。我把从0到1搭建一套最小闭环的步骤完整拆开,照着这个顺序走,不容易翻车。
4.1 第一步:先把数据底座打通(OPC-UA + MQTT)
没有干净的数据流,AI就是空中楼阁。这一步我推荐直接上OPC-UA采集设备数据,再通过MQTT或者Sparkplug B协议把数据送往边缘服务。
以OPC-UA为例,Python下用asyncua库写一个简单的采集客户端并不复杂:
import asyncio from asyncua import Client async def collect(): # 连接现场OPC-UA服务器 client = Client("opc.tcp://192.168.1.100:4840") await client.connect() # 读取某个节点的实时数值,比如烘箱温度、走带张力 temp_node = client.get_node("ns=2;s=Oven.Temperature") tension_node = client.get_node("ns=2;s=Line.Tension") temp = await temp_node.read_value() tension = await tension_node.read_value() print(f"temp={temp}, tension={tension}") await client.disconnect() asyncio.run(collect())注意重点:采集不能裸奔,要做三件事——采样周期按工艺需要设置,不是越快越好;设置死区,数值在小范围内波动时不重复上报,省流量也省存储;时间戳统一用设备侧时间,并在进库前对齐。
4.2 第二步:定义AI可识别的工艺模型
数据通了以后,别急着上模型。先做一份“标签字典”,把每个变量统一命名、单位、取值范围、异常阈值、所属设备全部登记在册。否则时间一长,“TEMP_1”“温度1”“temp_a”同时出现,AI的输入端就乱了。
这一步还要定义清楚优化目标。比如“在保持涂布良率≥98%的前提下,降低烘箱总能耗3%”。这个目标后面会写进Agent的决策逻辑里,没有清晰目标,Agent就是在盲目调参。
4.3 第三步:模型服务化部署
模型不能躺在训练脚本里,必须封装成服务。我用两种方式:
- 预测类模型用ONNX Runtime或TensorRT部署到边缘,拿到特征向量直接出推理结果。
- 大模型推理用vLLM或者本地量化部署,把模型包成HTTP端点。
所有模型服务统一返回一个标准输出结构:
{ "output": { "prediction": 72.5, "confidence": 0.93, "reason": "根据当前温度梯度与历史良率关系,建议将烘箱三区温度下调2.5℃", "model_version": "optimizer-v2.3" } }我特别要求输出必须带confidence和reason字段。工业场景要审计,要对责任溯源。如果你输出的建议没有置信度和依据,出了问题根本没法解释。
4.4 第四步:Agent编排与工具调用
Agent在架构里扮演“会决策的人”的角色,它要能调用工具去完成一个闭环。我给Agent开放的工具集通常包含四类:
| 工具 | 作用 | 示例 |
|---|---|---|
| 推理服务调用 | 调用实时预测模型 | 查询温度趋势预测 |
| 时序数据查询 | 查历史数据窗口 | 查过去30分钟张力波动 |
| 工艺文档RAG | 查手册和处理经验 | 找某型号浆料的标准参数 |
| 指令下发(受限) | 调安全网关执行调整 | 下发烘箱温度调整指令 |
Agent的决策流程我是这么设计的:
- 接收异常事件或定时触发信号。
- 提取当前上下文(产线编号、产品型号、班组、近端数据)。
- 调用推理模型,获得工况预测和建议。
- 判断置信度:低于阈值的进入人工复核,高于阈值则继续。
- 生成结构化建议指令,通过安全网关下发。
- 完整记录所有中间步骤和日志。
4.5 第五步:指令下发与人工确认
指令下发要分两个级别。低风险、小幅度、参数在安全区间内的调整,可以走“自动执行”;高风险、超范围、涉及停机或重参数的调整,必须走人工确认。
人工确认界面我做得很简单:当前值、建议值、原因、置信度、操作按钮“确认下发”或“拒绝”。确认人是谁、什么时间确认的,都要写进审计日志。
4.6 第六步:回退机制
最后一步是给整个系统上“保险丝”。我在安全网关里写死了一条铁律:AI建议可以随时被否决,DCS和传统PLC的原始控制链路必须独立于AI系统存活。也就是说,就算AI服务整体崩溃,产线也能继续按原来的逻辑跑。
回退触发条件我至少设了三个:收到AI连续输出异常数据或NaN;AI服务心跳超时;置信度持续低于设定阈值。任何一个条件触发,立刻切回传统控制模式。这是整个系统上线以后最让人安心的机制。
5. 实时性与并发压力:AI Agent扛生产负载的工程化手段
生产系统不是实验室,负载是持续不断、不可控的。AI Agent要扛住工业现场的真实压力,有几个工程化问题绕不开。
5.1 先定控制周期,再谈实时性
控制周期准确决定了系统怎么设计。不同环节对响应速度的要求完全不同:
- 设备级安全保护:10ms到100ms级别,这种通常还是由PLC硬逻辑承担,AI不参与。
- 工艺参数优化:秒级到分钟级,正是AI大显身手的区间。
- 排产与调度:分钟级到小时级,可以非实时在后台跑。
我见过不少项目死磕AI推理延迟,结果把系统做得极其复杂,最后发现那个场景根本没有毫秒级需求。先用脑子想想这问题属于哪个周期,再决定要不要砸钱上GPU。
5.2 无状态推理加消息队列削峰
并发问题的核心矛盾,是模型推理服务是“无状态、可横向扩展的”,但Agent编排是“有状态、不能简单一挂了之的”。我采用的方案已经说过,就是无状态推理独立部署,有状态状态放Redis。在这个基础上,再加一道消息队列。
事件进来先进入MQ,按重要程度分优先级队列:设备急停事件走最高优先级,立刻触发推理;一般工况波动走普通队列,排队处理。这样即使某段时间上报风暴集中,队列也能缓冲冲击,不会把推理服务直接打爆。
5.3 缓存与降级策略
工业数据虽然动态变化,但很多相似工况其实会反复出现。如果每次都要大模型从头推理一遍,既慢又浪费算力。我给Agent加了一层“工况缓存”,命中相似度高的历史工况,直接复用上次的有效决策,只做小幅纠偏。
模型服务忙不过来的时候还要会“降级”:从“自动调整模式”降级为“只读建议模式”,AI只输出建议不发指令,优先保产线不断。
这套降级逻辑的作用非常大。有一次我们边缘服务器上的推理服务因为磁盘满了挂掉,整个AI系统自动切换成了只读模式,产线操作员依然能正常看到AI给出的建议,只是不能自动执行。等磁盘清完再切回自动模式,全程没有任何停机。这种韧性,才是工业AI该有的样子。
6. 真实项目里的翻车现场:误报、死循环与安全回退的排障记录
最后分享几个我在现场踩过的坑,可以说每一个都挠掉过头发。写出来,希望大家不用再趟一遍。
6.1 误报:AI把正常波动判断成异常
第一次上线时,系统的误报率高得离谱,尤其是每次换料之后,模型不停报“张力异常”。刚开始我和算法工程师都怀疑是模型不行,后来查了几天日志才发现,模型训练时用的训练数据里几乎没有“换料过渡期”的正常样本。
这个教训很重要:工业现场不是静态数据集,工况会随换料、换班、季节变化而漂移。对策我给你三个,都验证过有效:
- 训练样本里必须包含足够多的“非典型但正常”的工况。
- 把外部事件(换料、设备点检、班组交接)作为上下文信息喂给Agent,让它在异常判断时结合事件背景。
- 阈值动态化:不同产品、不同时段用不同的异常阈值,不能一套参数打天下。
6.2 死循环:Agent反复下发同一条调整指令
这是最吓人的一次故障。某个夜班,Agent发现涂布厚度偏厚,于是每次决策周期都建议“降低涂布辊压力”。正常情况下压力降下来,厚度应该恢复,但实际因为浆料粘度变化,厚度迟迟没到目标值,Agent就一直降压力,30分钟里发了13条同向调整指令。要不是有参数限幅挡着,压力直接降到下限,这批料就废了。
根因就是缺了“指令幂等和抑制机制”。现在我在Agent的决策模板里强制加了三道保险:
- 同类指令限频:同一参数N分钟内最多下发M次调整。
- 调整后强制观察等待:每次调整之后至少隔一到两个控制周期才能再次生成同参数指令。
- 目标函数带惩罚项:如果调整多次后目标没有改善,Agent必须切换诊断模式而不是继续加大力度。
这套机制加上去以后,死循环再没出现过。人工排查时也能从日志里清楚看到“这条指令是第几次同类调整、上次调整是否生效”。
6.3 时钟不同步导致的决策错乱
这个坑最隐蔽,我们排查了近三天。现象是模型预测结果时准时不准,有时同一个数据窗口,两次预测结果完全不同。后来把数据打开一看,边缘服务器和PLC之间的时钟差了大约6秒。数据在入库的时候,边缘服务用本地时间重写了时间戳,导致时序错位,模型看到的数据窗口是错乱的。
对策很简单:全网NTP统一时钟;所有数据在接入层强制用设备侧时间戳,不让采集端随意改写;每天对账一次数据库里的时间戳偏差。别小看这个问题,它在多设备协同、多传感器关联的项目里是重灾区。
6.4 安全回退的三个细节
回退机制做了不少测试后,我总结几个容易忽略的细节:
- 手动/自动切换开关最后一级必须物理化,工作人员在现场有一个可以“硬切”的按钮或旋钮,这个优先级高于任何软件指令。
- 安全网关要能独立于AI系统运行。即使AI服务全部停止,安全网关自身仍能执行限幅和拦截逻辑。
- 上线前做“注入测试”和“指令风暴测试”:人为注入异常数据,看系统会不会乱发指令;一次性灌入大量并发请求,看队列堆积和数据丢失情况。这两项测试不过关,不要上线。
做AI工业控制系统的过程,说到底是把“AI的聪明”和“工业的稳”焊在一起。我最大的体会是:真正让人放心的系统,不是模型表现得有多惊艳,而是它永远知道自己什么时候该闭嘴、什么时候可以把建议交给人去拍板。把接口定清楚、把并发扛起来、把回退做扎实,这三件事做完了,AI工业控制系统才算真正在工厂里站住了脚。