Skip to content

10.4 Lua 脚本编辑器里的 AI 使用 ​

返回总览:10.1 AI 编程助手 | 模型怎么接:本地 10.2 / 云端 10.3

面板标题 AI 助手,生成 Lua。整个流程是「自然语言描述 → 自动注入上下文 → 生成 → 校验 → 一键插入」:

Lua 编辑器:自然语言描述 → 一键插入

一、两种回填方式 ​

面板生成的 Lua 代码块带两个按钮:

  • 插入:把代码插到当前光标处(和编辑器大纲面板同款通道)。适合在已有脚本里补一段。
  • 替换:用生成代码整文件替换当前 Lua,并触发自动保存。适合从零让 AI 写一整个文件。

生成前会自动把当前文件的 lint 报错一起发给模型,帮它「看清现状」;模型还能实时查 Lua API 真值(plc.read 到底长啥样),不乱编函数名。

回填后会弹绿色提示:已插入代码到「main.lua」光标处 或 已用生成代码替换「main.lua」全部内容(自动保存已触发)。

二、实战示例 ​

例 1 · 电机启保停

「写一个电机启保停,X0 启动 X1 停止,Y0 输出」:

lua
local run = plc.read("X0")
local stop = plc.read("X1")
if run or plc.read("Y0") then
  plc.write("Y0", stop and 0 or 1)
end

例 2 · 读寄存器置位

「读取 D500 的值,当大于 100 时置位 M10」:

lua
local v = plc.read("D500")
if v > 100 then
  plc.write("M10", 1)
else
  plc.write("M10", 0)
end

例 3 · 定时器延时

「用定时器 T0 做 5 秒延时后点亮 Y1」:

lua
timer.start("T0", 5000)          -- 5000ms
if timer.elapsed("T0") then
  plc.write("Y1", 1)
end

例 4 · Modbus 读保持寄存器

「通过 Modbus TCP 读 192.168.1.20:502 的保持寄存器 40001,结果放到 D100」:

lua
local ok, val = modbus.read_holding("192.168.1.20", 502, 0, 1)
if ok then
  plc.write("D100", val)
end

三、自动校正与插入保护 ​

  • 生成后若代码不合法(语法错、引用了不存在的 API),面板会拉模型自动改一版再验,循环若干次。
  • 重试仍通不过时,直接列出错误清单并拦下插入——此时别硬点插入,看清单改说法或换模型。
  • 您随时可以点 📋 复制 把代码拿出来手动处理,或点 🔍 Prompt 看发给模型的完整消息(含知识包与当前文件上下文)排查。

四、使用技巧 ​

  • 描述越具体越好:「读 D500,大于 100 置位 M10」比「处理一下寄存器」生成得准。
  • 先打开目标 Lua 文件再问,AI 能读到您的变量命名与 lint,生成的代码更贴合现有工程。
  • 想复用一段逻辑,先让它生成,再手动收进 10.8 DDC 自定义块(DDC 场景)或存成自己的 Lua 片段。

LPPLC 工业物联网云平台 · 软硬件与云平台全栈自研