Пример #1
0
        /// <summary>
        /// </summary>
        /// <param name="aeqp"/>
        /// <param name="hb"/>
        /// <param name="handled"/>
        /// <param name="prevReturnValue"/>
        /// <returns/>
        public ProcTimeInfo GET_PROCESS_TIME0(Mozart.SeePlan.Simulation.AoEquipment aeqp, IHandlingBatch hb, ref bool handled, ProcTimeInfo prevReturnValue)
        {
            try
            {
                ProcTimeInfo info = new ProcTimeInfo();

                MicronBEAssyBELot lot = hb as MicronBEAssyBELot;

                MicronBEAssyBEStep step = hb.CurrentStep as MicronBEAssyBEStep;

                foreach (StepTime time in InputMart.Instance.StepTime.DefaultView)
                {
                    if (step.StepID != time.STEP_ID)
                    {
                        continue;
                    }

                    if (lot.Product.LineID != time.LINE_ID)
                    {
                        continue;
                    }

                    if (LikeUtility.Like(lot.Product.ProductID, time.PRODUCT_ID) == false)
                    {
                        continue;
                    }

                    //if (LikeUtility.Like(lot.Product.Process.ProcessID, time.PROCESS_ID) == false)
                    //    continue;

                    if (LikeUtility.Like(aeqp.EqpID, time.EQP_ID) == false)
                    {
                        continue;
                    }

                    double tactTimeBySec = (double)time.TACT_TIME;

                    info.TactTime = TimeSpan.FromSeconds(tactTimeBySec);

                    break;
                }

                return(info);
            }
            catch (Exception e)
            {
                WriteHelper.WriteErrorHistory(ErrorLevel.FATAL, string.Format("ErrorMessage : {0}   MethodName : {1}", e.Message, System.Reflection.MethodInfo.GetCurrentMethod().Name));
                return(default(ProcTimeInfo));
            }
        }
Пример #2
0
        /// <summary>
        /// </summary>
        /// <param name="aeqp"/>
        /// <param name="hb"/>
        /// <param name="handled"/>
        /// <param name="prevReturnValue"/>
        /// <returns/>
        public ProcTimeInfo GET_PROCESS_TIME0(AoEquipment aeqp, IHandlingBatch hb, ref bool handled, ProcTimeInfo prevReturnValue)
        {
            FabStep step = hb.CurrentStep as FabStep;
            FabEqp  eqp  = aeqp.Target as FabEqp;

            FabLot   lot = hb.Sample as FabLot;
            StepTime st  = step.GetStepTime(eqp.EqpID, lot.CurrentProductID);

            float mixRunRatio = 1;

            if (aeqp.IsParallelChamber)
            {
                if (eqp.IsMixRunning())
                {
                    mixRunRatio = lot.CurrentFabStep.StdStep.MixCriteria;
                }

                if (mixRunRatio == 0)
                {
                    mixRunRatio = 1;
                }
            }

            ProcTimeInfo time = new ProcTimeInfo();

            if (st != null)
            {
                time.FlowTime = TimeSpan.FromSeconds(st.ProcTime * mixRunRatio);
                time.TactTime = TimeSpan.FromSeconds(st.TactTime * mixRunRatio);
            }
            else
            {
                time.FlowTime = TimeSpan.FromMinutes(10);
                time.TactTime = TimeSpan.FromMinutes(10);
            }

            return(time);
        }