Esempio n. 1
0
        private bool ProcessB10(RepairRecordModel repairRecModel, string lineStationID, ref bool needRepair, ref string restr)
        {
            ModuleProcessModel currProcess = bllModuleProcess.GetProcessByID(lineStationID);

            if (currProcess == null)
            {
                restr = "工作中心号错误:" + lineStationID + ",不存在此工作中中心号!";
                return(false);
            }
            ModuleProcessModel weld2Process = bllModuleProcess.GetProcessByWorkStationID(this.wedlAluminum2);

            if (weld2Process == null)
            {
                restr = "工作中心号错误:" + weld2Process.WorkStationID + ",不存在此工作中中心号!";
                return(false);
            }
            if (currProcess.ModuleProcessOrder < weld2Process.ModuleProcessOrder)
            {
                restr += "当前工作中心:" + currProcess.WorkStationID + ",工艺顺序在" + weld2Process.ModuleProcessName + "前面,不需要加工!";

                needRepair = false;
                return(true);
            }
            if (currProcess.WorkStationID == this.glueOutCheck2)
            {
                needRepair = false;
                return(true);
            }


            needRepair = NeedRepairByWorkstationOrder(this.wedlAluminum2, lineStationID, ref restr);

            return(true);
        }
Esempio n. 2
0
        private bool ProcessB7(RepairRecordModel repairRecModel, string lineStationID, ref bool needRepair, ref string restr)
        {
            ModuleProcessModel currProcess = bllModuleProcess.GetProcessByID(lineStationID);

            if (currProcess == null)
            {
                restr = "工作中心号错误:" + lineStationID + ",不存在此工作中中心号!";
                return(false);
            }
            ModuleProcessModel laster1Process = bllModuleProcess.GetProcessByWorkStationID(this.laserClean1);

            if (laster1Process == null)
            {
                restr = "工作中心号错误:" + laster1Process.WorkStationID + ",不存在此工作中中心号!";
                return(false);
            }
            if (currProcess.ModuleProcessOrder < laster1Process.ModuleProcessOrder)
            {
                restr += "当前工作中心:" + currProcess.WorkStationID + ",工艺顺序在激光清洗1#前面,不需要加工!";

                needRepair = false;
                return(true);
            }
            if (currProcess.WorkStationID == this.glueOutCheck1 || currProcess.WorkStationID == this.laserClean2 ||
                currProcess.WorkStationID == this.glueOutCheck2 || currProcess.WorkStationID == this.wedlAluminum2)
            {
                needRepair = false;
                return(true);
            }

            needRepair = true;
            return(true);
            //}
            //return true;
        }
Esempio n. 3
0
        private bool BeforeWrokStationProcess(string currLineStationID, string workStationID, ref bool needRepair, ref string restr)
        {
            ModuleProcessModel currProcess = bllModuleProcess.GetProcessByID(currLineStationID);

            if (currProcess == null)
            {
                restr = "工作中心号错误:" + currLineStationID + ",不存在此工作中中心号!";
                return(false);
            }
            ModuleProcessModel weldProcess = bllModuleProcess.GetProcessByWorkStationID(workStationID);

            if (weldProcess == null)
            {
                restr = "工作中心号错误:" + weldProcess.WorkStationID + ",不存在此工作中中心号!";
                return(false);
            }
            if (currProcess.ModuleProcessOrder < weldProcess.ModuleProcessOrder)
            {
                restr += "当前工作中心:" + currProcess.WorkStationID + ",工艺顺序在" + weldProcess.ModuleProcessName + "前面,不需要加工!";

                needRepair = false;
                return(true);
            }
            needRepair = false;
            return(true);
        }
Esempio n. 4
0
        public bool IsSpecialProcess(RepairProcessParam repairParam, ref string isSpecialProcess, ref string restr)
        {
            isSpecialProcess = false.ToString();

            ModuleProcessModel moduleProcese = bllModuleProcess.GetProcessByWorkStationID(repairParam.StartDevStation);

            if (moduleProcese == null)
            {
                restr = "开始工位中心号错误:" + repairParam.StartDevStation + ",线体服务查无此工作中心号!";
                return(false);
            }
            if (repairParam.ProcessNum.ToUpper().Contains(moduleProcese.LineName) == true)
            {
                restr            = "此加工流程不为特殊返修流程";
                isSpecialProcess = false.ToString();
                return(true);
            }

            else
            {
                restr            = "此加工流程为特殊返修流程";
                isSpecialProcess = true.ToString();
                return(true);
            }
        }
