Exemple #1
0
        internal static bool IsNeedChangeAcid(FabAoEquipment eqp, string stepID, string productID)
        {
            if (eqp == null)
            {
                return(false);
            }

            if (eqp.IsAcidConst == false)
            {
                return(false);
            }

            AcidDensity acid = eqp.AcidDensity;

            //설비의 최대 농도 초과시 Setup필요
            if (acid.CurrentAcid > acid.ChangeDensity)
            {
                return(true);
            }

            AcidLimit limit = AcidMaster.GetAcidLimit(eqp.ShopID, eqp.TargetEqp.EqpGroup, productID, stepID);

            if (limit == null)
            {
                return(false);
            }

            bool  isLast       = IsLastPlan(eqp, productID, stepID);
            float limitDensity = isLast ? limit.DENSITY_LIMIT : limit.DENSITY_JC;

            //제품별 농도 초과시 Setup필요
            if (acid.CurrentAcid > limitDensity)
            {
                return(true);
            }

            return(false);
        }
Exemple #2
0
        internal static void InitAcidDensity(this FabAoEquipment eqp)
        {
            AcidDensity acid = CreateHelper.CreateAcidDensity(eqp);

            acid.InitAcid    = eqp.TargetEqp.StatusInfo == null ? 0 : eqp.TargetEqp.StatusInfo.LastAcidDensity;
            acid.CurrentAcid = acid.InitAcid;

            var chgInfos = InputMart.Instance.AcidChgInfoView.FindRows(eqp.ShopID, eqp.TargetEqp.EqpGroup);

            if (chgInfos == null || chgInfos.Count() == 0)
            {
                //등록된 설비 그룹만 농도체크
                eqp.AcidDensity = null;
                return;
            }
            else
            {
                AcidChgInfo info = chgInfos.First();
                acid.ChangeDensity = info.DENSITY;
                acid.ChangeTime    = info.CHG_TIME;

                eqp.AcidDensity = acid;
            }
        }