//Chamber생성 internal static void InitializeParallelChamber(AoEquipment aeqp) { var eqp = aeqp.ToFabAoEquipment(); if (eqp.IsParallelChamber == false) { return; } FabEqp taretEqp = aeqp.Target as FabEqp; AoChamberProc2 proc = eqp.FirstProcess <AoChamberProc2>(); var chambers = proc.Chambers; if (chambers != null) { int count = chambers.Length; eqp.SubEqps = new FabSubEqp[count]; for (int i = 0; i < count; i++) { var chamberInfo = chambers[i]; string subEqpID = chamberInfo.Label; var subEqp = taretEqp.GetSubEqp(subEqpID) as FabSubEqp; subEqp.ChamberInfo = chamberInfo; eqp.SubEqps[i] = subEqp; subEqp.LastPlan = SimHelper.CreateInitLastPlan(subEqp.StatusInfo); subEqp.LastIdleRunStartTime = aeqp.NowDT; subEqp.LastIdleStartTime = aeqp.NowDT; } } }
public static void SetInitEqpStatus(this FabEqp targetEqp, FabAoEquipment eqp) { EqpStatusInfo info = targetEqp.StatusInfo; if (info == null) { return; } eqp.ContinuousQty = info.LastContinuousQty; //down 이후 setup 필요 (2020.01.14 - by.liujian(유건)) //if (targetEqp.State == ResourceState.Down && info.OrigineStatus != MesEqpStatus.IDLE) // return; var status = info.MesStatus; if (status == MesEqpStatus.RUN || status == MesEqpStatus.Set_Up || status == MesEqpStatus.E_RUN || info.OrigineStatus == MesEqpStatus.IDLE || info.OrigineStatus == MesEqpStatus.DOWN) { eqp.LastPlan = SimHelper.CreateInitLastPlan(info); } }