1. 为什么“实时控制的工业Agent”现在是个伪命题
1.1 先把概念掰开:工业Agent和实时控制到底指什么
“工业Agent”这个词最近一年被聊得很多,但真正在产线边上待过的人,听到“实时控制”四个字和“Agent”放在一起,第一反应往往是皱眉。我先把这两个概念拆开说清楚,因为很多争论其实是定义没对齐造成的。
工业Agent,通常指的是跑在工控环境里、能感知设备状态、做一定决策、再下发指令的智能体。它可能基于大模型,也可能是规则引擎加优化算法,形态上可以是边缘盒子里的一个服务,也可以是上位机里的一个进程。它的核心能力是“感知—决策—执行”这个闭环,只不过决策部分引入了AI。
实时控制,在工业语境里有非常明确的硬指标。不是“响应快”就叫实时,而是分硬实时和软实时。硬实时要求任务必须在确定的时间窗口内完成,抖动通常在微秒到毫秒级,比如运动控制里的插补周期、PLC的扫描周期。软实时允许一定范围的延迟波动,比如几百毫秒到几秒的工艺优化、批次调度。
把这两个放一起,“实时控制的工业Agent”字面意思就是:一个带AI决策能力的智能体,直接参与硬实时控制回路。我个人的判断是,在当下的技术栈和工程约束下,这个命题基本不成立。不是AI不行,而是实时控制这条链路对确定性的要求,和Agent当前的能力边界之间存在结构性矛盾。
1.2 为什么这个话题值得认真聊
有人会说,不就是个概念炒作吗,过两年就没人提了。但我不这么看。工业现场对AI的期待是真实的,很多工厂确实想用Agent解决老师傅经验难沉淀、非标项目调试周期长、多设备协同靠人盯的问题。如果大家把方向搞错了,把资源砸在“让Agent直接做实时控制”上,最后交付不了,受伤的是整个行业的信心。
我见过几个团队,拿着大模型去做PLC的实时逻辑替换,结果连最基本的扫描周期抖动都过不了。这不是他们技术差,而是选错了战场。所以我想把这件事讲透:实时控制的门槛到底在哪,Agent现在能做什么、不能做什么,以及真正有价值的切入点在哪里。
提示:本文讨论的“实时控制”特指工业自动化领域的硬实时控制回路,不涉及IT系统里的软实时或准实时场景。
2. 实时控制的门槛:确定性不是“快”就能解决的
2.1 硬实时的三个硬指标:周期、抖动、确定性
很多人对实时控制的理解停留在“响应要快”,但工业现场真正卡人的是另外三个词:周期、抖动、确定性。
周期是控制回路执行一次的时间间隔。比如一个伺服轴的电流环可能50微秒跑一次,速度环1毫秒,位置环4毫秒。PLC的扫描周期常见在1到10毫秒,大型DCS的控制器任务周期可能到100毫秒甚至更长。周期本身不是最难的,难的是每一次都必须按时完成。
抖动是实际执行时间与理论周期的偏差。硬实时系统要求抖动极小,通常在一个很小的百分比以内。如果某个周期因为Agent在跑推理、在等网络、在GC,导致这次扫描晚了3毫秒,对于高速运动控制来说可能就是一次撞机或者产品报废。
确定性是整条链路的行为可预测。从传感器采样、控制器计算、到执行器输出,每一步的耗时上限都是已知且稳定的。确定性不是平均值好看就行,而是最坏情况也必须满足。这一点和AI推理的“平均延迟还行、偶尔抽风”是完全冲突的。
我拿PLC举例。西门子S7-1500的循环中断OB,可以设置1毫秒的固定周期,系统保证这个OB按设定周期执行,优先级高于普通程序。这种确定性是写在硬件和固件层面的,不是靠软件优化堆出来的。你让一个跑在通用操作系统上的Agent去替代这个环节,先不说功能,光是确定性这一关就过不了。
2.2 PLC和DCS为什么能扛住实时:专用硬件加确定性调度
PLC和DCS能扛住实时控制,靠的不是算力强,而是整套架构为确定性服务。
PLC的扫描机制是“输入采样—程序执行—输出刷新”循环,每个循环的时间是可预测的。它的RTOS调度策略是静态优先级抢占式,关键任务永远优先。它的通信协议如PROFINET IRT、EtherCAT,能做到微秒级同步和确定性传输。这些能力是软硬一体的,CPU、总线、协议栈、编译器全都为实时让路。
DCS更典型。大型DCS的控制器任务周期可能不快,但它的确定性极高,冗余切换、时钟同步、I/O扫描都是专门设计的。你去看DCS的控制器手册,里面会明确写任务周期抖动范围、冗余切换时间上限,这些数字是工程承诺,不是实验室数据。
对比一下Agent的运行环境。如果Agent跑在边缘服务器上,操作系统是Linux,调度器是CFS,网络走TCP/IP,推理框架有动态内存分配,模型加载和推理时间受输入长度、批大小、GPU状态影响。这条链路上每一个环节都引入了不确定性。你可以做优化,可以把最坏情况压到很低,但很难做到PLC那种“承诺级”的确定性。
2.3 一个具体场景:温度PID控制为什么不能交给Agent
热词里有个问题很典型:“plc温度pid波动温差大如何调节”。这个问题本身就说明了实时控制的难点。
温度PID控制看起来简单,但它的实时性要求体现在采样周期和积分项上。如果采样周期不稳定,积分项就会累积误差,导致超调或者振荡。PLC做PID,采样周期是固定的,比如100毫秒一次,积分时间常数按这个周期整定。如果换成Agent来算PID输出,采样周期变成“大概100毫秒,偶尔200毫秒”,积分项就乱了,温度曲线会明显变差。
更关键的是,温度控制回路通常和联锁、报警、安全逻辑绑在一起。如果Agent推理超时,导致加热输出没有及时切断,可能引发超温事故。这种风险不是靠“加个看门狗”就能完全消除的,因为看门狗本身也有响应时间。
我实测过一个案例:用某开源框架在边缘盒子上跑一个简单的PID推理,平均延迟20毫秒,但P99延迟到了180毫秒。对于温度这种大惯性对象,180毫秒的偶发延迟可能还能忍,但对于压力、流量、位置这些快变量,这就是灾难。
注意:不要用“平均延迟”来评估实时控制可行性,必须看最坏情况延迟和抖动分布。
3. Agent当前的能力边界:它擅长什么、不擅长什么
3.1 Agent的优势在“非确定性决策”,不在“确定性执行”
Agent真正有价值的地方,是处理那些规则不明确、需要经验判断、需要多源信息融合的场景。比如非标项目的调试,老师傅要根据现象猜问题,Agent可以辅助推理。比如工艺参数优化,Agent可以在允许的范围内试参数。比如设备预警,Agent可以综合振动、温度、电流、声音做判断。
这些场景的共同点是:决策结果不需要在严格时间窗口内输出,错了可以回退,慢了可以等。它们对确定性的要求低,对决策质量的要求高。这正好是Agent的强项。
但实时控制回路的要求正好反过来:决策逻辑简单明确,但对执行时间和确定性要求极高。PID就是PID,联锁就是联锁,不需要Agent来“智能决策”。你让Agent去做实时控制,相当于让一个擅长写诗的人去跑百米冲刺,不是能力问题,是错配。
3.2 大模型推理的延迟和抖动:实测数据说话
我拿几个常见方案做过延迟测试,环境是边缘服务器加GPU,模型是7B量级的量化模型,输入长度控制在500 token以内。
| 方案 | 平均延迟 | P95延迟 | P99延迟 | 抖动范围 |
|---|---|---|---|---|
| 本地GPU推理 | 45ms | 120ms | 280ms | 30-300ms |
| 本地CPU推理 | 380ms | 950ms | 1800ms | 200-2000ms |
| 远程API调用 | 600ms | 1500ms | 3500ms | 300-5000ms |
这些数据说明什么?即使是最好的本地GPU方案,P99延迟也到了280毫秒,抖动范围接近10倍。对于周期1毫秒的PLC任务,这个延迟差了三个数量级。对于周期100毫秒的DCS任务,P99延迟也超过了周期本身。
有人会说,可以不用大模型,用小型专用模型或者规则引擎。对,如果决策逻辑简单到可以用规则引擎,那为什么还要Agent?直接用PLC的SCL或者梯形图写逻辑不是更可靠吗?
3.3 工业现场的“最后一米”:执行器和联锁不接受“大概”
工业现场的执行器、联锁、安全回路,都是按确定性设计的。安全继电器、急停回路、安全PLC,这些环节不允许“大概”“可能”“通常”。你让Agent参与这些环节,就要回答一个问题:如果Agent挂了、卡了、算错了,谁来兜底?
有人设计过“Agent建议、PLC执行”的架构,Agent只做参数推荐,PLC做实时执行。这个思路是对的,但它已经不是“实时控制的Agent”了,而是“Agent辅助的实时控制”。Agent退到了非实时层,实时层还是PLC在扛。这恰恰说明,实时控制这件事,Agent现在插不进去。
4. 那工业Agent现在能做什么:把力气花在刀刃上
4.1 非实时层的优化和辅助:工艺参数推荐、故障诊断
Agent在工业里真正能落地的,是非实时层的优化和辅助。我列几个我见过跑通的场景。
工艺参数推荐。注塑、压铸、热处理这些工艺,参数组合多,老师傅调参靠经验。Agent可以基于历史数据和工艺知识,推荐参数组合,由操作员确认后下发给PLC。这个场景里,Agent的输出不需要实时,操作员有足够时间判断。
故障诊断和根因分析。设备报警后,Agent可以综合报警记录、历史维修记录、实时工况数据,给出可能的原因和排查建议。这个场景对延迟不敏感,但对推理质量要求高,正好是Agent的强项。
非标项目调试辅助。非标设备调试时,现象和原因之间的映射不明确。Agent可以辅助工程师梳理逻辑、生成测试用例、解释PLC程序的行为。热词里“plc非标项目调试实战”就是这个场景。
这些场景的共同点是:Agent在回路外,或者只在回路的非实时段。它的输出经过人或者经过PLC的确认逻辑,才进入实时层。
4.2 代码生成和辅助编程:AI生成PLC代码的边界
“ai plc代码生成”是个热词,我实际试过几个方案。结论是:AI可以生成PLC代码的骨架,但离直接下载运行还有距离。
AI生成梯形图或者SCL代码,适合做重复性的逻辑片段,比如电机顺启逆停、定时器逻辑、简单的联锁。这些逻辑模式固定,AI学起来快。但生成完必须人工审查,因为AI可能忽略安全逻辑、可能用错数据类型、可能不符合特定PLC的编程规范。
我试过让AI生成一段“十字路口红绿灯plc程序”,生成的逻辑基本可用,但时序参数需要调整,而且没有考虑紧急模式。如果直接下载到PLC,可能会有问题。所以AI生成PLC代码的定位是“辅助编程”,不是“替代编程”。
4.3 跨系统协同和调度:Agent在MES和SCADA层的价值
在MES和SCADA层,Agent的价值更明显。这一层本来就是非实时的,数据量大、系统多、决策复杂。Agent可以做生产排程优化、能源调度、质量追溯分析、跨设备协同。
比如一个车间有多台设备,Agent可以根据订单优先级、设备状态、能耗成本,动态调整生产顺序。这个决策周期可能是分钟级甚至小时级,Agent完全来得及。再比如能源管理,Agent可以根据电价曲线和负荷预测,优化空压机、制冷机的运行策略。
这些场景里,Agent不碰实时控制回路,但能产生实实在在的价值。而且这些价值是PLC和DCS做不了的,因为它们不擅长处理模糊规则和多目标优化。
5. 如果非要做“实时Agent”,哪些路可能走得通
5.1 分层架构:Agent做决策,PLC做执行
如果非要把Agent和实时控制结合,目前最可行的架构是分层。Agent在上层做决策,输出目标值或者参数集,PLC在下层做实时执行。
比如运动控制,Agent可以根据视觉检测结果,决定抓取位置和路径规划,输出给PLC,PLC做插补和伺服控制。Agent的决策周期可以是几十毫秒到几百毫秒,PLC的插补周期还是1毫秒。这样既利用了Agent的决策能力,又保住了实时性。
这个架构的关键是接口设计。Agent的输出必须是PLC能理解的、有明确语义的、带有效性校验的指令。PLC要有兜底逻辑,如果Agent输出超时或者非法,自动切换到安全策略。
5.2 确定性推理:专用硬件加实时OS的可能性
有人在做确定性推理的尝试,思路是用专用硬件加实时操作系统,把推理时间压到确定范围内。
比如用FPGA做模型推理,延迟可以做到微秒级且确定。或者用实时Linux加CPU隔离,把推理线程绑到专用核,避免调度干扰。这些方案在实验室里能跑出不错的数据,但工程化还有距离。
主要问题是模型更新和泛化能力。FPGA上的模型是固化好的,换一个工况就要重新综合,灵活性差。实时Linux的确定性也比不上RTOS,抖动还是比PLC大。所以这条路目前适合特定场景的专用推理,不适合通用Agent。
5.3 软实时场景:哪些控制回路可以放宽要求
不是所有控制回路都是硬实时。有些场景对延迟不敏感,可以放宽到软实时。比如楼宇空调的温控、水处理的加药控制、农业大棚的灌溉控制。这些场景的惯性大,延迟几百毫秒甚至几秒都能接受。
在这些场景里,Agent可以更深入地参与控制。比如根据天气预报、电价、室内人数,动态调整空调策略。这种场景下,“实时控制的Agent”这个命题是成立的,因为这里的“实时”是软实时。
所以关键不是“能不能”,而是“在哪个时间尺度上”。硬实时回路,Agent现在插不进去。软实时回路,Agent有机会。
6. 常见问题与排查技巧实录
6.1 为什么我的Agent推理延迟波动这么大
延迟波动大,通常有几个原因。一是操作系统调度,通用Linux的CFS调度器会让推理线程和其他线程抢CPU。二是内存分配,推理过程中的动态内存分配会触发GC或者页错误。三是模型本身,不同输入长度和批大小会导致计算量变化。四是网络,如果走远程API,网络抖动直接反映到延迟上。
排查思路:先用perf或者ftrace看推理线程的调度延迟,再用valgrind或者heaptrack看内存分配模式,然后固定输入长度和批大小测延迟分布。如果走网络,用tc模拟网络抖动看影响。
6.2 PLC和Agent通信超时怎么排查
通信超时是常见问题。先确认物理层,网线、交换机、网口状态。然后看协议层,Modbus TCP、OPC UA、PROFINET各自的超时参数。再往上,看Agent侧的socket超时设置和重试逻辑。
我遇到过一次,Agent和PLC通信偶尔超时,最后发现是交换机开了节能模式,端口在空闲时降速。关掉节能模式就好了。这种问题在实验室里很难复现,只有现场才会暴露。
6.3 Agent输出非法指令导致PLC报警怎么办
这是接口设计问题。Agent的输出必须经过校验才能下发给PLC。校验包括:数值范围、数据类型、时序逻辑、安全联锁。PLC侧要有兜底逻辑,非法指令直接丢弃并报警,不能执行。
更好的做法是让Agent输出“建议值”,由PLC的确认逻辑决定是否采纳。这样Agent的错误不会直接影响控制回路。
6.4 现场调试时Agent和PLC抢资源怎么处理
如果Agent和PLC跑在同一台工控机上,资源竞争会很严重。PLC的实时任务不能被Agent的推理任务干扰。解决办法是CPU隔离,把PLC任务绑到专用核,Agent绑到其他核。内存也要隔离,避免Agent的内存分配影响PLC。
如果条件允许,最好物理隔离,Agent跑在独立的边缘服务器上,通过工业以太网和PLC通信。这样最干净,也最容易排查问题。
7. 我个人的判断和给同行的建议
7.1 现在该做什么、不该做什么
现在该做的,是把Agent用在非实时层,解决那些真正靠人力堆的问题。工艺参数推荐、故障诊断、调试辅助、生产调度,这些场景价值明确,技术可行,交付风险低。
现在不该做的,是硬把Agent塞进实时控制回路。不是永远不行,是现在不行。硬实时的确定性要求,和Agent当前的技术特征,存在结构性矛盾。强行做,做出来的东西要么不可靠,要么就是把Agent降级成规则引擎,失去了Agent的意义。
7.2 给想入局工业Agent的团队几个实在建议
第一,先蹲现场。工业Agent的难点不在AI,在工业。不懂PLC扫描机制、不懂DCS任务周期、不懂现场通信协议,做出来的东西一定落不了地。
第二,从辅助场景切入。别一上来就碰控制回路。先做参数推荐、故障诊断这些非实时场景,积累现场信任和数据。
第三,接口设计比模型选型重要。Agent和工业系统的接口,决定了能不能用、好不好用。接口要简单、明确、可校验、有兜底。
第四,别忽视确定性。即使是非实时场景,也要关注延迟分布。现场操作员等三秒和等三十秒,体验完全不同。
7.3 这个方向后续可能怎么演进
短期看,Agent在工业里的主战场还是非实时层。中期看,随着确定性推理硬件和实时OS的成熟,Agent可能会进入软实时层。长期看,如果硬实时推理有突破,Agent才可能真正进入控制回路。但那是以后的事,现在讨论“实时控制的工业Agent”,确实是个伪命题。
我在实际项目里的体会是,工业现场对新技术是欢迎的,但前提是别影响生产。Agent要想在工业里站稳,第一步不是证明自己多智能,而是证明自己多可靠。可靠性这件事,PLC和DCS花了三十年才做到,Agent才刚起步。