PlantCraft/PlantCraft · 上手攻略

  • 仓库:PlantCraft/PlantCraft
  • 链接:https://github.com/PlantCraft/PlantCraft
  • 分类:engineering / 工业软件 · 过程控制 · AI 辅助
  • 作者:spark
  • 更新:2026-11-02

一、它是什么

PlantCraft 是一个面向过程工程师(process engineer)的开源工业软件套件,Apache-2.0 许可,Python 编写,官方自述为 "The open suite for process plants. Historian, analytics, alarms, dashboards, models and documents, built to work with AI."

它不是单点工具,而是一整套"每个 app 一个容器"的应用集合,全部装在一台自己的服务器上:

应用 目录 干什么
PlantCraft Historian apps/historian 数据层:OPC UA / PI Web API / MQTT / Modbus TCP / SQL / CSV 接入,只读归档
PlantCraft Analytics apps/link 定时监控、诊断、KPI:找坏数据、振荡、阀门卡涩、手动模式,并给出理由
PlantCraft View apps/view 仪表盘、工艺流程图、定时报告、趋势,可公开链接分享
PlantCraft Alarms apps/alarms 按 ISA-18.2 措辞生成报警:规则、当前列表、历史、报警绩效
PlantCraft Models apps/models 块图模型(底层 Modelica),可仿真、做 study、导出 FMU
PlantCraft Documents apps/documents 手册 / P&ID / 规程 / 检修记录统一库,检索并让助手引用「文档 + 版本 + 页码」
Simulator simulator/ 演示与基准测试用的仿真工厂(OPC UA 服务器)

平台层(根目录 plantcraft/)承载共享对象:人员与权限、装置与信号、结果与事件、Desk(每个人的一天)、Notebooks(JupyterLab)、助手。各 app 之间不互相调用,只通过 API v1 发布/订阅"结果与事件",因此第三方 app 可以插进来而不动其它部分。

仓库 README 明确说明它处于 alpha 状态,且几乎全部由 Claude Code 编写、由一位过程工程师做决策与审核。

二、解决什么问题

传统流程工业里,一个工厂要同时买好几套系统:历史库(PI / OSIsoft)、报警系统、SCADA 仪表盘、仿真工具、文档管理。彼此的数据模型不互通,工程师想回答"这个阀为什么振荡"要跨四五个系统手工拼数据。

PlantCraft 的赌注是:把这五件事放在一个共享的装置/信号树(assets → units → areas → equipment → loops)之上,每个信号按角色标注(pv / sp / op),于是:

  • Analytics 可以判定"回路 FIC-1003 卡涩"并给出证据;
  • Alarms 可以直接基于 Analytics 的结果生成报警,而不只是基于原始信号阈值;
  • View 的仪表盘和 Models 的仿真共用同一份装置数据;
  • Documents 里的规程与 P&ID 能被检索,助手回答时引用到具体修订号和页码。

另外一层是交付形态:它以"一个签名的离线 bundle"分发——不联网、不向 DCS/PLC/历史库写入、只开一个 HTTPS 端口、默认要求登录、管理员不配置语言模型则一个 LLM 都不调用。这些是 OT 环境准入的硬门槛,商业软件往往拿不出这套材料。

三、快速安装

README 给出的三条路径:离线 bundle(自建服务器)、离线 bundle + --demo(试用,约 10 分钟)、源码 checkout(改代码或做 app,约 15 分钟)。三者跑的是同一套容器、同一套加固配置,只有源码路径会在本机构建镜像。

3.1 环境要求(摘自 docs/install.md)

  • 处理器:x86_64(linux-amd64)或 64 位 ARM(linux-arm64,含 Apple silicon)
  • 内存:8 GB(少量 app 的试用)到 16 GB(全开)
  • 磁盘:安装目录 20 GB;一年 8,000 个信号连备份约 1 TB
  • Docker:Docker Engine 24.0+ + Compose 插件 2.24+(Linux),或 Docker Desktop(macOS / Windows)
  • 账号:Linux 上需 root 或 docker 组成员;不需要 Python、Node.js、编译器或镜像仓库
  • 网络:入站 TCP 443;出站只到你自己注册的数据源

3.2 Linux(正式服务器)

# 1) 校验签名与哈希(OpenSSH ≥ 8.1)
echo 'release@plantcraft namespaces="file" ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMwhizmfd8aZQ1zHpVLpIrrgxv/YlT/ufewCBueO0hnE' \
    > plantcraft.allowed_signers
B=plantcraft-0.5.1-linux-amd64-bundle.tar.gz
ssh-keygen -Y verify -f plantcraft.allowed_signers -I release@plantcraft -n file \
    -s $B.sha256.sig < $B.sha256
sha256sum -c $B.sha256

