2026-10-07 · 原文发布日
n8n自动计算产线OEE并推送停机根因分析
面向工厂的n8n免费模板:班次数据通过n8n表单或带鉴权的IoT/PLC网关webhook进入Google Sheets,每班结束15分钟后自动计算全厂和单机的可用率、性能、良品率与OEE,把停机归入TPM六大损失并对照7天基线标记异常;缺数据时WhatsApp提醒厂长,有数据则交给OpenAI代理结合历史和维修工单生成根因分析报告,附QuickChart帕累托图发到WhatsApp,同时为关键设备创建或更新维修工单。
原文要点
这是n8n.io上的免费模板(作者Rahul Joshi):班次产量与停机数据经n8n表单或带头部鉴权的IoT/PLC网关webhook(路径oee-iot-feed)进入,规范化后写入Google Sheets的Shift Log标签页;每班结束15分钟后定时任务读取Machine Master与Shift Log,计算全厂和单机可用率、性能、良品率与OEE,把停机归入TPM六大损失并对照7天滚动基线标记异常。无数据时向厂长发WhatsApp缺失清单;有数据时交OpenAI代理查OEE History和Maintenance Tickets生成结构化根因报告,附QuickChart帕累托图发WhatsApp,并为关键机台创建或更新维修工单。设置要求替换REPLACE_WITH_GOOGLE_SHEET_ID并配置OpenAI、WhatsApp Business Cloud凭据。
这次做成什么
照着本指南把这条免费OEE流水线搭起来:先建表、导入模板、配凭据,再用本站提供的合成班次数据手动触发一次,核对OEE计算结果与WhatsApp推送内容,确认无误后再激活定时。
准备什么
- 一个可登录的n8n实例(云版或自托管均可)
- Google账号,能新建Google Sheets并授予n8n凭据
- OpenAI API key(供模板内AI代理节点使用)
- WhatsApp Business Cloud账号、phoneNumberId和两个测试接收号码
- 可选:能发自定义HTTP头部的IoT/PLC网关或Postman类工具
具体怎么做
建Google Sheets工作簿
新建一个工作簿,建四个标签页:Machine Master、Shift Log、OEE History、Maintenance Tickets。Machine Master至少填machine_id列,可选line、ideal_cycle_time_sec、active;Shift Log按下方材料里的列建好表头;OEE History和Maintenance Tickets先只建表头(如ticket_id、machine_id、status、description、created_at)。复制浏览器地址栏里/spreadsheets/d/后面那串ID备用。
导入模板并替换ID、配凭据
在n8n工作流页面导入该模板(n8n.io/workflows/20607,从模板库一键导入)。全局搜索REPLACE_WITH_GOOGLE_SHEET_ID,把所有出现处替换成上一步的表格ID。在n8n凭据里新建Google Sheets OAuth2、OpenAI、WhatsApp Business Cloud三条凭据,分别在对应节点下拉选中;WhatsApp节点填入你的phoneNumberId,并在shift configuration步骤填厂长和维修组接收号码。
选择数据入口:表单或webhook
练习阶段用模板自带的n8n Form入口,按其字段手工录入一条班次数据提交,确认能写入Shift Log。若走IoT路线:在webhook节点开启Header Auth,设一个头部名和令牌值(如X-OEE-Token),把webhook的生产URL路径oee-iot-feed和该头部配置到网关;练习时可用curl带同样头部POST一条JSON验证鉴权拦截与放行。
调整班次与阈值配置
打开shift identification(班次识别)步骤,按工厂实际修改班次起止时间与cron表达式(模板逻辑是每班结束15分钟后跑)、OEE目标值、关键机台阈值、异常z值门槛和故障报警分钟数。这些参数界面位置以你导入的模板为准,本指南未逐项实测。
用合成数据手动执行核对
把下方材料里的合成CSV两行录入Shift Log(M-01正常、M-02有大段计划外停机),手动执行工作流。核对:OEE History新增两行,其中M-02的OEE与example手算值0.600一致;WhatsApp收到含帕累托图链接的班次报告;因M-02低于关键阈值,Maintenance Tickets应新增一条工单,再次触发同机台异常时应更新而非重复建单。
激活并观察一个完整班次
确认测试通过后点Activate。下一个班次结束约15分钟后检查:执行记录无红色失败、WhatsApp按分支送达(有数据发报告、无数据发缺失清单)、OEE History持续追加行。
可直接复制的材料
Shift Log合成测试数据(两行)
本站独立编写的合成数据,列名需与你导入模板中Shift Log节点的字段映射核对后再粘贴。
machine_id,shift_date,shift,planned_min,planned_down_min,unplanned_down_min,ideal_cycle_sec,total_units,good_units,breakdown_min,changeover_min,minor_stop_min,speed_loss_min,defect_units,startup_reject_units
M-01,2026-10-08,A,480,30,20,12,1800,1746,0,20,10,5,40,14
M-02,2026-10-08,A,480,30,150,15,1200,1080,150,30,20,10,90,30字段映射与触发配置(本站方案,需在模板内核对)
仅本站整理的配置方案,不是可导入的n8n工作流JSON;具体节点名以原模板为准。
{"trigger":"Schedule Trigger, cron: 每班结束+15分钟,如三班倒则 15 7,15,23 * * *","webhook":{"path":"oee-iot-feed","auth":"Header Auth,头部名与令牌自定义"},"fieldMapping":{"machine_id":"Shift Log.machine_id","planned_min":"计划运行分钟","unplanned_down_min":"计划外停机分钟","availability":"(planned_min-planned_down_min-unplanned_down_min)/(planned_min-planned_down_min)","performance":"ideal_cycle_sec*total_units/实际运行秒","quality":"good_units/total_units","oee":"availability*performance*quality"},"outputs":{"whatsapp_no_data":"厂长号码,列缺失机台","whatsapp_report":"报告文本+QuickChart帕累托图URL","tickets":"关键机台查重后创建或更新Maintenance Tickets"}}RCA代理练习提示词(本站独立撰写,用于离线预演)
本站练习用提示词,与原模板内代理提示词不同;正式效果以原模板为准。
你是工厂TPM分析助手。输入是某班次每台设备的OEE四要素、按TPM六大损失(设备故障、换型调整、小停机空转、速度损失、过程不良、开机不良)拆分的停机分钟数、近7天OEE基线,以及该机台未关闭维修工单。请输出严格JSON:{"shift_summary":"...","top_losses":[{"machine_id":"...","loss_category":"...","minutes":0,"suspected_cause":"...","action":"...","assignee_role":"...","due_days":0}],"anomalies":[{"machine_id":"...","metric":"...","baseline":0,"current":0}]},只输出JSON,不要解释。输入与输出示例
本站虚构演示数据与手算结果,非模板实际运行输出;模板内性能口径若以实际运行时间计则与此一致,请以模板公式节点为准。
输入
M-02班次A:计划480分钟,计划停机30分钟,计划外停机150分钟(其中故障150),理想节拍15秒,产出1200件,合格1080件;近7天该机台OEE基线0.71。对应输出
手算核对:负荷时间=480-30=450分钟;实际运行=450-150=300分钟;可用率=300/450=0.667;性能=15*1200/(300*60)=1.000;良品率=1080/1200=0.900;OEE=0.667*1.000*0.900=0.600。因0.600低于基线0.71且故障150分钟触发报警,预期分支:生成含M-02故障为帕累托首位的报告,并在Maintenance Tickets为M-02新建一条工单。做完检查这些
- Shift Log提交一条数据后工作簿对应标签页立即新增一行,无字段错位
- 手动执行后OEE History新增行的OEE值与手算结果误差小于0.01
- M-02异常时Maintenance Tickets出现新工单;同机台再次异常时原工单被更新而非重复创建
- 清空Shift Log后手动执行,厂长号码收到列明缺失机台的WhatsApp提醒
- WhatsApp报告消息中包含可打开的QuickChart帕累托图URL
容易卡住的地方
- 忘记替换任一REPLACE_WITH_GOOGLE_SHEET_ID会导致对应Google Sheets节点直接报错
- WhatsApp Business Cloud的接收号码若未在Meta后台登记为测试号码,消息会静默失败
- cron时区默认是n8n实例时区,班次跨零点时务必先在模板里核对时区设置
- webhook的Header Auth头部名与网关配置不一致会返回401,且n8n执行记录里不易察觉
- AI代理与OpenAI、WhatsApp发送均产生第三方费用,免费仅指模板本身
本站借助AI整理来源事实,独立编写中文操作指南与示例。示例不代表实际运行结果;来源效果尚未由本站独立复现。付费模板与模型、服务费用分别计算。
- 原文标题
- Analyze machine downtime and OEE with Google Sheets, OpenAI and WhatsApp
- 原作者
- Rahul Joshi
- 原始发布日期
- 2026-10-07T07:35:49.442Z
- 来源
- https://n8n.io/workflows/20607