更新记录
1.0.0(2026-11-05)
首个版本:时间开动率 A / 性能开动率 P / 合格品率 Q / OEE / TEEP 全套,85%、70%、60% 三档等级与主因判断;损失分解把停机、换型、降速、废品、计划停机统一折成分钟,五项之和可加回班次时长;帕累托给排名、占比与累计占比并标 80% 线;多机台按有效产出时间加权(示例 66.8% vs 简单平均 64.3%);性能超 100% 提示节拍填小、零产出提示未录入、停机超计划生产时间直接拒算;18 列汇总 CSV 与损失明细 CSV 导出(带 BOM、零存储权限)。UTS→Kotlin 编译通过(index.kt 1026 行与 classes.dex 50088 字节已生成),107 项回归测试全部通过;真机未执行(设备 adb 状态 unauthorized),市场截图为 H5 渲染并标注示例数据。
平台兼容性
uni-app
| Vue2 | Vue3 | Chrome | Safari | app-vue | app-nvue | Android | iOS | 鸿蒙 |
|---|---|---|---|---|---|---|---|---|
| × | √ | × | × | √ | × | √ | × | × |
| 微信小程序 | 支付宝小程序 | 抖音小程序 | 百度小程序 | 快手小程序 | 京东小程序 | 鸿蒙元服务 | QQ小程序 | 飞书小程序 | 小红书小程序 | 快应用-华为 | 快应用-联盟 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| × | × | × | × | × | × | × | × | × | × | × | × |
设备综合效率与停机损失
给车间主任与设备主管:一台机今天到底损失在哪,别再只看一个 OEE 数字。
按班次记录算时间开动率 A、性能开动率 P、合格品率 Q 与 OEE、TEEP,把非计划停机、换型调整、小停降速、废品返工都折算成分钟做帕累托,直接告诉你先动哪一条;多台机按「计划生产时间」加权汇总,避免简单平均把半班机台算成整班。
纯本地计算,不联网、不上传。仅支持 Android。
购买前必读
适合你,如果:
- 车间有停机记录与班产量,但 OEE 只存于 Excel,算完没人知道该先修哪台;
- 客户或集团要周报,需要按机台、按班次给出一致的口径,而不是每人一个算法;
- 想知道「换型时间」到底吃掉了多少产能,好决定要不要做快速换模;
- 设备很多、班次很杂,需要一条能嵌进自己 App 的计算,而不是买一套 MES。
不适合你,如果:
- 需要直接采机床信号、PLC 点位或电表 —— 本插件不做数据采集,产量与停机时长由你的代码传进来;
- 需要实时看板、报警推送与历史趋势库 —— 本插件是「调一次算一次」的算法库,不做常驻服务;
- 需要按工单、按批次追加工序级细账 —— 本插件到机台×班次这一层,不做工序分解;
- 用 iOS —— 当前只有 Android 实现。
解决什么问题
-
OEE 65%,然后呢? 单看一个数没有动作。本插件把损失拆成停机、换型、降速、废品四类,折成分钟排队,前两条通常就占了八成的损失。
-
换型到底值不值得改。 换型 38 分钟、故障 84 分钟,两者在报表里都叫「停机」,但一个该做 SMED、一个该做预防性维修。分桶之后结论才不打架。
-
多机台汇总算错了。 五台机里有一台只排了半个班,简单平均会把车间 OEE 算高几个点。本插件按有效产出时间加权,与产量口径一致。
与同类的边界
与本店已上线的插件不重叠:
| 已有插件 | 它做什么 | 本插件的区别 |
|---|---|---|
| szhzy-process-schedule | 按交期倒排工序开工日 | 它排「什么时候做」,本插件算「做完效率如何」,一个事前一个事后 |
| szhzy-spc-capability | 按测量值算过程能力 | 它管尺寸质量分布,本插件管时间与产出效率,输入输出都不同 |
| szhzy-stock-replenish | 算安全库存与补货 | 它管物料什么时候下单,本插件管设备产能利用率 |
| szhzy-quote-cost | 报价与成本核算 | 它算单价,本插件算工时损失,不涉及价格 |
与市场同类产品的差异:
- Evocon:按机台订阅,$189–219/台/月(年付),要装 IIoT 采集盒;本插件不碰硬件,一段代码装进你自己的 App。
- Vorne XL:$4,490 一次性买硬件终端,绑定单线;本插件零硬件。
- MachineMetrics / Factbird:面向有一定自动化基础的产线,报价按线或按站点,实施以周计。
- 各类 Excel 模板:能算 OEE,但停机原因分类、加权汇总、损失折分钟都要人手工搭,一改公式就错。
本插件不做采集、不做大屏、不做多工厂权限 —— 只把「班次记录 → 三率一值 + 损失帕累托」这一段做对,且每一项都能手算复核。
快速上手
1. 单台算一次
import { oeeCompute } from '@/uni_modules/szhzy-oee-loss'
const r = oeeCompute({
machine: '注塑 3 号机',
shift: '白班',
calendarMin: 480, // 班次 8 小时
plannedStopMin: 30, // 计划停机(保养、休息)
setupMin: 38, // 换型调整
downMin: 84, // 非计划停机
idealCycleSec: 28, // 理想节拍
totalCount: 680,
goodCount: 660,
stops: [
{ reason: '设备故障', minutes: 58, kind: 'down' },
{ reason: '缺料待料', minutes: 26, kind: 'down' },
{ reason: '换型调机', minutes: 38, kind: 'setup' }
]
})
r.oee // 68.4
r.availability // 72.9 时间开动率
r.performance // 96.7 性能开动率
r.quality // 97.1 合格品率
r.topLoss // 设备故障 58 分钟
r.losses // 帕累托:排名、占比、累计占比
r.hint // 主因判断与建议
2. 多机台汇总
const b = oeeBatch({ items: [机台1, 机台2, 机台3] })
b.oee // 66.8 按计划生产时间加权
b.avgOee // 64.3 简单平均(对照用)
b.worstMachine // 注塑 5 号机
b.overCount // 达到 85% 的台数
3. 导出
oeeExport({ items, kind: 'rows', fileName: 'OEE汇总.csv' })
oeeExport({ items, kind: 'loss', fileName: '损失明细.csv' })
默认落应用外部私有目录,不需要任何存储权限;CSV 带 UTF-8 BOM,Excel 双击不乱码。
口径与公式(可手算核对)
- 计划生产时间 = 班次时长 − 计划停机
- 运行时间 = 计划生产时间 − 换型调整 − 非计划停机
- A = 运行时间 / 计划生产时间
- P = 理想节拍 × 总产出 / 运行时间(秒)
- Q = 良品数 / 总产出
- OEE = A × P × Q
- TEEP = OEE × 计划生产时间 / 班次时长
损失折算:
| 损失 | 折算方式 |
|---|---|
| 非计划停机 | 记录分钟直接计入 |
| 换型调整 | 记录分钟直接计入 |
| 计划停机 | 记录分钟直接计入(不计入 OEE,但要进损失账) |
| 小停与降速 | (运行时间 × 60 − 理想节拍 × 总产出)/ 60,下限 0 |
| 废品与返工 | 废品数 × 理想节拍 / 60 |
手算一遍(演示数据)
班次 480、计划停机 30 → 计划生产时间 450;换型 38 + 停机 84 → 运行时间 328。
- A = 328 / 450 = 72.9%
- P = 28 × 680 / (328 × 60) = 19040 / 19680 = 96.7%
- Q = 660 / 680 = 97.1%
- OEE = 0.729 × 0.967 × 0.971 = 68.4%,等级「一般」
- 速度损失 = (19680 − 19040) / 60 = 10.7 分钟;质量损失 = 20 × 28 / 60 = 9.3 分钟
- 有效产出 = 660 × 28 / 60 = 308 分钟;总损失 = 480 − 308 = 172 分钟
- 校验:84 + 38 + 30 + 10.7 + 9.3 = 172 ✓
API
| 方法 | 用途 | 关键参数 |
|---|---|---|
oeeCompute(options) |
单台计算 | calendarMin, plannedStopMin, setupMin, downMin, idealCycleSec, totalCount, goodCount, stops |
oeeBatch(options) |
多机台汇总 | items(与单台同结构) |
oeeParse(options) |
只解析停机记录 | text 或 path, charset |
oeeExport(options) |
导出 CSV | kind(rows / loss), fileName, dir |
oeeDefaults() |
默认算例 | 无 |
所有方法返回 { ok, code, message, ... },不抛异常。三率与 OEE 在返回值里已经是百分数(68.4 即 68.4%)。
导出的 CSV 列
机台汇总:机台、班次、班次时长、计划停机、计划生产时间、换型调整、非计划停机、运行时间、时间开动率%、性能开动率%、合格品率%、OEE%、TEEP%、总产出、良品、废品、等级、主要损失。
损失明细:机台、班次、排名、损失原因、类型、分钟、占比%、累计占比%。
错误码
| code | 含义 |
|---|---|
BAD_CALENDAR |
班次时长不是正数 |
BAD_CYCLE |
理想节拍不是正数 |
GOOD_OVER_TOTAL |
良品数大于总产出 |
NO_PLANNED_TIME |
计划停机把生产时间扣光了 |
STOP_OVER_PLANNED |
换型与停机之和超过计划生产时间 |
NO_ROWS / NO_VALID_ROWS |
汇总时没有记录 / 全都有错误 |
FILE_NOT_FOUND / READ_FAILED |
文件不存在或读失败 |
WRITE_FAILED / NO_OUTPUT_DIR |
写文件失败或拿不到输出目录 |
能力边界与已知限制
- 到「机台 × 班次」这一层,不做工单、批次、工序级分解;
- 不做数据采集,不连 PLC、OPC-UA、Modbus,也不读电表;
- 不做趋势库与大屏,历史对比请把每次结果自行入库;
- 换型时间需要你明确归到
setup,如果混在「停机」里,帕累托会把它算成故障,结论就会跑偏; - 理想节拍填得过于乐观时性能开动率会超过 100%,插件会给出告警,但不会替你修正。
验证状态
| 项目 | 状态 |
|---|---|
| 纯逻辑回归测试 | 107 项全部通过(含手算算例、200 组随机数据的 OEE 恒等式、损失分钟回加、帕累托与解析边界) |
| UTS → Kotlin 编译 | 通过,产物 index.kt 与 classes.dex 已生成(见发布清单) |
| 真机运行 | 未执行:测试机 adb devices 显示 unauthorized,无法安装自定义基座,也未做真机截图 |
| 市场截图 | H5 渲染,页面已标注「示例数据」,不是真机截图 |
| iOS / 鸿蒙 | 不支持 |
授权
普通授权与源码授权的范围见 license.md。购买前请确认上面的「能力边界」与「验证状态」,本插件按现状提供。

收藏人数:
购买源码授权版(
试用
赞赏(0)
下载 13
赞赏 0
下载 12745866
赞赏 1959
赞赏
京公网安备:11010802035340号