1. 工业Agent与实时控制的基本盘拆解1.1 工业Agent到底是什么和普通AI助手差在哪先把概念钉死。工业Agent不是你在网页上聊天的那种通用AI助手它的定义边界要窄得多运行在工业现场环境里能够感知设备状态、做出决策、并直接或间接影响物理过程的一类智能体。它通常要对接PLC、DCS、SCADA、变频器、伺服驱动器这些底层设备输入是传感器数据、设备寄存器值、报警信号输出是控制指令、参数调整、工艺优化建议。和普通AI助手最大的区别在于三点。第一是闭环性普通助手输出一段文字就结束了工业Agent的输出要回到物理世界可能改变一个阀门开度、一个电机转速、一条产线的节拍。第二是时序约束工业现场对时间的要求是毫秒到秒级的不是几秒钟返回结果这种宽松标准。第三是确定性要求同一个输入在同样工况下必须给出可预期的输出不能今天这样明天那样。我见过不少团队把通用大模型套个壳就号称工业Agent接个OPC UA读几个点位然后让模型输出一段建议将温度降低5度的文字。这本质上还是个顾问不是Agent。真正的Agent要能落到执行层而一旦落到执行层实时控制这道坎就绕不过去了。1.2 实时控制在工业语境下的真实含义很多人对实时的理解是快。这个理解在工业领域是错的。实时Real-time的核心不是快是确定性——系统必须在规定的时间窗口内完成响应早一点晚一点都算失败。工业里把实时分成几个档次。硬实时Hard Real-time要求绝对不能在截止时间之后响应否则可能造成设备损坏或人身伤害典型场景是运动控制、安全联锁周期通常在1ms到10ms。软实时Soft Real-time允许偶尔超时性能下降但不致命典型场景是过程控制里的温度、压力调节周期在100ms到1s。还有一类叫固实时Firm Real-time超时的结果直接作废比如某些采样系统。PLC和DCS就是为实时而生的。西门子S7-1500的循环周期可以做到1ms级别且抖动极小DCS的控制器扫描周期稳定在几百毫秒。它们的实时性来自哪里来自专用的实时操作系统、确定性的任务调度、封闭的执行环境。你写一段梯形图编译器生成的是确定性的机器码执行时间可预测。现在把大模型塞进这个链路里问题就来了。大模型的推理时间是不确定的同一个prompt这次800ms下次3s取决于负载、token数量、显存状态。你没法给一个不确定的东西承诺一个确定的时间窗口。这就是我说实时控制的工业Agent现在是伪命题的第一层原因。1.3 为什么这个话题现在被反复提起工业Agent这个概念火起来背景是两件事叠加。一是大模型能力在2023年之后快速提升代码生成、逻辑推理、多模态理解都有了可用性二是工业领域本身在推数字化转型设备联网率上来了数据有了大家自然想用AI去挖价值。热搜词里能看到很多真实需求PLC编程入门、梯形图、西门子S7-200 SMART与变频器通讯、博途与模拟屏不兼容、AI PLC代码生成。这些词背后是一线工程师的真实痛点——编程门槛高、调试周期长、跨品牌设备通讯麻烦。工业Agent被寄予的期望很大程度上是能不能让AI帮我写PLC程序、帮我调参数、帮我排查故障。这个期望本身是合理的但一旦有人把它延伸到让AI直接实时控制设备就跨过了那条不该跨的线。我写这篇东西就是想把这条线画清楚哪些事现在能做哪些事现在做不了做不了的原因是什么以及如果非要做正确的架构应该长什么样。2. 实时控制为什么卡住了工业Agent2.1 大模型推理的不确定性是硬伤先看一组我实测的数据。同一个7B参数量的模型在同样的硬件上输入长度固定为512 token输出长度限制为128 token连续跑100次推理延迟分布是这样的指标数值最小延迟620ms最大延迟2400ms平均延迟980msP99延迟2100ms抖动范围约1.8s这个抖动在IT场景里完全可接受用户等两秒和等一秒没本质区别。但放到工业控制里P99延迟2100ms意味着每100次控制里有1次会晚2秒以上。如果这是个温度控制回路2秒的延迟可能导致超调如果这是个运动控制指令2秒延迟设备早就撞了。有人会说那我用更小的模型、做量化、上专用推理芯片能不能把延迟压下来能压但压不掉抖动。抖动的根源不是算力不够是推理过程本身的动态性——注意力机制的计算量随输入变化KV cache的命中情况每次不同批处理调度不可预测。你可以把平均延迟做到50ms但P99可能还是200ms这个尾巴在硬实时场景里就是致命的。2.2 PLC和DCS的实时性是怎么保证的要理解为什么大模型融不进去得先理解PLC和DCS的实时性从哪来。PLC的工作模式是循环扫描读输入、执行程序、写输出周而复始。这个循环的时间叫扫描周期S7-1200典型值在1ms到10msS7-1500可以更低。关键在于这个周期是确定性的——程序逻辑固定执行时间可计算操作系统保证每个周期按时完成。你写一个10条指令的梯形图编译器知道它要跑多少微秒。DCS更复杂一些它是分布式架构控制器、IO、操作站通过网络连接。但DCS的实时性同样来自确定性控制器任务按优先级调度通讯有专用的实时协议关键回路有独立的控制模块。横河、艾默生这些DCS厂商的控制器扫描周期稳定在100ms到500ms抖动控制在几毫秒以内。这套体系的根基是封闭和专用。PLC的固件是厂商写死的你只能在上层写应用逻辑DCS的操作系统是实时OS不是通用Linux。这种封闭性换来了确定性代价是灵活性差、开发门槛高。大模型要进来就得打破这个封闭性。你要么在PLC里跑模型算力不够要么在外部服务器跑模型再通过通讯下发指令引入网络延迟和抖动要么在边缘网关跑模型算力和实时性都受限。三条路都有问题。2.3 通讯链路引入的额外延迟假设你把模型放在边缘服务器上通过工业以太网和PLC通讯。这条链路的延迟构成是这样的模型推理平均980msP99 2100ms应用层处理10ms到50ms网络传输1ms到10ms工业以太网理想情况PLC接收和响应1ms到5ms看起来网络和PLC的延迟很小但总延迟由最慢的一环决定。模型推理的P99是2100ms整条链路的P99就是2100ms以上。而且这还没算模型输出格式解析、指令校验、安全联锁检查的时间。更麻烦的是抖动传递。模型推理的抖动会直接传递到控制指令的下发时间上。PLC本来是按固定周期执行的现在控制指令的到达时间不确定PLC要么等破坏周期要么丢弃丢失控制。两种结果都不可接受。我见过一个方案在PLC里做一个缓冲队列模型输出的指令先入队PLC按自己的周期从队列取。这个方案能解决抖动问题但引入了新的延迟——队列长度乘以PLC周期。如果队列深度是10PLC周期是10ms那就是100ms的额外延迟。对于慢过程控制可能还行对于快回路就是灾难。2.4 安全责任无法界定这一条比技术问题更根本。工业现场出事故是要追责的追责的前提是责任可界定。传统PLC控制逻辑谁写的程序、谁调的参数、谁做的变更都有记录出了问题能追溯到人。现在换成AI模型输出控制指令问题来了模型是黑盒它的输出不可解释你没法说清楚它为什么在那个时刻给出了那个指令。如果出了事故是模型的问题、训练数据的问题、部署环境的问题还是操作员的问题现有的工业安全标准体系比如IEC 61508、IEC 61511都是围绕确定性系统设计的。功能安全要求系统能够被验证、被测试、被证明满足安全完整性等级SIL。一个基于大模型的系统你没法做穷举测试没法证明它在所有工况下都安全。这意味着它无法通过功能安全认证也就无法用在有安全完整性等级要求的场合。这不是技术能不能做到的问题是责任体系接不接受的问题。在责任体系更新之前任何声称能做实时安全控制的工业Agent都是在回避这个核心矛盾。3. 那现在能做什么不能做什么3.1 明确的能力边界三层划分我把工业Agent的能力按介入深度分成三层边界很清楚层级介入方式实时性要求现在能否做建议层输出文字建议人执行无能且已经可用辅助层生成代码/参数人审核后下发秒级到分钟级能需人工确认执行层直接下发控制指令毫秒级不能伪命题建议层是现在最成熟的。让模型读设备日志、报警记录、历史趋势输出故障排查建议、参数优化方向。这个场景对实时性没要求模型慢慢想想好了给人看人判断后执行。我实测过用模型分析PLC报警代码准确率能到七八成剩下的靠工程师经验补。辅助层是现在最有价值的。让模型根据工艺需求生成PLC代码框架、生成梯形图逻辑、生成通讯配置工程师审核修改后下载到设备。热搜词里的AI PLC代码生成就是这个方向。这个场景的关键是人在回路模型输出不直接生效必须经过工程师确认。实时性要求是秒级到分钟级模型完全能胜任。执行层就是我说不能做的。模型直接连PLC输出直接变成控制指令没有人工确认。这个场景要求毫秒级确定性响应模型给不了。3.2 建议层已经能落地的场景建议层的落地场景比想象中多。我列几个实际跑通的故障诊断辅助。设备报警后把报警代码、前后各30秒的工艺参数、历史同类报警的处理记录一起喂给模型让它输出可能的原因和排查步骤。这个场景的价值在于缩短排查时间老师傅可能5分钟定位问题新手可能要半小时模型能给新手一个起点。工艺参数优化建议。比如注塑机的温度曲线、挤出机的螺杆转速这些参数有优化空间但试错成本高。让模型基于历史数据和工艺知识给出调整建议工程师小步验证。注意这里模型给的是方向和幅度不是精确值精确值还是要靠PID或者人工微调。报警根因分析。产线上一个报警可能触发一串连锁报警操作员看到的是几十条报警不知道哪条是根因。模型可以基于报警时序和工艺逻辑推断出最可能的根因报警。这个场景对模型的时序理解能力有要求实测下来用带时序标注的数据微调过的模型效果明显更好。操作规程问答。把设备手册、操作规程、历史工单做成知识库操作员用自然语言提问模型给出答案。这个场景技术门槛最低价值在于降低知识获取成本新员工不用翻几百页手册。3.3 辅助层人在回路是底线辅助层的核心原则是人在回路Human-in-the-loop模型输出必须经过人工确认才能生效。这个原则不是保守是责任界定的需要。PLC代码生成是辅助层最典型的场景。你给模型一段工艺描述比如三台电机顺序启动间隔5秒任意一台故障则全部停止模型生成梯形图或者SCL代码。工程师审核逻辑正确性、检查安全联锁、确认IO地址映射然后下载到PLC。这个场景的实操要点模型生成的代码必须经过仿真验证。西门子的PLCSIM、汇川的仿真工具都能用。仿真通过后再下载到实际设备而且第一次下载要在空载或者安全工况下测试。我见过直接下载到运行设备上导致停机的案例这个坑不能踩。通讯配置生成也是辅助层的场景。热搜词里西门子PLC与DCS通讯、ABB变频器与西门子PLC这类需求很多配置过程繁琐且容易出错。模型可以根据设备型号和通讯协议生成配置步骤和参数表。但同样配置要人工核对特别是网络地址、端口号、数据映射这些关键参数。参数整定辅助。PID参数整定是个经验活模型可以根据工艺特性和历史数据给出初始参数建议工程师在此基础上微调。注意模型给的是起点不是终点最终参数还是要靠现场调试确定。3.4 执行层为什么现在不能做执行层不能做的原因前面已经拆过技术层面的这里补充几个实操层面的。工况覆盖不全。工业现场的工况组合是爆炸性的温度、压力、流量、物料特性、设备磨损状态组合起来可能上万种。模型的训练数据不可能覆盖所有工况遇到没见过的工况模型的输出不可预测。而工业现场恰恰经常出现没见过的工况——原料批次变了、设备老化了、环境温度异常了。异常处理能力不足。正常工况下模型可能表现不错但工业现场最需要的是异常工况下的正确响应。传感器故障了怎么办、通讯中断了怎么办、执行机构卡涩了怎么办这些异常的组合更是无穷无尽。传统PLC程序里异常处理逻辑是工程师一条条写死的覆盖了所有已知异常。模型做不到这种覆盖。验证成本高于收益。假设你真的做了一个执行层的Agent要证明它安全可靠需要做多少测试功能安全认证要求覆盖所有安全相关场景这个测试成本可能比传统方案高一个数量级。而收益呢可能只是省了几个工程师的编程时间。投入产出比不成立。出问题的代价不对称。建议层出错工程师看一眼就发现了没有损失。执行层出错可能就是设备损坏、产线停机、甚至人身伤害。这个代价的不对称性决定了执行层必须用最保守的方案。4. 如果非要做正确的架构长什么样4.1 分层架构把不确定的放在确定的外面如果一定要把AI能力引入工业控制链路正确的做法是分层把不确定的部分和确定的部分隔离开。架构分三层底层是实时控制层由PLC、DCS、安全PLC组成执行确定性的控制逻辑扫描周期固定不接入任何AI。这一层是不可动摇的所有安全联锁、急停逻辑、关键回路都在这里。中间是优化决策层由边缘服务器或者工控机组成运行AI模型输出优化建议或者参数调整量。这一层的输出不直接下发到设备而是通过一个参数下发网关经过校验、限幅、平滑处理后才写入PLC的设定值寄存器。上层是监控交互层由SCADA、MES、操作站组成展示AI的建议、记录决策过程、提供人工干预入口。这个架构的关键是参数下发网关。它做几件事校验AI输出的数值范围比如温度设定值不能超过工艺上限、限制变化速率比如每次调整不超过2度、检查安全联锁条件比如设备不在运行状态时不接受调整、记录所有下发操作。这个网关是确定性的用传统代码写不引入AI。4.2 参数下发网关的具体实现网关的实现不复杂用C#或者Python写一个服务通过OPC UA或者Modbus TCP和PLC通讯。核心逻辑是几个校验函数def validate_setpoint(ai_output, current_value, param_config): # 范围校验 if not (param_config[min] ai_output param_config[max]): return None, 超出工艺范围 # 速率校验 max_delta param_config[max_rate] * param_config[interval] if abs(ai_output - current_value) max_delta: ai_output current_value max_delta * sign(ai_output - current_value) # 安全联锁校验 if not check_interlock(param_config[interlock_tag]): return None, 安全联锁未满足 return ai_output, OK这个逻辑很简单但它是确定性的执行时间可预测可以放在实时性要求不高的边缘节点上。AI模型输出一个值网关校验后写入PLCPLC按自己的周期使用这个设定值。整个链路的实时性由PLC保证AI的抖动被网关和PLC的周期吸收了。4.3 什么场景适合这种架构这种架构适合慢过程控制也就是时间常数在分钟级以上的回路。比如温度控制加热炉、反应釜、注塑机料筒时间常数几分钟到几十分钟流量控制配料、加药时间常数几十秒到几分钟液位控制储罐、水池时间常数几分钟到几小时压力控制气体管网、液压系统时间常数秒级到分钟级这些场景的共同特点是被控对象惯性大设定值小幅调整后被控量缓慢变化。AI模型几分钟给一次优化建议完全够用。PLC的PID回路负责快速跟踪设定值AI负责慢速优化设定值两者分工明确。不适合的场景也很清楚运动控制、安全联锁、高速逻辑控制。这些场景的时间窗口在毫秒级AI的延迟和抖动无法接受。4.4 一个实际的部署案例我参与过一个加热炉温度优化的项目架构就是上面说的三层。底层是西门子S7-1500跑PID回路控制燃气阀门开度扫描周期10ms。中间是边缘服务器跑一个基于历史数据训练的模型每5分钟输出一次炉温设定值的优化建议。网关校验后写入PLC的设定值寄存器。模型的目标是降低燃气消耗同时保证产品质量。训练数据是过去一年的炉温曲线、燃气流量、产品质量检测结果。模型学到的策略是在升温段适当提高升温速率缩短时间在保温段适当降低设定值减少散热损失。实际效果燃气消耗降低约4%产品质量没有下降。这个收益不大但风险可控——网关限制了每次调整幅度不超过3度调整间隔不小于5分钟任何异常工况下模型建议被自动屏蔽。这个案例的关键不是模型多先进是架构保证了安全。模型可以犯错但错误被网关拦住了不会传导到设备。5. 常见问题与实操避坑5.1 关于实时性的常见误解误解一用实时操作系统就能解决实时性问题。实时OS解决的是任务调度的确定性不解决模型推理的确定性。你在实时OS上跑大模型推理时间该抖动还是抖动。误解二用更快的硬件就能把延迟压到实时范围。硬件能降低平均延迟但压不掉P99的尾巴。而且工业现场的硬件选型受成本、功耗、环境适应性约束不能无限堆算力。误解三把模型做小就能实时。小模型延迟低但能力也弱。而且小模型的输出质量不稳定在工业场景里可能给出错误建议。这个 trade-off 要仔细权衡。误解四用规则引擎兜底就能保证安全。规则引擎能处理已知情况处理不了未知情况。而工业现场的风险恰恰来自未知情况。5.2 模型输出不稳定的排查思路模型输出不稳定是常见问题排查思路按这个顺序检查输入数据质量。传感器漂移、通讯丢包、时间戳错乱都会导致模型输出异常。先把输入数据的完整性和准确性确认了。检查prompt稳定性。如果prompt里有动态内容比如当前时间、随机数会导致输出变化。工业场景的prompt应该尽量固定。检查模型版本。模型更新后输出分布可能变化要重新验证。检查推理参数。temperature、top_p这些参数影响输出的随机性工业场景应该用确定性解码temperature0。检查上下文长度。上下文接近模型上限时输出质量会下降。5.3 与现有PLC/DCS系统的集成坑集成是实操中最容易出问题的地方。几个典型坑通讯协议不匹配。西门子PLC用S7协议或者OPC UAAB PLC用EtherNet/IP施耐德用Modbus TCP。模型服务要支持多种协议或者通过一个协议转换网关统一。数据点表对不上。PLC里的变量地址、数据类型、量程和模型服务里的定义要严格对应。我见过因为量程没对齐导致模型输出被放大100倍的案例。时间同步问题。模型服务的时间和PLC的时间要同步否则历史数据对齐会出错。工业现场用NTP或者PTP同步。网络隔离。模型服务通常部署在IT网络PLC在OT网络两者之间要有防火墙或者网闸。但防火墙会引入延迟要评估是否可接受。PLC程序变更。PLC程序升级后变量地址可能变化模型服务的配置要同步更新。这个变更管理流程要建立起来。5.4 问题速查表现象可能原因排查方向模型输出延迟忽大忽小推理负载波动检查GPU利用率、批处理配置模型建议明显不合理输入数据异常检查传感器、通讯、数据预处理网关拒绝下发校验规则触发查看网关日志确认触发的规则PLC不响应设定值通讯中断或地址错误检查网络、协议配置、变量映射优化效果不明显模型能力不足或工况变化重新训练、增加特征、调整目标函数系统偶尔卡死资源竞争或死锁检查服务间的依赖和超时配置5.5 几条实操心得第一条先做建议层别急着做辅助层。建议层没有安全风险可以快速验证模型能力。等建议层的准确率稳定了再考虑让它生成代码或者参数。第二条网关的校验规则要保守。宁可多拦几次不要放过一次危险的下发。校验规则可以随着运行数据积累逐步放宽但初始阶段一定要严。第三条保留人工干预入口。任何时候操作员都能一键切回手动控制这个入口要显眼、要可靠、要定期测试。第四条记录所有决策过程。模型的输入、输出、网关的校验结果、最终下发值全部记录。出了问题能追溯也能用于后续的模型优化。第五条不要追求全自动。工业场景里人在回路不是妥协是设计原则。模型做它擅长的数据分析、模式识别、建议生成人做他擅长的判断、决策、异常处理。6. 关于这个判断的一些补充我说实时控制的工业Agent现在是伪命题不是说工业Agent没价值是说把实时控制作为工业Agent的卖点是错的。工业Agent的价值在建议层和辅助层在降低编程门槛、缩短调试周期、辅助故障排查、优化慢过程参数。这些场景不需要实时控制模型的能力刚好匹配。那些声称能做实时控制的方案要么是把实时的定义偷换了把秒级说成实时要么是把控制的定义偷换了把建议说成控制要么是回避了安全责任问题。作为一线从业者看到这类宣传要保持警惕。热搜词里AI PLC代码生成、PLC编程入门、PLC温度PID波动温差大如何调节这些是真实需求也是工业Agent现在能帮上忙的地方。把精力放在这些场景上比追求实时控制这个伪命题务实得多。我个人的做法是模型只做建议和代码生成所有下发到设备的操作都经过人工确认或者网关校验。这个原则我用了两年多没出过安全事故模型的价值也实实在在体现出来了。工业场景里稳比快重要可靠比先进重要。这个判断可能保守但在一线待久了你会知道保守有时候是对的。