# 2) 解包安装
tar -xzf $B && cd ${B%.tar.gz}
sudo ./install.sh --all-apps            # 装到 /opt/plantcraft
# 或者作为 docker 组成员装进自己的目录:
./install.sh --all-apps --prefix ~/plantcraft

install.md 文档更新日期为 2026-10-31,标注当前 suite 版本 0.5.1;文中标记为 0.6.0 的步骤(installation.conf、--check、--machine 档位等)在 main 分支上,会随下个版本发布。

3.3 macOS / Windows(试用)

macOS 用 linux-arm64 bundle(Apple silicon)或 linux-amd64(Intel),Docker Desktop 至少给 8 GB 内存:

B=plantcraft-0.5.1-linux-arm64-bundle.tar.gz
tar -xzf $B && cd ${B%.tar.gz}
./install.sh --all-apps --demo --prefix ~/PlantCraft

Windows 走 WSL2 + Docker Desktop,install.sh 在 WSL 的 Linux 发行版里执行(文档说 2026-10-26 在 Docker Desktop 29.9 / Compose 5.6 + Ubuntu 上测过)。

3.4 先看效果

浏览器打开 https://demo.plantcraft.io,或在本地打开安装器打印的地址(macOS 上是 https://<your-mac>.local/,证书名是机器名所以 https://localhost 会被拒),用 admin 登录,密码在 data/initial-admin-password。

四、核心用法

4.1 先跑一遍 demo 故事

docs/en/getting-started.md 用一个"卡涩阀门"的案例串起全部 app。Demo 工厂(Simulator)是 50 个控制回路的 OPC UA 服务器,两个装置单元 U-100 / U-200,其中 FIC-1003、FIC-1102、FIC-1206、FIC-1214 四个阀卡涩,PIC-1002 / PIC-1202 压力温度振荡,TIC-1209 炉出口温度漂移。

典型动线:Historian 看 FIC-1003.OP(台阶状而非平滑 = 卡涩前兆)→ Analytics 的 Control loop performance 监控给出结果(等级 OK/Warning/Critical/Unknown、0–100 分、一句话理由)→ Alarms 基于结果建规则 → View 建仪表盘 → Models 导出 FMU 让 Analytics 把炉模型跑在真实回路旁边做对比 → Notebooks 里用 Python 读历史、结果、仿真。

4.2 接自己的工厂

Historian › Sources     注册数据源(OPC UA / PI Web API / MQTT / Modbus TCP / SQL / CSV)
PlantCraft › Assets      建立装置树:site → unit → area → equipment → loop,并给信号标角色

整张装置图可以从 Excel 或 JSON 批量导入(docs/configuration-file.md)。

4.3 写自己的算法

Analytics 的算法由块(blocks) 组成,跑在装置与信号上,产出结果。块图形化编辑,Test 按钮可以先在某个回路上试跑而不保存;Copy as prompt 把整个算法导成一段提示词,你可以拿任何 AI 助手去审阅或扩展它——这是它 "LLM-first" 的具体体现:AI 负责提议,人负责确认。

规则可用三种形式:Simple(限值 + 死区 + 延时)、Blocks、Python。助手的输出也遵循"提议而非执行":它只读你有权限读的数据,任何创建动作都以提案形式回来等你确认。

4.4 接自己的 AI(只读 MCP)

PlantCraft 提供只读 MCP server,让你自己的 AI 助手能读工厂数据。默认关闭,需要管理员显式开启(见 docs/assistant-access.md)。语言模型也可强制全禁:PLANTCRAFT_LLM=off。

4.5 给它做一个自己的 app

从 templates/app(StarterCraft)起步,里面带规则、测试和给 Claude Code 的提示词,用 make dev 在 PlantCraft 里试跑,装出来是签名包,不必改主仓库。

五、典型适用场景

  1. 中小型化工/食品/制药厂的私有化部署:不想买 PI + SCADA + 报警 + 仿真的全家桶,又需要 OT 安全材料(离线、只读、签到 Purdue 模型和 IEC 62443 的安全指南)。
  2. 高校/研究机构的工业 AI 教学与实验:方法(blocks + Python)全部公开可读可改,比闭源黑箱更适合写论文和做课程。
  3. 需要"AI + 工艺数据"闭环的组织:让 LLM 基于工厂真实历史做诊断,同时保持"AI 不能写入 DCS"的红线。
  4. 文档密集的工厂:把规程、P&ID、检修记录做成可检索库,助手回答时精确引用到版本与页码。
  5. 想给某条工艺线做定制 app 的集成商:用 app template 而不必 fork 整个平台。