Esempio n. 5
0
        private bool ProcessB6(RepairRecordModel repairRecModel, string lineStationID, ref bool needRepair, ref string restr)
        {
            ModuleProcessModel wled2Process = bllModuleProcess.GetProcessByWorkStationID(this.wedlAluminum2);

            if (wled2Process == null)
            {
                restr = "工作中心号错误:" + this.wedlAluminum2 + ",不存在此工作中中心号!";
                return(false);
            }
            ModuleProcessModel currModuleProcess = bllModuleProcess.GetProcessByID(lineStationID);

            if (wled2Process == null)
            {
                restr = "工位编号错误:" + lineStationID + ",不存在此工位编号!";
                return(false);
            }
            if (currModuleProcess.ModuleProcessOrder < wled2Process.ModuleProcessOrder)
            {
                restr      = "当前加工工作中心:" + currModuleProcess.WorkStationID + ",工艺顺序在铝丝焊2#工位前,不需要加工!";
                needRepair = false;
                return(true);
            }

            needRepair = NeedRepairByWorkstationOrder(this.wedlAluminum2, lineStationID, ref restr);
            return(true);
        }
Esempio n. 6
0
        private bool SpecialProcessHandler(RepairRecordModel repairRecModel, string currlineStationID, ref bool needRepair, ref string restr)
        {
            ModuleProcessModel cuurModuleProcess = bllModuleProcess.GetProcessByID(currlineStationID);

            if (cuurModuleProcess == null)
            {
                restr     += "当前线体服务器工位编号错误:" + currlineStationID + ",线体服务器查无此工位编号!";
                needRepair = false;
                return(false);
            }
            ModuleProcessModel repairProcess = bllModuleProcess.GetProcessByWorkStationID(repairRecModel.RepairStartStationNum);

            if (repairProcess == null)
            {
                restr = "开始工位中心号错误:" + repairRecModel.RepairStartStationNum + ",线体服务查无此工作中心号!";
                return(false);
            }

            if (repairProcess.LineName != cuurModuleProcess.LineName)//不在一个线别,那就用流程代号处理
            {
            }
            else//在一个线别就用起始加工中心判断
            {
                needRepair = NeedRepairByWorkstationOrder(repairRecModel.RepairStartStationNum, repairProcess.ModuleProcessID, ref restr);
                return(true);
            }
            return(true);
        }
Esempio n. 7
0
        private bool ProcessB12(RepairRecordModel repairRecModel, string lineStationID, ref bool needRepair, ref string restr)
        {
            ModuleProcessModel currProcess = bllModuleProcess.GetProcessByID(lineStationID);

            if (currProcess == null)
            {
                restr = "工作中心号错误:" + lineStationID + ",不存在此工作中中心号!";
                return(false);
            }
            ModuleProcessModel jueyuanScrew = bllModuleProcess.GetProcessByWorkStationID(this.cLineJYScrew);

            if (currProcess == null)
            {
                restr = "工作中心号错误:" + cLineJYScrew + ",不存在此工作中中心号!";
                return(false);
            }
            if (currProcess.ModuleProcessOrder < jueyuanScrew.ModuleProcessOrder)
            {
                needRepair = false;
                restr      = "当前工位工艺在绝缘螺丝机的前面,不需要加工!";
                return(true);
            }
            needRepair = true;
            return(true);
        }
Esempio n. 8
0
        private bool ProcessB2(RepairRecordModel repairRecModel, string lineStationID, ref bool needRepair, ref string restr)
        {
            ModuleProcessModel cuurModuleProcess = bllModuleProcess.GetProcessByID(lineStationID);

            if (cuurModuleProcess == null)
            {
                restr     += "当前线体服务器工位编号错误:" + lineStationID + ",线体服务器查无此工位编号!";
                needRepair = false;
                return(false);
            }

            ModuleProcessModel laserClean1Procss = bllModuleProcess.GetProcessByWorkStationID(this.laserClean1);

            if (laserClean1Procss == null)
            {
                restr += "工作中心号:" + laserClean1 + ",线体服务器查无此工作中心号!";

                return(false);
            }
            if (cuurModuleProcess.WorkStationID == this.glueOutCheck1)
            {
                needRepair = false;
                restr     += "当前工作中心号:" + cuurModuleProcess.WorkStationID + "为1号胶溢检测不需要加工!";

                return(true);
            }

            if (cuurModuleProcess.ModuleProcessOrder < laserClean1Procss.ModuleProcessOrder)
            {
                needRepair = false;
                restr     += "当前工作中心号:" + cuurModuleProcess.WorkStationID + "工艺顺序在1#激光清洗工艺前面,不需要加工!";

                return(true);
            }


            ModuleProcessModel aluminumProecss = bllModuleProcess.GetProcessByWorkStationID(this.weldAluminum1);

            if (aluminumProecss == null)
            {
                restr += "铝丝焊1#:" + weldAluminum1 + ",线体服务器不存在此工作中心号!";

                return(false);
            }
            if (cuurModuleProcess.ModuleProcessOrder >= aluminumProecss.ModuleProcessOrder)
            {
                restr += "当前工作中心:" + cuurModuleProcess.WorkStationID + "工艺顺序在铝丝焊1#工艺之后,需要加工!";

                needRepair = true;
                return(true);
            }
            needRepair = true;
            return(true);
        }
