首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >AI 接进 PLC 的四级台阶:到第四级,设备真的会动

AI 接进 PLC 的四级台阶:到第四级,设备真的会动

原创
作者头像
用户1758543
发布于 2026-11-09 11:53:39
发布于 2026-11-09 11:53:39
740
举报

工程师:有蓝色盘吗?

AI:没有。厂区上下文里只定义了铬、红、黑三种盘,不存在蓝色盘的料仓、传感器或分选通道。

工程师:生成序列:红 → 红带嵌件 → 铬 → 黑带嵌件 → 铬。

AI:(生成结构化文本,用的是这套设备真实的标签)

工程师:编译。 → 编译通过。

工程师:部署到 PLC,清锁存和变量状态,然后启动。 → 设备开始按新序列跑。

这段对话里,最值钱的不是任何一行代码,而是第一句的回答。

一个通用大模型被问"有蓝色盘吗",它会顺着你说"有,我这就写"——然后给你一段编译不过、或者编译过了但根本跑不对的代码。这个 AI 说"没有",因为它手里有一份这家厂的真实清单。

这就是三菱电机团队 2026 年 10 月那篇论文(Kersting、Benndorf,From Code Generator to Engineering Companion: A Plant-aware Agent for PLC Programming,arXiv 2610.28160)的全部重点。它讲的不是"用更强的模型写更好的代码",而是怎么把"一家具体的厂"喂给模型,以及怎么让它在动手之前必须先停下来问你。

一、它解决的其实是"交互模型"的差距

以前的同类系统是这么工作的:工程师提交一句任务 → 模型生成代码 → 编译服务器校验 → 返回。

这叫流水线。它有三个缺口:

  1. 它不认识你的厂。 每次从零开始,不知道你有哪些标签、哪些模块、现场的盘往哪走。
  2. 它不能对话。 只回答一次,你没法问"这里为什么用这个互锁",也没法说"把黑盘那条改一下"。
  3. 它没有从聊天到落地的路径。 生成完就结束,编译、部署是另一套流程,中间没有约束。

论文把这个差距定性为交互模型的差距,而不是代码生成的差距。这句定性很关键:换一个更强的模型,这条路不会自动变好。

二、"知道这个厂"是什么意思

论文的定义很朴素:让生成的代码落在目标厂的 I/O 表、标签命名空间、模块配置和物理信号拓扑上。

翻译成车间语言:别生成"一个叫 SORT_RED 的变量",要生成"你厂里真的存在的那个 BLACK_MAG_FUELLSTAND"。

开工前要提供四样东西:

材料

里面装什么

没有它会怎样

I/O 表

输入输出的信号名、地址、数据类型、说明

引用不存在的地址,编译过、跑不对

标签表

完整的标签,含内部变量与程序间信号

变量名靠猜,命名风格和你厂对不上

模块配置

机架布局、CPU 型号、特殊功能模块分配

用到不存在的模块,或把高速计数当普通输入写

现有程序片段

已部署在设备上的结构化文本与功能块实例

重复造轮子,或和现有逻辑打架

这四份材料被切块、向量化,单独建了一个"厂上下文"检索库,和通用库(库函数、规格规则、聊天记录)分开。

分开建库这个细节值得单独说:如果混在一个索引里,你问"黑盘怎么分选",检索可能同时捞回某本手册的通用示例、另一个项目的变量名、你厂的真实标签——三份混在一起,模型就会挑一个"看起来最顺"的说。 论文管这叫避免跨源干扰。放到工程语境里就一句:上下文里最危险的不是缺信息,是"错的但看起来对的信息"。

被埋在演示里的一句话

论文在描述演示台时写了这么一句:实际设备的布局必须额外讲给模型听,因为光有 I/O 表和标签,并不能表达物理布局与信号语义。

它举了三件事:料仓在什么位置、料仓什么时候算"有料"(对应传感器必须为真)、盘被送到右边时执行机构按什么顺序排布。

对做过现场的人这是常识,但它是这套系统能不能用的分水岭:I/O 表告诉你"有这个信号",物理说明告诉你"这个信号意味着什么"。前者是数据,后者是知识。

三、四级台阶:为什么它不许 AI 直接碰设备

论文把"AI 能做的事"拆成四级,每一级都要工程师显式触发:

级别

名字

AI 能做什么

后果

L1

咨询

只回文本,不调任何工具

没有物理后果

L2

生成代码

把代码显示在对话里

只是文本,还没进工程

L3

编译

调编译服务器,拿回结构化诊断

工程里多一个可编译的块,还没下到设备

L4

部署

工程师确认后写入 PLC、启动 / 停止 / 复位

