网淘巴来吧,欢迎您!

返回首页 微信
微信
手机版
手机版

OEE计算代码解析

2026-02-28 新闻来源:网淘巴 围观:901
''
购买adidas上京东官方旗舰店。 OEE计算代码:
/**Custom Code*/
Object current=param(1);
string statename=param(2);
treenode lastUpdate=current.labels.assert("lastUpdate",0);
if(time()!=lastUpdate.value)
{
current.labels.assert("statsMap");
current.lastUpdate=time();
Map statsMap;
double prodTime=current.stats.state(STATEPROFILE_PRODTIME).getTotalTimeAt(PRODTIME_ONSHIFT);//计划工作时间
    statsMap["ScheduleLoss"]=current.stats.state(STATEPROFILE_PRODTIME).getTotalTimeAt(PRODTIME_SCHEDULE_LOSS);
    //计划停机时间存入MAP指原本制定的日程表、计划安排因某些因素(如突发任务、资源不足、意外事件等)未能按预期推进,导致时间上的损失或进度上的延误
    statsMap["AvailabilityLoss"]=current.stats.state(STATEPROFILE_AVAILABILITY).getTotalTimeAt(AVAILABILITY_AVAILABLE_LOSS);
    //可用性损失时间存入Map
    double totalOutput=current.stats.output.value;//处理器总的输出数量
    double goodOutput=current.outObjects[1].stats.input.value;//良品的数量
    
    
    statsMap["IdealProdTime"]=goodOutput*current.idealCycle;//理想周期加工时间
    statsMap["QualityLoss"]=(totalOutput-goodOutput)*current.idealCycle;//idealCycle:理想周期时间 质量损失
    statsMap["Runtime"]=prodTime-statsMap.AvailabilityLoss;//运行时间
    statsMap["PerformanceRatio"]=current.idealCycle*totalOutput/statsMap.Runtime;//性能稼动率
    statsMap["AvailabilityRatio"]=statsMap.Runtime/prodTime;//时间稼动率/可用性稼动率
    statsMap["QualityRatio"]=goodOutput/totalOutput;//质量稼动率
    statsMap["OEE"]=statsMap.PerformanceRatio*statsMap.AvailabilityRatio*statsMap.QualityRatio;//设备综合效率
    statsMap["TEE"]=statsMap.IdealProdTime/time();//时间综合效率
    statsMap["PerformanceLoss"]=statsMap.Runtime-totalOutput*current.idealCycle;//性能损失
    current.statsMap=statsMap.clone();
    
}
return current.statsMap.as(Map)[statename];//从map中查找值
以下是代码中每句话的详细作用解释:
1. 参数获取
Object current = param(1);
作用:获取第一个输入参数,通常是调用此函数的对象(如处理器、机器等设备)
说明:param(1) 返回函数的第一个参数,current 变量用于后续引用这个设备对象
string statename = param(2);
作用:获取第二个输入参数,指定要查询的统计数据名称
说明:param(2) 返回函数的第二个参数,statename 变量存储要获取的具体统计指标名称
2. 标签管理
treenode lastUpdate = current.labels.assert("lastUpdate", 0);
作用:管理 "lastUpdate" 标签,确保其存在并获取引用
说明:
labels.assert() 检查对象是否有 "lastUpdate" 标签,不存在则创建
第二个参数 0 是默认值,表示初始状态
lastUpdate 变量存储这个标签的引用,用于后续检查和更新
3. 更新控制
if (time() != lastUpdate.value)
作用:控制统计数据的更新频率,避免重复计算
说明:
time() 返回当前仿真时间
只有当当前时间与上次更新时间不同时才执行统计数据计算
确保每个时间步只计算一次统计数据,提高性能
4. 统计数据初始化
{
作用:开始条件语句的代码块
    current.labels.assert("statsMap");
作用:确保 "statsMap" 标签存在,用于存储统计数据
说明:statsMap 标签将用于存储计算后的统计数据集合
    current.lastUpdate = time();
作用:更新 "lastUpdate" 标签为当前时间
说明:记录本次统计数据更新的时间,用于下次判断是否需要更新
    Map statsMap;
作用:创建临时 Map 对象存储计算结果
说明:statsMap 将用于临时存储各种统计指标的计算结果
5. 时间统计数据
    double prodTime = current.stats.state(STATEPROFILE_PRODTIME).getTotalTimeAt(PRODTIME_ONSHIFT);
作用:获取计划工作时间
说明:
STATEPROFILE_PRODTIME:生产时间状态配置文件
PRODTIME_ONSHIFT:计划工作时间状态
获取设备在计划工作时间状态下的总时间
    statsMap["ScheduleLoss"] = current.stats.state(STATEPROFILE_PRODTIME).getTotalTimeAt(PRODTIME_SCHEDULE_LOSS);
作用:计算计划停机损失时间
说明:
PRODTIME_SCHEDULE_LOSS:计划停机状态
获取设备在计划停机状态下的总时间,存入 "ScheduleLoss" 键
    statsMap["AvailabilityLoss"] = current.stats.state(STATEPROFILE_AVAILABILITY).getTotalTimeAt(AVAILABILITY_AVAILABLE_LOSS);
作用:计算设备不可用损失时间
说明:
STATEPROFILE_AVAILABILITY:可用性状态配置文件
AVAILABILITY_AVAILABLE_LOSS:设备不可用状态
获取设备在不可用状态下的总时间,存入 "AvailabilityLoss" 键
6. 产量统计数据
    double totalOutput = current.stats.output.value;
作用:获取设备的总输出数量
说明:stats.output.value 返回设备处理的总实体数量
    double goodOutput = current.outObjects[1].stats.input.value;
作用:获取设备的良品输出数量
说明:
outObjects[1] 引用第一个输出端口连接的对象
stats.input.value 返回该对象接收的实体数量(即良品数量)
7. 效率指标计算
    statsMap["IdealProdTime"] = goodOutput * current.idealCycle;
作用:计算理想生产时间
说明:良品数量 × 理想周期时间 = 理论上生产这些良品所需的时间
    statsMap["QualityLoss"] = (totalOutput - goodOutput) * current.idealCycle;
作用:计算质量损失时间
说明:不良品数量 × 理想周期时间 = 因生产不良品而浪费的时间
    statsMap["Runtime"] = prodTime - statsMap.AvailabilityLoss;
作用:计算实际运行时间
说明:计划工作时间 - 不可用损失时间 = 设备实际运行的时间
    statsMap["PerformanceRatio"] = current.idealCycle * totalOutput / statsMap.Runtime;
作用:计算性能稼动率
说明:(理想周期 × 总产量) / 运行时间 = 设备实际运行速度与理想速度的比率
    statsMap["AvailabilityRatio"] = statsMap.Runtime / prodTime;
作用:计算时间稼动率(可用性)
说明:运行时间 / 计划工作时间 = 设备实际运行时间占计划时间的比例
    statsMap["QualityRatio"] = goodOutput / totalOutput;
作用:计算质量稼动率(良品率)
说明:良品数量 / 总产出数量 = 设备生产合格产品的能力
    statsMap["OEE"] = statsMap.PerformanceRatio * statsMap.AvailabilityRatio * statsMap.QualityRatio;
作用:计算设备综合效率(OEE)
说明:性能稼动率 × 时间稼动率 × 质量稼动率 = 全面衡量设备效率的指标
    statsMap["TEE"] = statsMap.IdealProdTime / time();
作用:计算时间综合效率(TEE)
说明:理想生产时间 / 总仿真时间 = 设备有效利用时间占总时间的比例
    statsMap["PerformanceLoss"] = statsMap.Runtime - totalOutput * current.idealCycle;
作用:计算性能损失时间
说明:运行时间 - 实际生产时间 = 因设备运行速度低于理想速度而损失的时间
8. 数据存储与返回
    current.statsMap = statsMap.clone();
作用:将计算结果存储到设备对象的标签中
说明:
clone() 创建 Map 的副本,避免后续修改影响已存储的数据
将统计结果保存到设备的 "statsMap" 标签中
}

作用:结束条件语句的代码块
return current.statsMap.as(Map)[statename];
作用:返回指定的统计数据
说明:
as(Map) 将标签值转换为 Map 类型
[statename] 获取指定名称的统计数据值
返回结果给函数调用者
免责申明
部分文章来自各大搜索引擎,如有侵权,请与我联系删除。
打赏

Luminar Neo 是一款先进的 AI 照片编辑工具,专为摄影师、设计师和创意工作者设计, 以灵活、注重效能的引擎为核心,提供更快的编辑速度、无缝的基于图层的工作流程以及对每个细节的精确控制。

相关文章

马年
奔腾

您是本站第81664名访客 今日有1篇新文章/评论