Esempio n. 9
0
        private bool ProcessB9(RepairRecordModel repairRecModel, string lineStationID, ref bool needRepair, ref string restr)
        {
            ModuleProcessModel currProcess = bllModuleProcess.GetProcessByID(lineStationID);

            if (currProcess == null)
            {
                restr = "工作中心号错误:" + lineStationID + ",不存在此工作中中心号!";
                return(false);
            }
            ModuleProcessModel laserClean2Process = bllModuleProcess.GetProcessByWorkStationID(this.laserClean2);

            if (laserClean2Process == null)
            {
                restr = "工作中心号错误:" + laserClean2Process.WorkStationID + ",不存在此工作中中心号!";
                return(false);
            }

            if (currProcess.WorkStationID == this.laserClean2)
            {
                restr     += "激光清洗2#需要加工!";
                needRepair = true;
                return(true);
            }
            if (currProcess.ModuleProcessOrder < laserClean2Process.ModuleProcessOrder)
            {
                restr += "当前工作中心:" + currProcess.WorkStationID + ",工艺顺序在" + laserClean2Process.ModuleProcessName + "前面,不需要加工!";

                needRepair = false;
                return(true);
            }
            if (currProcess.WorkStationID == this.glueOutCheck2)
            {
                restr      = "当前工作中心号:" + this.glueOutCheck2 + ",胶外溢2,此工作中心不需要加工!";
                needRepair = false;
                return(true);
            }

            //ModuleProcessModel weld2Process = bllModuleProcess.GetProcessByWorkStationID(this.wedlAluminum2);
            // if (weld2Process == null)
            //{
            //    restr = "工作中心号错误:" + this.wedlAluminum2 + ",不存在此工作中中心号!";
            //    return false;
            //}

            needRepair = NeedRepairByWorkstationOrder(this.wedlAluminum2, lineStationID, ref restr);

            return(true);
        }
Esempio n. 10
0
        private bool ProcessB11(RepairRecordModel repairRecModel, string lineStationID, ref bool needRepair, ref string restr)
        {
            ModuleProcessModel currProcess = bllModuleProcess.GetProcessByID(lineStationID);

            if (currProcess == null)
            {
                restr = "工作中心号错误:" + lineStationID + ",不存在此工作中中心号!";
                return(false);
            }

            if (currProcess.WorkStationID == this.dcir)
            {
                needRepair = true;
                return(true);
            }
            needRepair = false;
            return(true);
        }
Esempio n. 11
0
        private bool ProcessB8(RepairRecordModel repairRecModel, string lineStationID, ref bool needRepair, ref string restr)
        {
            ModuleProcessModel currProcess = bllModuleProcess.GetProcessByID(lineStationID);

            if (currProcess == null)
            {
                restr = "工作中心号错误:" + lineStationID + ",不存在此工作中中心号!";
                return(false);
            }

            ModuleProcessModel weldProcess = bllModuleProcess.GetProcessByWorkStationID(this.weldAluminum1);

            if (weldProcess == null)
            {
                restr = "工作中心号错误:" + weldProcess.WorkStationID + ",不存在此工作中中心号!";
                return(false);
            }
            if (currProcess.ModuleProcessOrder < weldProcess.ModuleProcessOrder)
            {
                restr += "当前工作中心:" + currProcess.WorkStationID + ",工艺顺序在铝丝焊1#前面,不需要加工!";

                needRepair = false;
                return(true);
            }

            if (currProcess.WorkStationID == this.laserClean2 || currProcess.WorkStationID == this.glueOutCheck2 ||
                currProcess.WorkStationID == this.wedlAluminum2)
            {
                needRepair = false;
                restr     += "当前工作中心:" + currProcess.WorkStationID + ",不需要加工!";

                return(true);
            }
            if (currProcess.WorkStationID == this.dcir)
            {
                restr += "当前工作中心:" + currProcess.WorkStationID + "DCIR工位,需要加工!";

                needRepair = true;
                return(true);
            }

            needRepair = true;
            return(true);
        }
