Skip to content

4.2 工程管理与文件格式 ​

工程是一个目录,不是单个文件 ​

新版上位机的工程是一个普通文件夹,里面全是纯文本:

工程目录结构:main.json、lua/ 目录、lad/ 目录

为什么这么设计:工程可以用 VSCode / AI 工具直接编辑

.lua 是纯文本,梯形图存成 .json(内容就是指令表),main.json 里还专门写了一段说明文字介绍目录结构和格式。

这带来几个实际好处:

  • 可以用 VSCode / Cursor / Claude Code 直接打开工程目录批量修改、批量查找
  • 可以直接纳入 Git 做版本管理,diff 可读,多人协作不易冲突
  • 出现问题时可用文本编辑器修复,不会因私有二进制格式无法打开

文件菜单 ​

菜单项说明
新建工程输入工程名(默认「新工程」)。有未保存修改会先提示
打开工程...选择一个目录。目录中需存在 main.json 才会被识别
保存工程写入 main.json 和所有 lua / 梯形图文件
另存为...强制重新选目录。目标目录已有工程会二次确认覆盖
关闭工程有未保存修改会先提示
打印梯形图...打印全部梯形图(可输出 PDF)
打印 Lua 程序...需要先切到 Lua 标签页,否则会提示
导出梯形图 SVG矢量图,放大不模糊,适合放进文档
导出梯形图 PNG位图
导出 Lua 文件同样需要活动标签是 Lua
退出有未保存修改会先提示

打开工程时会实扫目录

打开工程时不仅读取 main.json 中的清单,还会扫描 lua/ 和 lad/ 目录。因此在 VSCode 中手工添加的 .lua 文件,重新打开工程即可看到。

保存时会确认是否删除「孤儿文件」

如果目录中存在工程清单之外的多余文件,保存时会列出这些文件,由使用者一次性决定删除或保留。既不会自动删除文件,也便于保持目录整洁。

不支持导入的两类文件 ​

不能导入老版上位机工程,也不能导入 GX Works2 的 .gxw

  • 老版工程:格式完全不同,没有转换器
  • GX Works2 .gxw:目前不支持导入

需将设备中已有的程序导入新版编辑器时,应使用从设备上载(设备工具栏的 ⬆ 按钮):把设备中运行的程序读回,再正常编辑保存。

梯形图文件长什么样 ​

lad/*.json 里存的是指令表(IL),大致结构:

json
{
  "$schema": "linpan-plc-ladder-v1",
  "name": "MAIN",
  "Block": [
    {
      "type": "main",
      "name": "MAIN",
      "networks": [
        { "id": 1, "name": "启动自锁", "steps": ["LD X0", "OR Y0", "ANI X1", "OUT Y0"] }
      ]
    }
  ]
}

常用指令前缀:LD / LDI / AND / ANI / OR / ORI / OUT / SET / RST / END,地址前缀 X / Y / M / S / T / C / D。

旧的 .lad 扩展名

早期版本梯形图使用 .lad 扩展名,现已统一改为 .json(便于 AI 工具和编辑器识别)。打开旧工程时 .lad 仍可正常读入,保存时会自动迁移为 .json 并删除同名旧文件。

参数三件套 ​

工程树「参数」下面有三个编辑器,保存在 main.json 里:

  • PLC 参数:软元件点数、保持区范围等
  • 网络参数:通讯相关设置
  • 系统参数:系统级选项

这些参数需通过设备工具栏单独写入设备才生效,仅保存工程只是存放在电脑上。

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