n8n-nodes-des-twin
v0.2.1
Published
DES digital twin helpers: takt beat (JPH × speed) and station wall-clock wait for n8n workflows
Maintainers
Readme
n8n-nodes-des-twin
面向 DES-AI 数字孪生产线 的 n8n 自定义社区节点包(v0.2.1):节拍、工位墙钟、信号灯闸门、双路分支、可视化上报;与内置 MySQL、Wait、HTTP Request(PLC) 组合即可完成整条编排。
一、n8n 社区节点机制(摘要)
- 形态:独立 npm 包,包名
n8n-nodes-*,package.json的n8n.nodes指向dist下各*.node.js。 - 实现:每节点一个类实现
INodeType(description+execute),图标为同目录file:*.svg。 - 构建:
npm run build→tsc+scripts/copy-icons.mjs(避免部分环境下@n8n/node-cli的 ESM 冲突)。 - 安装:自托管设置
N8N_CUSTOM_EXTENSIONS指向本包根目录并重启;或 Settings → Community nodes 安装已发 npm 的包名。需与实例的 n8n / n8n-workflow 大版本 匹配(本包peerDependencies:n8n-workflow@^2)。
二、目录结构
n8n-nodes-des-twin/
├── .npmrc # 强制官方 registry,避免镜像导致 publish 404
├── package.json
├── LICENSE
├── tsconfig.json
├── scripts/
│ ├── copy-icons.mjs
│ └── pre-publish-check.mjs
├── nodes/
│ ├── DesTaktBeat/
│ ├── DesStationTiming/
│ ├── DesTrafficLightGate/
│ ├── DesBranchRoute/
│ └── DesVisualizationPing/
├── dist/ # 构建生成
└── README.md三、节点一览
| 节点 | name | 作用 |
|------|--------|------|
| DES 节拍放行 | desTaktBeat | 按 JPH、倍速、批条数生成多条 item;输出 runId、correlationKey、spawnIntervalSimMs 等(与 useVehicleFlow.ts 公式一致)。 |
| DES 工位墙钟 | desStationTiming | 按工位 1× 秒数与倍速写入 desStation.waitWallMs / waitWallSeconds,供 Wait 引用。 |
| DES 信号灯闸门 | desTrafficLightGate | 绿灯放行、红灯阻塞、黄灯在 queueDepth < yellowQueueCapacity 时缓冲,否则视为队列满阻塞;结果写入 desTraffic;可选阻塞抛错。 |
| DES 双路分支 | desBranchRoute | 双主输出:按 branchKey(可配置路径)匹配支路 A/B,写入 desBranch.sourceHandle(br-a / br-b),未匹配走默认支路。 |
| DES 可视化上报 | desVisualizationPing | 使用 n8n 内置 helpers.httpRequest(无额外 runtime 依赖)将批次或逐条 POST 到看板/前端接口,回写 desVisual。 |
刻意不重复实现的能力:MySQL 取数、PLC HTTP 使用 n8n 自带节点即可;本包只补充 DES 域语义与分流。
四、推荐工作流拓扑
[触发] → [DES 节拍放行]
→ [MySQL](LIMIT / 关联 correlationKey、vehicleSerial)
→ [DES 信号灯闸门](item 可带 trafficPhase、queueDepth)
→ [DES 双路分支](按库中 branchKey)
├→ 支路 A → [DES 工位墙钟] → [Wait] → [HTTP PLC] …
└→ 支路 B → …
→ [DES 可视化上报](POST 到 Vue 看板,驱动小车等)- Wait:
Wait节点持续时间可用表达式引用上一步的$json.desStation.waitWallSeconds(秒)。 - 节拍串行:放车间隔由节拍节点给出的
spawnIntervalSimMs换算为墙钟秒后接 Wait 或 Schedule 子流,按你们习惯组装。 - 安全:可视化上报 URL 由你们控制;生产环境请配合鉴权网关或仅内网地址。
五、构建
cd n8n-nodes-des-twin
npm install
npm run build仓库根目录亦可:npm run n8n-nodes:build。
安装后在节点面板搜索 「DES」 应出现 5 个节点。
六、发布到 npm(本仓库已尽量「一步到位」)
本包已包含:
.npmrc:在本目录执行命令时固定https://registry.npmjs.org/,避免淘宝/企业镜像下npm publish出现 PUT 404。npm run publish:npm:先跑scripts/pre-publish-check.mjs(检查 registry、npm whoami是否已登录、dist是否存在,缺则自动build),再npm publish。
你本机只需执行(无法由他人代登录):
cd n8n-nodes-des-twin
npm install
npm login # 浏览器/邮箱/2FA 按 npm 官网提示完成
npm run publish:npm若 npm 账号开启了 2FA(一次性密码):
npm run publish:npm -- --otp=你的六位验证码成功后,在私有化 n8n:Settings → Community nodes,安装包名 n8n-nodes-des-twin(或指定版本 [email protected]),重启 n8n(若提示需要)。
可选:在 package.json 增加 "repository" 指向真实 Git 仓库,便于 npm 页展示;与 Creator Portal 认证、GitHub Actions provenance 无冲突时再按需接入。
七、许可
MIT。