Esempio n. 12
0
        private bool NeedRepairByWorkstationOrder(string processWorkStation, string currlineStationID, ref string restr)
        {
            ModuleProcessModel cuurModuleProcess = bllModuleProcess.GetProcessByID(currlineStationID);

            if (cuurModuleProcess == null)
            {
                restr += "当前线体服务器工位编号错误:" + currlineStationID + ",线体服务器查无此工位编号!";
                return(false);
            }
            ModuleProcessModel moduleProcess = bllModuleProcess.GetProcessByWorkStationID(processWorkStation);

            if (moduleProcess == null)
            {
                restr += "开始工作中心编号错误:" + processWorkStation + ",线体服务器查无此工作中心编号!";
                return(false);
            }
            if (cuurModuleProcess.ModuleProcessOrder < moduleProcess.ModuleProcessOrder)
            {
                restr += "当前工作中心号:" + cuurModuleProcess.WorkStationID + "的工艺顺序在开始工作中心" + moduleProcess.WorkStationID + "的前面,此工位无序加工!";
                return(false);
            }
            return(true);
        }
Esempio n. 13
0
        /// <summary>
        /// 是否需要返修,只有AB线绑定工位是通过PLC地址判断其他工位只读取数据库判断
        /// </summary>
        /// <param name="moduleID">模块ID</param>
        /// <returns></returns>
        public virtual bool GetNeedRepairALine(string rfid, string lineStationID, ref bool needRepair, ref string restr)
        {
            restr           = "获取是否需要加工成功!";
            this.NeedRepair = needRepair;

            if (this.repairManualNoWorkRequireDic.Keys.Contains(this.nodeBase.NodeID) == true)
            {
                string manualRepairAddr = this.repairManualNoWorkRequireDic[this.nodeBase.NodeID];
                int    noWorkStatus     = 0;//返修人工干预不加工标识,等于1不加工,直接放行
                if (this.nodeBase.PlcRW.ReadDB(manualRepairAddr, ref noWorkStatus) == false)
                {
                    restr = "读取返修人工干预是否加工标识地址:" + manualRepairAddr + ",失败";
                    return(false);
                }
                this.nodeBase.LogRecorder.AddDebugLog(this.nodeBase.NodeName, "读取返修人工干预是否加工标识地址:" + manualRepairAddr + "成功,值为:" + noWorkStatus + "!");
                if (noWorkStatus == 1)
                {
                    needRepair = false;
                    return(true);
                }
            }

            List <DBAccess.Model.BatteryModuleModel> modList = modBll.GetModelList(string.Format("palletID='{0}'   and palletBinded=1 or checkResult=2", rfid));

            if (modList == null || modList.Count == 0)
            {
                restr      = "RFID:" + rfid + "绑定数据为空!";
                needRepair = false;
                return(true);
            }
            RepairRecordModel repairRecModel = bllRepairRecord.GetModel(modList[0].batModuleID);

            if (repairRecModel == null)//如果没有这个记录则不为返修流程
            {
                needRepair = true;
                this.nodeBase.LogRecorder.AddDebugLog(this.nodeBase.NodeName, "返修记录不存在二维码:" + modList[0].batModuleID + ",不为返修流程所有工位,需要加工!");
                return(true);
            }
            ModuleProcessModel cuurModuleProcess = bllModuleProcess.GetProcessByID(lineStationID);

            if (cuurModuleProcess == null)
            {
                restr     += "当前线体服务器工位编号错误:" + lineStationID + ",线体服务器查无此工位编号!";
                needRepair = false;
                return(false);
            }
            ModuleProcessModel repairProcess = bllModuleProcess.GetProcessByWorkStationID(repairRecModel.RepairStartStationNum);

            if (repairProcess == null)
            {
                restr = "开始工位中心号错误:" + repairRecModel.RepairStartStationNum + ",线体服务查无此工作中心号!";
                return(false);
            }

            if (repairRecModel.RepairRec_Reserve1 == true.ToString())     //特殊产品流程
            {
                if (repairProcess.LineName == cuurModuleProcess.LineName) //在一个线别就用起始加工中心判断
                {
                    needRepair = NeedRepairByWorkstationOrder(repairRecModel.RepairStartStationNum, cuurModuleProcess.ModuleProcessID, ref restr);
                    return(true);
                }
                else//在一个线别,那就用流程代号处理,不用处理了 就用下面的流程
                {
                }
            }

            if (repairRecModel.IsMatchRepairProcess == false && repairRecModel.RepairRec_Reserve1 == false.ToString())
            {
                this.nodeBase.LogRecorder.AddDebugLog(this.nodeBase.NodeName, "流程不匹配,当前工位需要加工!");
                needRepair = NeedRepairByWorkstationOrder(repairRecModel.RepairStartStationNum, lineStationID, ref restr);
                return(true);
            }

            if (repairRecModel.RepairProcessNum == "A4" || repairRecModel.RepairProcessNum == "A5" ||
                repairRecModel.RepairProcessNum == "A6" || repairRecModel.RepairProcessNum == "A7")   //CCD检测单独判断
            {
                needRepair = CCDCheckNeedRepair(repairRecModel, lineStationID, ref restr);
                return(true);
            }

            if (repairProcess.ModuleProcessOrder <= cuurModuleProcess.ModuleProcessOrder)
            {
                needRepair = true;
                this.nodeBase.LogRecorder.AddDebugLog(this.nodeBase.NodeName, "当前工位在开始工位或者在开始工位后续流程中,此工位需要加工!");

                return(true);
            }
            return(true);
        }
