public void ON_BEGIN_INIT0(AoFactory factory, IList <IHandlingBatch> wips, ref bool handled) { foreach (var hb in wips) { var lots = hb.ToList(); QTimeMaster.SetWipStayHours(lots); } }
/// <summary> /// </summary> /// <param name="hb"/> /// <param name="now"/> /// <param name="handled"/> /// <param name="prevReturnValue"/> /// <returns/> public IHandlingBatch[] STEP_CHANGE0(Mozart.SeePlan.Simulation.IHandlingBatch hb, DateTime now, ref bool handled, Mozart.SeePlan.Simulation.IHandlingBatch[] prevReturnValue) { FabLot lot = hb.ToFabLot(); FabPlanInfo plan = lot.CurrentFabPlan; /* * StepChange */ ILot[] lots = hb.StepChange(now); //설비의 OutPort에서 Lot을 모으는 InterceptMove를 사용할 경우 해당 위치에서 별도 집계 필요함. InFlowMaster.ChangeWipLocation(hb, EventType.TrackOut); //FabPlanInfo prev = lot.PreviousFabPlan; ////InLineMap 다음StepSkip //if (prev.IsLoaded && prev.FabStep.StdStep.IsBaseEqp(prev.ResID)) //{ // plan = lot.CurrentFabPlan; // plan.TransferStartTime = now; // plan.TransferEndTime = now; // plan.EqpInEndTime = now; // plan.EqpInStartTime = now; // plan.Start(now, null); // plan.End(now, null); // lots = hb.StepChange(now); //} QTimeMaster.StepChange(lots, now); return(lots); }