示范:两种采样率和一次 OEE 计算
这一页用 demo_s3_10hz.csv、demo_s3_1hz.csv 和 demo_s3_worn.csv。前两份是同一段运行,只是采样率不同。
两种采样率
用同一份代码、同样的事件定义处理两份文件:
| 数字 | 10 Hz | 1 Hz |
|---|---|---|
| 行数 | 18000 | 1800 |
| 球数 | 613 | 612 |
| 满管停机次数 | 90 | 90 |
| 满管停机总时长 | 360.2 s | 360 s |
| 满管停机中位时长 | 3.4 s | 3 s |
| 两臂停在原位 ≥ 1 s 的次数 | 5 | 19 |
| 两臂停在原位的总时长 | 73.1 s | 86 s |
球数、满管停机的次数和总时长几乎一致,后三行差别很大:
- 中位时长:1 Hz 时,一次停机的起点和终点都只能落在整秒上,每一端最多差将近 1 秒。满管停机只有 3 秒多,这样的误差已经很大。1 Hz 测出的中位时长是 3 秒,正好落在整秒上。
- 两臂停在原位的次数:10 Hz 下是 5 次,1 Hz 下变成了 19 次。每个周期结束时,手臂会在原位停约 0.6 秒,这是正常的。1 Hz 时这段停顿有时正好被连续两行采到,看上去就像停了 1 秒以上。1 Hz 下,"停在原位 1 秒以上"这个定义已经无法把正常停顿和真正的停机分开。
结论:用 1 Hz 数据时,球数和停机次数可以用;时长和短停只能给出粗略的范围;1 秒级的定义根本不能用。
一次 OEE 计算
用 10 Hz 的事件表,按说明页的口径计算:
| 项目 | 数值 |
|---|---|
| 计划时间 | 1800 s |
| 停机(≥ 30 s) | 1 次,共 43 s |
| 短停(不足 30 s) | 4 次,共 30.1 s |
| 运转时间 | 29.28 min |
| 额定产能 × 计划时间 | 644 个球 |
| 实际球数 | 613 |
| 可用率 | 97.6% |
| 性能 | 97.5% |
| 质量 | 无法观测,记为 100% |
| OEE | 95.2% |
644 个球的额定产量,因停机少了 15 个,因短停和节拍变慢又少了 16 个,最后剩下 613 个。
这里还缺误差范围。报告中至少要说明:
- 30 秒阈值换成 20 秒或 60 秒,可用率和性能各变多少;
- 用 1 Hz 数据算,结果差多少;
- 质量为什么记为 100%,这个假设可能高估了多少。
聚合会丢掉什么
最后一份文件来自另一台机器:有一个部件在逐渐退化。先只看每分钟的汇总:
| 前 5 分钟 | 后 5 分钟 | |
|---|---|---|
| 每分钟分拣的球数 | 22.4 | 19.2 |
产量下降了,汇总数据能告诉你这一点。但它说不出是哪个部件、从什么时候开始变慢的。
回到原始 10 Hz 数据,量每个垂直气缸在两端之间移动所用的时间,也就是两个到位开关都不亮的那几行:
| 垂直气缸 | 前 5 分钟 | 后 5 分钟 |
|---|---|---|
| 左臂 | 0.3 s | 0.51 s |
| 右臂 | 0.3 s | 0.3 s |
左臂的垂直气缸变慢了 71%,右臂没有变化。这个结论只能从原始数据得出:一旦只保留每分钟的汇总,行程时间就再也算不出来了。
所以原始数据要保留,至少保留到你确定不再需要它为止;汇总可以随时由原始数据重新算出,反过来却不行。这会在 S5 和 S6 再次 用到。