Esempio n. 14
0
        private bool CCDCheckNeedRepair(RepairRecordModel repairRecModel, string currlineStationID, ref string restr)
        {
            restr = "流程匹配,需要返修!";
            if (repairRecModel.RepairProcessNum == "A4")
            {
                if (repairRecModel.RepairStartStationNum != this.dianjiao3)
                {
                    restr = "返修MES判定在CCD检测,流程代码为A4,起始工位不为3号点胶机";
                    return(NeedRepairByWorkstationOrder(repairRecModel.RepairStartStationNum, currlineStationID, ref restr));
                }
                return(NeedRepairByWorkstationOrder(this.dianjiao3, currlineStationID, ref restr));
            }
            else if (repairRecModel.RepairProcessNum == "A5")
            {
                if (repairRecModel.RepairStartStationNum != this.dianjiao3)
                {
                    restr = "返修MES判定在CCD检测,流程代码为A5,起始工位不为3号点胶机";
                    return(NeedRepairByWorkstationOrder(repairRecModel.RepairStartStationNum, currlineStationID, ref restr));
                }
                //if (repairRecModel.RepairStartStationNum != this.dianjiao3)
                //{
                //    restr = "返修MES判定在CCD检测,流程代码为A5,起始工位不为3号点胶机";
                //    return NeedRepairByWorkstationOrder(repairRecModel, currlineStationID);
                //}
                ModuleProcessModel cuurModuleProcess = bllModuleProcess.GetProcessByID(currlineStationID);
                if (cuurModuleProcess == null)
                {
                    restr = "开始工位中心号错误:" + currlineStationID + ",线体服务查无此线体服务编号!";
                    return(false);
                }
                if (cuurModuleProcess.WorkStationID == this.ccdCheck || cuurModuleProcess.WorkStationID == this.dianjiao3 || cuurModuleProcess.WorkStationID == this.manualSation2)
                {
                    restr = "当前返修流程代号A5,加工中心号" + cuurModuleProcess.WorkStationID + ",需要加工!";
                    return(true);
                }
                else
                {
                    restr = "当前返修流程代号A5,加工中心号" + cuurModuleProcess.WorkStationID + ",不需要加工!";

                    return(false);
                }
            }
            else if (repairRecModel.RepairProcessNum == "A6")
            {
                if (repairRecModel.RepairStartStationNum != this.dianjiao4)
                {
                    restr = "返修MES判定在CCD检测,流程代码为A6,起始工位不为4号点胶机";
                    return(NeedRepairByWorkstationOrder(repairRecModel.RepairStartStationNum, currlineStationID, ref restr));
                }
                return(NeedRepairByWorkstationOrder(this.dianjiao4, currlineStationID, ref restr));
            }
            else if (repairRecModel.RepairProcessNum == "A7")
            {
                ModuleProcessModel cuurModuleProcess = bllModuleProcess.GetProcessByID(currlineStationID);
                if (cuurModuleProcess == null)
                {
                    restr = "开始工位中心号错误:" + currlineStationID + ",线体服务查无此线体服务编号!";
                    return(false);
                }
                if (cuurModuleProcess.WorkStationID != this.ccdCheck)
                {
                    restr = "返修MES判定在CCD检测,流程代码为A7,起始工位不为CCCheck";
                    //return NeedRepairByWorkstationOrder(repairRecModel.RepairStartStationNum, currlineStationID,ref restr);
                    return(false);
                }
                //if(repairRecModel.RepairStartStationNum!=currlineStationID)
                //{
                //    restr = "流程代码为A7,当前工位不为CCDCheck,不需要加工!";
                //    return false;
                //}
                return(true);
            }
            else
            {
                return(true);
            }
        }