版权与内容来源声明
本文为原创整理。文中涉及官方文档、开源仓库、论文与公开报道的内容,均在附表 A 中标注来源;引用官方原文保持原样,不作改写。文中命令、版本号与界面截图以本文成文时的实测/核验结果为准,标注「待验证」的部分请以你本地环境实际输出为判断依据。本文不推荐任何不合规的软件获取方式,也不对任何结果作承诺。转载请注明出处。
第 1 章:毫秒级控制为什么不能接大模型
1.1 先分清“固定节拍”与“尽快回答”
PLC(可编程逻辑控制器)会按扫描周期反复执行读输入、跑逻辑、写输出;扫描周期就是这一轮循环所用的时间。控制环是采集过程量、计算控制量并作用到设备的闭环。联锁是条件不满足时阻止启动或触发保护的硬约束。
这些环节关心的不只是平均速度,而是确定性:最慢一次也必须落在允许窗口内。大模型服务却要经历采集、协议转换、网络往返、排队、推理和结果解析。任一段抖动,都可能把尾部时延推过现场窗口。抖动就是同一流程每次耗时不稳定。
核心边界如下:
| 响应时限层级 | 典型环节 | 模型可用范围 | 禁止事项 |
|---|---|---|---|
| 毫秒级 | PLC 扫描、控制环、联锁动作、急停链路 | 不进入动作链;最多离线分析历史数据 | 禁止参与闭环计算、放行联锁、直接控制执行器 |
| 秒级 | 告警解释、HMI 提示、参数建议 | 生成解释、排查顺序和建议值,交给人确认 | 禁止直接写值、自动确认、直接启停设备 |
| 分钟级到小时级 | 日志归因、报表、点检报告、备件预测、知识问答 | 汇总、检索、归因、草拟报告并保留证据 | 禁止无依据下结论,禁止绕过审核写回生产系统 |
HMI 是人机界面,也就是操作员看到状态、告警并发出指令的上位机界面。结论不是“毫秒级换更快的模型”,而是毫秒级链路不放模型。
1.2 模型的生成方式天然不是扫描周期
人话解释:模型是“逐字生成”的,一次回答要串行生成很多个 token,天然慢,与扫描周期的固定节拍不是一回事。token 是模型处理文本时切分出的基本单元,可能是字、词或词的一部分。
Transformer 原论文正文写道:“Given z, the decoder then generates an output sequence (y1, …, ym) of symbols one element at a time.” 这里支持的是生成过程按元素推进,并不提供固定完成时间保证。即使首个 token 很快,完整建议仍要等后续 token、解析和校验。
1.3 标准能告诉你边界,不能替你测现场
截至 2026-10-06,IEC 官方产品页显示 IEC 61131-3:2025 为第 4 版,发布日期为 2025-05-22,稳定日期为 2027;其范围是可编程控制器编程语言的语法与语义。它不是某台设备扫描周期的实测报告。
IEC 将 IEC 61508 描述为适用于多个行业的功能安全横向系列标准。功能安全是系统在检测到错误或危险条件时,依靠自动保护功能降低风险。本文不把大模型放进联锁或安全相关动作链,依据是响应确定性与责任边界,而不是给模型贴一个“聪明或不聪明”的标签。
第 2 章:第一步不是选模型,而是量允许时限
2.1 从现场数据建立时限清单
不要先问“用本地模型还是云端模型”,先把每个环节允许响应时长写出来。这个值应来自趋势记录、事件顺序记录、现有控制周期、操作规程和现场演练,而不是拍脑袋。容差是允许值相对目标值的偏差范围;清单里要把它与超时动作一起写明。
| 字段 | 要回答的问题 | 取值依据 |
|---|---|---|
| 环节 | 到底是哪一次判断或动作 | 工艺流程、点表、操作票 |
| 允许响应时长 | 从事件发生到结果可用,最多能等多久 | 历史时间戳、设备记录、现场测试 |
| 超时后果 | 晚到是提示失效、停机还是安全风险 | 风险分析、联锁说明、操作规程 |
| 现有执行者 | PLC、上位机、人工还是后台任务 | 现网架构与程序 |
| 模型权限 | 禁用、只读解释、建议、草稿 | 分级评审结论 |
⚠️代码待验证
items:-name:motor_overload_interlockdeadline_ms:40model_mode:forbiddentimeout_action:keep_original_logic-name:alarm_explanationdeadline_ms:3000model_mode:advise_onlytimeout_action:show_original_alarm-name:shift_reportdeadline_ms:1800000model_mode:draft_onlytimeout_action:queue_for_retry这里的数值只是配置结构示例,不能带到真实产线。真实值必须由你的现场记录填入。
2.2 再测端到端链路,不只看推理耗时
端到端时延是从现场数据产生,到模型结果真正出现在使用者面前的总耗时。至少拆开采集、协议转换、网络、排队、首个 token、完整生成、结构校验和界面刷新。
| 链路段 | 起止时间戳 | 为什么必须单测 |
|---|---|---|
| 数据采集 | 设备时间到网关接收 | 发现采样与上送延迟 |
| 协议与网关 | 网关接收到请求发出 | 发现转换、聚合和缓存等待 |
| 网络与排队 | 请求发出到推理开始 | 发现往返与并发排队波动 |
| 模型生成 | 推理开始到完整结果 | 区分首字可见与结果可用 |
| 校验与呈现 | 完整结果到界面显示 | 发现解析、规则检查和刷新延迟 |
看平均值不够,还要看高分位和超时次数。高分位是把大量耗时从小到大排列后,观察靠近最慢端的位置;它更接近值班时会遇到的坏情况。
⚠️代码待验证
defplacement(deadline_ms,observed_p95_ms,deterministic_required):ifdeterministic_requiredordeadline_ms<1000:return"forbidden"ifobserved_p95_ms>=deadline_ms:return"reject"return"advise_only"ifdeadline_ms<60000else"analysis_allowed"2.3 只做一次比较:允许值对实测值
判定顺序固定为:现场允许时长 → 链路实测时延 → 权限分级。若实测高分位已经贴近允许值,就不要用“多数时候够快”放行;要么缩短链路并重测,要么把模型上移到更慢的一层。先接模型再补时限,会把架构问题伪装成提示词问题。
第 3 章:按时限决定模型放在哪一层
3.1 三层架构不是三种模型,而是三种责任
| 放置层 | 输入 | 输出去向 | 失效时的默认行为 |
|---|---|---|---|
| 控制与保护层 | 实时输入、联锁条件 | 执行器与保护回路 | 沿用原有确定性逻辑,模型不接入 |
| 监视与操作层 | 告警、状态、趋势片段 | HMI 的解释卡片或建议区 | 退回原始告警与既有操作规程 |
| 分析与知识层 | 历史日志、工单、手册、报表 | 草稿、检索结果、分析任务 | 延迟处理、人工复核,不影响生产动作 |
“放哪一层”首先是权限问题,其次才是部署位置问题。本地部署也不等于可以进入控制环;云端部署也不等于只能做聊天。只要输出能直接改变现场,就必须回到允许时限和确定性要求重新评审。
3.2 OPC UA 的超时字段不是实时承诺
OPC UA 是工业设备与软件交换结构化数据的一套互操作规范。其 Part 4 把服务描述为客户端提交请求、服务器处理并返回响应。第 7.32 节对timeoutHint的原文是:“This timeout in milliseconds is used in the Client side Communication Stack to set the timeout on a per-call base.” 同节还明确,对服务器而言它“is only a hint”。
这意味着配置了超时提示,不等于链路获得确定性截止保证。把 OPC UA 读到的数据送去模型时,仍要实测整个应用链,而不能把协议字段当作实时认证。
第 4 章:秒级场景只做解释与建议
4.1 把读权限、建议权和动作权拆开
秒级场景可以让模型把告警代码、设备状态和手册片段组织成人能读懂的解释,也可以给出排查顺序或参数建议。但“建议值”必须进入人工确认区,不能复用生产写入账号。
| 能力 | 秒级场景是否开放 | 必须保留的控制 |
|---|---|---|
| 读取告警与状态 | 可开放 | 字段白名单、脱敏、审计记录 |
| 检索手册并解释 | 可开放 | 引用片段、版本标识、无依据时停止 |
| 生成参数建议 | 条件开放 | 范围校验、人工确认、双人复核按现场制度执行 |
| 写入设定值 | 不开放 | 接口层拒绝写操作 |
| 确认联锁或启停设备 | 不开放 | 模型账号无动作权限 |
⚠️代码待验证
agent_policy:allowed_tools:-read_alarm-read_trend-search_manualdenied_tools:-write_setpoint-acknowledge_interlock-start_equipment-stop_equipmentrequire_human_confirm:true4.2 越级请求要在模型外熔断
熔断是条件不满足时,系统直接切断后续调用并回到安全默认路径。不要只在提示词里写“请勿操作”;权限网关应在模型之外检查时限等级、工具类型和实测时延。
⚠️代码待验证
WRITE_ACTIONS={"write_setpoint","acknowledge_interlock","start_equipment","stop_equipment"}defauthorize(level,action,latency_ms,deadline_ms):iflevel=="millisecond":returnFalse,"model_forbidden"ifactioninWRITE_ACTIONS:returnFalse,"direct_action_denied"iflatency_ms>=deadline_ms:returnFalse,"deadline_exceeded"returnTrue,"read_or_advice_only"第 5 章:分钟级到小时级才是模型主场
5.1 优先做“晚一点也仍然有价值”的任务
日志归因可以汇总多设备事件并给出候选原因;点检报告可以把测量记录整理成草稿;备件预测可以提供计划参考;知识问答可以从手册和工单中找依据。这些任务即使晚几分钟返回,通常仍有使用价值,也容得下检索、校验和人工复核。
| 候选场景 | 典型时限 | 推荐输出 | 验收重点 |
|---|---|---|---|
| 班次日志归因 | 分钟级 | 原因候选与证据时间线 | 证据能回到原始日志 |
| 点检报告 | 分钟级 | 结构化草稿与缺项提醒 | 数值不改写、缺项明确 |
| 备件计划 | 小时级 | 风险排序与需求建议 | 假设透明、由计划员确认 |
| 手册知识问答 | 秒到分钟级 | 答案、引用片段、文档版本 | 引用可定位、无依据时拒答 |
5.2 用四个问题排优先级
每个候选场景先问:允许等多久?输入是否可追溯?输出是否只供人决策?失败后能否退回原流程?四项都清楚,再做小范围试点。只要涉及直接动作,就算业务方愿意等,也不能因此跨过权限边界。
工控转大模型场景清单:把日志归因、知识问答与报告生成按响应时限归类,便于对照本文方法筛选试点。放在资料包里,扫码即可获取:
第 6 章:工控经验如何迁移成大模型岗位能力
6.1 你原有的优势是“知道哪里不能猜”
PLC 工程师熟悉条件、状态、边沿和异常复位;电气工程师熟悉保护边界;组态工程师熟悉告警呈现与权限;调试工程师熟悉从时间线复盘现场。这些经验可以直接迁移到 Agent 的工具权限、状态管理、审计链和降级路径。
转岗时不用把自己包装成算法研究者。更有说服力的表达是:我能把现场任务拆成允许时限、数据入口、模型权限、超时动作和人工确认点,并用实测时延决定模型所在层。
6.2 作品集要展示判据,不只展示对话框
一个合格演示至少包含:时限清单、链路打点、权限策略、越级熔断、引用证据和超时降级。演示“告警解释 Agent”时,主动展示它无法写设定值;演示“日志归因 Agent”时,展示每条原因如何回到原日志。这样呈现的是工程能力,而不是一段看起来顺滑的回答。
第 7 章:从一个低风险闭环开始落地
7.1 最小试点按五步走
第一步,选分钟级、只读、有人工复核的任务。第二步,用现场记录填写允许响应时长。第三步,对采集到呈现全链路打点。第四步,设置超时、无依据和越权三类熔断。第五步,在隔离环境回放历史数据,确认失败时原流程仍可工作。
上线判据也保持简单:实测时延必须落在允许窗口内;模型只能使用批准的只读工具;每个结论能回到输入证据;任何超时或越权都回到原流程。
7.2 什么时候立即停手
出现以下任一情况就停止扩围:业务方说不清允许等待多久;链路只有平均耗时没有尾部数据;模型账号能写生产变量;超时后没有默认路径;人工无法复核依据。此时应补测量、权限或流程,而不是继续调提示词。
最终只记住一个顺序:先列每个环节的允许响应时长,再测端到端时延;不匹配就不放模型。毫秒级禁入,秒级只解释与建议,分钟级到小时级再让模型承担分析工作。
Agent 工程实践资料:用于继续补齐工具权限、知识检索与工作流编排能力,和本章的低风险试点步骤配套。放在资料包里,扫码即可获取:
附表 A:本文引用事实与出处对照表
| 事实 | 出处(文档名 + 发布方 + 链接) | 本文位置 |
|---|---|---|
| IEC 61131-3:2025 页面显示第 4 版、2025-05-22 发布、稳定日期 2027 | 《IEC 61131-3:2025》;IEC;https://webstore.iec.ch/en/publication/68533/ | 第 1 章 1.3 |
| IEC 61131-3 规定可编程控制器编程语言的语法与语义;原文:“specifies the syntax and semantics of programming languages for programmable controllers” | 《IEC 61131-3:2025》;IEC;https://webstore.iec.ch/en/publication/68533/ | 第 1 章 1.3 |
| IEC 61508-1:2010 页面显示第 2 版、2010-04-30 发布、稳定日期 2027 | 《IEC 61508-1:2010》;IEC;https://webstore.iec.ch/en/publication/5515 | 第 1 章 1.3 |
| IEC 61508 是跨行业功能安全横向系列;原文:“IEC 61508 is a horizontal series of standards that provides functional safety requirements applicable to a wide range of industry sectors.” | 《The importance of functional safety》;IEC;https://iec.ch/blog/importance-functional-safety | 第 1 章 1.3 |
| OPC UA Part 4 页面显示版本 1.05.07、2026-04-15 发布并标为 current | 《OPC Unified Architecture - Part 4: Services》;OPC Foundation;https://reference.opcfoundation.org/specs/OPC-10000-4/v1.05.07 | 第 3 章 3.2 |
timeoutHint是客户端逐次调用超时设置,服务器侧仅作提示;原文:“For a Server this timeout is only a hint” | 《OPC Unified Architecture - Part 4: Services》第 7.32 节;OPC Foundation;https://reference.opcfoundation.org/specs/OPC-10000-4/7.32 | 第 3 章 3.2 |
| Transformer 解码器逐个元素生成输出序列;原文:“Given z, the decoder then generates an output sequence (y1, …, ym) of symbols one element at a time.” | 《Attention Is All You Need》第 3 节;arXiv(作者:Vaswani 等);https://arxiv.org/html/1706.03762v7 | 第 1 章 1.2 |
附表 B:术语速查表
| 术语 | 一句话解释 | 在本文哪里用到 |
|---|---|---|
| PLC | 按既定程序循环处理工业输入与输出的控制器 | 第 1 章 |
| 扫描周期 | PLC 完成一次读输入、执行逻辑、写输出循环所需时间 | 第 1 章 |
| 联锁 | 条件不满足时阻止动作或触发保护的硬约束 | 第 1、4 章 |
| HMI | 操作员查看状态、告警并发出指令的人机界面 | 第 1、4 章 |
| token | 模型处理和生成文本的基本单元 | 第 1 章 |
| 容差 | 允许值相对目标值的偏差范围 | 第 2 章 |
| 高分位时延 | 大量耗时排序后靠近最慢端的观测值 | 第 2 章 |
| OPC UA | 工业设备与软件交换结构化数据的互操作规范 | 第 3 章 |
| 功能安全 | 依靠自动保护功能响应错误或危险条件并降低风险 | 第 1 章 |
| 熔断 | 条件不满足时切断后续调用并回到默认路径 | 第 4、7 章 |
写在最后:这篇用到的资料
写这篇文章时,把相关的官方文档和源码又翻了一遍,顺手也整理了几份配套的东西:
- 大模型学习路线图:从零基础到能自己动手做 Agent,按阶段说明每一步该学什么、哪些可以先跳过
- 《LangChain + LangGraph + MCP 智能体开发实战》视频课:7 个模块,从私有化部署、Embedding+RAG 到 MCP+Agent 全流程
- AI 大模型知识库(在线可查):Agent Skills 从入门到落地、Claude Skills 完全指南等专题,按目录浏览即可
- 640 套 AI 大模型行业报告 + 经典 PDF 书籍:看行业落地案例和别人怎么做的时候用得上
- 大模型零基础到精通教学视频:跟着敲一遍,比只读文档快得多
资料是我自己整理的,放在下面这个码上,扫码即可获取:
添加时备注「AI」,优先通过。
资料按「先路线、再动手、最后查漏」的顺序整理好了,建议先看学习路线那一份,照着它挑一条适合自己当前基础的路径再往下看。