工程师:有蓝色盘吗?
AI:没有。厂区上下文里只定义了铬、红、黑三种盘,不存在蓝色盘的料仓、传感器或分选通道。
工程师:生成序列:红 → 红带嵌件 → 铬 → 黑带嵌件 → 铬。
AI:(生成结构化文本,用的是这套设备真实的标签)
工程师:编译。 → 编译通过。
工程师:部署到 PLC,清锁存和变量状态,然后启动。 → 设备开始按新序列跑。
这段对话里,最值钱的不是任何一行代码,而是第一句的回答。
一个通用大模型被问"有蓝色盘吗",它会顺着你说"有,我这就写"——然后给你一段编译不过、或者编译过了但根本跑不对的代码。这个 AI 说"没有",因为它手里有一份这家厂的真实清单。
这就是三菱电机团队 2026 年 10 月那篇论文(Kersting、Benndorf,From Code Generator to Engineering Companion: A Plant-aware Agent for PLC Programming,arXiv 2610.28160)的全部重点。它讲的不是"用更强的模型写更好的代码",而是怎么把"一家具体的厂"喂给模型,以及怎么让它在动手之前必须先停下来问你。
以前的同类系统是这么工作的:工程师提交一句任务 → 模型生成代码 → 编译服务器校验 → 返回。
这叫流水线。它有三个缺口:
论文把这个差距定性为交互模型的差距,而不是代码生成的差距。这句定性很关键:换一个更强的模型,这条路不会自动变好。
论文的定义很朴素:让生成的代码落在目标厂的 I/O 表、标签命名空间、模块配置和物理信号拓扑上。
翻译成车间语言:别生成"一个叫 SORT_RED 的变量",要生成"你厂里真的存在的那个 BLACK_MAG_FUELLSTAND"。
开工前要提供四样东西:
材料 | 里面装什么 | 没有它会怎样 |
|---|---|---|
I/O 表 | 输入输出的信号名、地址、数据类型、说明 | 引用不存在的地址,编译过、跑不对 |
标签表 | 完整的标签,含内部变量与程序间信号 | 变量名靠猜,命名风格和你厂对不上 |
模块配置 | 机架布局、CPU 型号、特殊功能模块分配 | 用到不存在的模块,或把高速计数当普通输入写 |
现有程序片段 | 已部署在设备上的结构化文本与功能块实例 | 重复造轮子,或和现有逻辑打架 |
这四份材料被切块、向量化,单独建了一个"厂上下文"检索库,和通用库(库函数、规格规则、聊天记录)分开。
分开建库这个细节值得单独说:如果混在一个索引里,你问"黑盘怎么分选",检索可能同时捞回某本手册的通用示例、另一个项目的变量名、你厂的真实标签——三份混在一起,模型就会挑一个"看起来最顺"的说。 论文管这叫避免跨源干扰。放到工程语境里就一句:上下文里最危险的不是缺信息,是"错的但看起来对的信息"。
论文在描述演示台时写了这么一句:实际设备的布局必须额外讲给模型听,因为光有 I/O 表和标签,并不能表达物理布局与信号语义。
它举了三件事:料仓在什么位置、料仓什么时候算"有料"(对应传感器必须为真)、盘被送到右边时执行机构按什么顺序排布。
对做过现场的人这是常识,但它是这套系统能不能用的分水岭:I/O 表告诉你"有这个信号",物理说明告诉你"这个信号意味着什么"。前者是数据,后者是知识。
论文把"AI 能做的事"拆成四级,每一级都要工程师显式触发:
级别 | 名字 | AI 能做什么 | 后果 |
|---|---|---|---|
L1 | 咨询 | 只回文本,不调任何工具 | 没有物理后果 |
L2 | 生成代码 | 把代码显示在对话里 | 只是文本,还没进工程 |
L3 | 编译 | 调编译服务器,拿回结构化诊断 | 工程里多一个可编译的块,还没下到设备 |
L4 | 部署 | 工程师确认后写入 PLC、启动 / 停止 / 复位 | 设备真的会动 |
三个设计细节值得抄:
理由论文写得很直白:工业环境里,一个不受控的"模型到硬件"动作可能砸设备、可能停线。
演示设备是一台金属圆盘分选机:盘有铬、红、黑三色,用气压加光电识别(三种颜色反射率不同,阈值要分开配);另有嵌件工位可以往盘里塞嵌件;传送带把盘往右送,经过所有料仓后分到三个盒子——铬最先走、然后红、最后黑,铬和红由气缸主动推下皮带,黑盘靠重力被动落进盒子。控制器是三菱 iQ-R 系列 R04,通过原型网页界面加 GX Works3 操作。
台子小得有点好笑,但问题暴露得很完整:颜色阈值、料仓状态、嵌件时序、主动/被动分选——四件事都要"知道现场"才能写对。
该说明白的边界:这是一篇演示型论文,不是评测报告。文中的"结果"是一段交互实录和一台试验台,没有任何定量指标(没有编译通过率、没有任务完成率、没有工时对比),论文自己写明定量评测是计划中的工作;而且整套东西只跑在三菱这一个厂商的平台上。所以它值得学的是结构,不是能力上限。
论文没给实施清单,下面是我们按工程顺序补的整理(这部分不是论文内容)。
先盘家底,五份材料缺哪份补哪份:
_MAG_FUELLSTAND 这类就是"料仓液位")。没有规范就先定规范,再谈 AI。第五份是全文最容易被忽略、也最好用的一条:这一页纸比再买一套工具更能提升输出质量。
再把四级台阶映射到你现在的流程:
论文分级 | 你厂里对应的动作 | 谁签字 |
|---|---|---|
L1 咨询 | 问"这个需求在现有硬件上成立吗" | 不用签 |
L2 生成 | 代码贴进评审单,还不进工程 | 写的人 |
L3 编译 | 进工程、编译、修完再提 | 编译通过 + 评审 |
L4 部署 | 下装到 CPU、试自动、试 HMI、试安全 | 现场负责人 |
三个必须先回答的问题:
一句话收尾:这套思路最值得抄的不是"让 AI 更聪明",而是"让 AI 先知道你厂里的三件事:有什么、在哪、什么时候算有"。
下周就能动的三步:先只做 L1(让它读你的 I/O 表和标签表,回答"有没有某个料仓 / 某个信号");再做 L2(生成的代码只贴进评审单,不进工程);L3 之前先把"最多修 3 轮"写进流程——这三步一分钱不花,但能先把"不存在的需求"挡在门口。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。