设备真的会动

三个设计细节值得抄:

  • L3 的诊断是结构化诊断,不是一段红字。 目的是让模型能读懂、能自己修;论文写明最多修 3 轮,超过就停——防止它无限套娃地"改到能编译为止"。
  • 每一级的触发权在人手里(论文原话 "explicit engineer initiation")。AI 不会自己从 L2 跳到 L3,更不会自己跳到 L4。
  • L1 不是摆设。 上面那段"有蓝色盘吗"就是 L1:它在你动手之前排除掉一个不存在的需求。这一层不产生任何代码,但它省下的是整轮返工。

理由论文写得很直白:工业环境里,一个不受控的"模型到硬件"动作可能砸设备、可能停线。

四、演示台,和这篇论文的诚实边界

演示设备是一台金属圆盘分选机:盘有铬、红、黑三色,用气压加光电识别(三种颜色反射率不同,阈值要分开配);另有嵌件工位可以往盘里塞嵌件;传送带把盘往右送,经过所有料仓后分到三个盒子——铬最先走、然后红、最后黑,铬和红由气缸主动推下皮带,黑盘靠重力被动落进盒子。控制器是三菱 iQ-R 系列 R04,通过原型网页界面加 GX Works3 操作。

台子小得有点好笑,但问题暴露得很完整:颜色阈值、料仓状态、嵌件时序、主动/被动分选——四件事都要"知道现场"才能写对。

该说明白的边界:这是一篇演示型论文,不是评测报告。文中的"结果"是一段交互实录和一台试验台,没有任何定量指标(没有编译通过率、没有任务完成率、没有工时对比),论文自己写明定量评测是计划中的工作;而且整套东西只跑在三菱这一个厂商的平台上。所以它值得学的是结构,不是能力上限。

五、落到你的项目上:五份材料 + 三个必答题

论文没给实施清单,下面是我们按工程顺序补的整理(这部分不是论文内容)。

先盘家底,五份材料缺哪份补哪份:

  1. I/O 表:一列信号名、一列地址、一列类型、一列含义,含义要写人话。老厂没有就从程序里反推,先只用于"解释",不用于"生成"。
  2. 标签表:命名有统一前后缀(_MAG_FUELLSTAND 这类就是"料仓液位")。没有规范就先定规范,再谈 AI。
  3. 机架 / CPU 配置:CPU 型号、模块槽位、特殊模块型号。至少拍照加订货号,让模型知道有哪些模块。
  4. 现有程序片段:最近一年真正在跑的几个块。老项目就在线上载,没有符号也先拿到可用文本,当成"当前事实"。
  5. 物理布局说明(最容易被漏掉):料仓在哪、什么算"上料"、盘往哪走、执行机构顺序。请现场的老师傅口述,你录音整理成一页纸。

第五份是全文最容易被忽略、也最好用的一条:这一页纸比再买一套工具更能提升输出质量。

再把四级台阶映射到你现在的流程:

论文分级

你厂里对应的动作

谁签字

L1 咨询

问"这个需求在现有硬件上成立吗"

不用签

L2 生成

代码贴进评审单,还不进工程

写的人

L3 编译

进工程、编译、修完再提

编译通过 + 评审

L4 部署

下装到 CPU、试自动、试 HMI、试安全

现场负责人

三个必须先回答的问题:

  • "厂上下文"谁来维护? 图纸改一次、加一个模块、换一个传感器,语料就过期。没有版本管理的厂上下文比没有更危险——它会一本正经地引用旧标签。
  • 跨品牌怎么办? 论文自己说不在范围内。现实里一条线四种 PLC,别指望一套上下文通吃:先单台、单品牌跑通,再复制。
  • 编译通过算不算过? 不算。功能正确性要 HIL 或专家评审。内部验收单上,编译只是第三级。

一句话收尾:这套思路最值得抄的不是"让 AI 更聪明",而是"让 AI 先知道你厂里的三件事:有什么、在哪、什么时候算有"。

下周就能动的三步:先只做 L1(让它读你的 I/O 表和标签表,回答"有没有某个料仓 / 某个信号");再做 L2(生成的代码只贴进评审单,不进工程);L3 之前先把"最多修 3 轮"写进流程——这三步一分钱不花,但能先把"不存在的需求"挡在门口。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

目录
  • 一、它解决的其实是"交互模型"的差距
  • 二、"知道这个厂"是什么意思
    • 被埋在演示里的一句话
  • 三、四级台阶:为什么它不许 AI 直接碰设备
  • 四、演示台,和这篇论文的诚实边界
  • 五、落到你的项目上:五份材料 + 三个必答题
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档