六、坑与注意

  1. 它是 alpha,不要直接接生产 DCS。README 原文 "PlantCraft is in alpha",虽然设计上 read-only,但成熟度是 experimental。稳妥路线是先在 --demo 仿真工厂上把全流程跑通,再接只读镜像源。
  2. 版本号在漂移。install.md 头部写着 "Updated: 2026-10-31 · suite 0.5.1",而带 0.6.0 标记的步骤(installation.conf、--check、--machine、wizard)还在 main 上。若你按 0.5.1 bundle 执行,这些步骤可能不存在——以你手上 bundle 的 docs/install.md 为准。
  3. 签名校验别跳过。bundle 用发布方 Ed25519 密钥签名,需人工比对 release 页上的 OpenSSH 指纹 SHA256:9l/yDgR8/Pzel1pncxrXz2IGCIhFirKpDT78tO49fG8、key id af2643fa16867976。首次安装时 install.sh 会警告"这个密钥随 bundle 一起带来的"——这是预期行为,但仍需与官网比对。
  4. macOS 的 https://localhost 会被拒。证书签的是机器名,要用 https://<your-mac>.local/;首次访问浏览器会警告本地 CA,需手动信任 ~/PlantCraft/local-ca-root.crt。
  5. 管理员密码只打印一次,落在 data/initial-admin-password。丢了要重置,别把它提交到仓库。
  6. 磁盘增长很快。文档给的量级是一年 8,000 信号 + 备份约 1 TB。历史库容量必须提前规划,否则装完几个月就撑爆。
  7. Dashboard 的 public link 是无认证只读访问,任何拿到链接的人都能看。厂区网络里分享前先想清楚这条链路。
  8. Windows 支持是"跑在 WSL2 的 Linux 容器里",不是原生 Windows 服务;文档只标注了 2026-10-26 在特定 Docker Desktop 版本上测试过。
  9. AI 助手默认不可用。没配语言模型时,助手面板只会明说未配置,Messages 里的 Valve 专家是脚本化回复。别把这当成 bug。
  10. "由 Claude Code 编写"是事实也是风险信号。README 主动披露这一点。可以理解为"代码可读性由 AI 保证、由人类审决策",但也意味着维护者带宽有限,进度节奏与工业现场要求不一定匹配。

七、与同类对比

维度 PlantCraft PI System / OSIsoft Ignition(Inductive Automation) Aveva / 传统 DCS 套件 自建
许可 Apache-2.0,全开源 商业 商业(分层订阅) 商业 看自己
交付 离线签名 bundle,容器化 现场服务器 + 许可 现场服务器 + 许可 现场服务器 + 许可 随意
离线/只读 硬约束:不写 DCS/PLC/历史库 需自己配 需自己配 需自己配 随意
AI 集成 页面级助手 + 只读 MCP 有插件生态 有若干模块 少 自己写
模型/仿真 内置 Modelica 块图 + FMU 导出 靠第三方 靠第三方 弱 自己写
成熟度 alpha 工业级、数十年 工业级 工业级 看团队
上手成本 低(demo 10 分钟) 高(许可+实施) 中 高 高

对预算有限、需要可审计 AI 接入、又愿意承担早期产品风险的组织,PlantCraft 是罕见选项;对可靠性要求极高的连续生产装置,它现在还替代不了成熟 DCS/历史库。

八、一句话推荐

PlantCraft 是把"历史库 + 报警 + 仪表盘 + 仿真 + 文档 + AI"打包成一套可离线私有化部署的开源工业套件,架构和安全叙事都相当扎实,但仍是 alpha——建议先在它的仿真工厂上验证流程,再决定是否接真实只读数据源,不要直接接生产控制系统。


附:来源与核验说明

  • 已 fetch:https://github.com/PlantCraft/PlantCraft(README 全文)
  • 已 fetch:https://raw.githubusercontent.com/PlantCraft/PlantCraft/main/docs/install.md(截取至 Windows 段)
  • 已 fetch:https://raw.githubusercontent.com/PlantCraft/PlantCraft/main/docs/en/getting-started.md(全文)
  • 仓库卡片 organized/repo_cards/4789-plantcraft-plantcraft.md:Stars 135、周增 +455、语言 Python、许可 Apache-2.0、最近提交 2026-11-01

不确定处(已在上文标注) - docs/install.md 中标 0.6.0 的段落(installation.conf、--check、--machine、wizard)是否已随 0.5.1 bundle 发布 → 未核实,按文档头部声明"在 main 上、随下个版本发布"处理。 - Windows 段落被截断,其完整要求与已知限制未读到。 - 各 app 的具体 API 端点、Models 的 Modelica 版本、Documents 的检索实现未逐个展开 → 未核实。 - 未核对 releases 页面的实际签名指纹(只抄自 docs/install.md 内的自述值);使用前请以官网发布页为准。