1
schangxiang@126.com
2024-08-18 c66c25cb7b1eec1d3b3de4496525dffe9a3c4040
DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_BusinessLogical/DataCaptureHandlerV2/DataCaptureHandler_02.cs
@@ -55,7 +55,7 @@
        public override void DataCaptureStart()
        {
            if (SystemValue.isStartedModel)
            if (SystemValue.isStartedImitateModel)
            {
                var plcService = PLCManger.GetSinglePLCService(_dataCaptureConfig);
                WorkPieceLogMiddle wplog = new WorkPieceLogMiddle();
@@ -306,11 +306,11 @@
                                                    logMiddle.QualityOP30To1 = FileHelper.ReadPdfFileForSpire(files[0].FullName, "Y-Maximum");//涨断力矩
                                                    break;
                                                case "OP3002CH4":
                                                    logMiddle = GetCH4Info(files[0].FullName, logMiddle);
                                                    logMiddle = GetCH4InfoForOP30(files[0].FullName, logMiddle);
                                                    logMiddle.OP30QualityFilePathCH4 = files[0].FullName;
                                                    break;
                                                case "OP3002CH5":
                                                    logMiddle = GetCH5Info(files[0].FullName, logMiddle);
                                                    logMiddle = GetCH5InfoForOP30(files[0].FullName, logMiddle);
                                                    logMiddle.OP30QualityFilePathCH5 = files[0].FullName;
                                                    break;
                                                case "OP3002CH6":
@@ -330,10 +330,12 @@
                                        if (logMiddle.OP35OK)
                                        {
                                            logMiddle.QualityStateStr = "OK";
                                            logMiddle.QualityState = (int)QualityState.OK;
                                        }
                                        else
                                        {
                                            logMiddle.QualityStateStr = "NG";
                                            logMiddle.QualityState = (int)QualityState.NG;
                                        }
                                    }
                                    else if (WorkingProcedure.Equals("OP60"))
@@ -453,7 +455,7 @@
                                                        }
                                                        op60QualityTime = op60Infos[0].datetimeHandle;
                                                        break;
                                                    }
@@ -609,14 +611,8 @@
                                }
                                //根据质量数据判断是否合格/不合格 【Editby shaocx,2024-06-25】
                                QualityNoOkEnum? qualityNoOkEnum = null;
                                QualityState qualityState = CalcQualityStateForOP(logMiddle, ref qualityNoOkEnum);
                                logMiddle.QualityState = (int)qualityState;
                                if (qualityNoOkEnum != null)
                                {
                                    logMiddle.QualityNoOk = (int)qualityNoOkEnum;
                                    logMiddle.QualityNoOkReason = qualityNoOkEnum.ToString();
                                }
                                WorkPieceInfoManager.SetLogMiddleForQuality(ref logMiddle);
                                //更新WorkPieceInfo表以及插入WorkPieceLog表和WorkPieceInfoLog表
                                WorkPieceInfoManager.QualityInfoComplete(logMiddle, PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure));
                                threadStatusMonitor.Threadstatue = 1;
@@ -716,7 +712,7 @@
            }
        }
        public WorkPieceLogMiddle GetCH4Info(string FullName, WorkPieceLogMiddle wplog)
        public WorkPieceLogMiddle GetCH4InfoForOP30(string FullName, WorkPieceLogMiddle wplog)
        {
            try
            {
@@ -780,7 +776,7 @@
        }
        public WorkPieceLogMiddle GetCH5Info(string FullName, WorkPieceLogMiddle wplog)
        public WorkPieceLogMiddle GetCH5InfoForOP30(string FullName, WorkPieceLogMiddle wplog)
        {
            try
            {
@@ -874,87 +870,6 @@
        }
        /// <summary>
        /// 计算OP 质量数据是否合格
        /// </summary>
        public QualityState CalcQualityStateForOP(WorkPieceLogMiddle logMiddle, ref QualityNoOkEnum? qualityNoOkEnum)
        {
            QualityState qualityState = QualityState.Suspected;
            if (logMiddle.WorkingProcedure == "OP60")
            {
                decimal _QualityOP60To1 = SystemHelper.GetDecimal(logMiddle.QualityOP60To1);
                decimal _QualityOP60To2 = SystemHelper.GetDecimal(logMiddle.QualityOP60To2);
                var isPass_QualityOP60To1 = false;
                var isPass_QualityOP60To2 = false;
                if (_QualityOP60To1 >= (decimal)53.018 && _QualityOP60To1 <= (decimal)53.030)
                {
                    isPass_QualityOP60To1 = true;
                }
                else
                {
                    qualityNoOkEnum = QualityNoOkEnum.OP60大头孔直径超差;
                }
                if (_QualityOP60To2 >= (decimal)22.005 && _QualityOP60To2 <= (decimal)22.011)
                {
                    isPass_QualityOP60To2 = true;
                }
                else
                {
                    qualityNoOkEnum = QualityNoOkEnum.OP60小头孔直径超差;
                }
                if (isPass_QualityOP60To1 && isPass_QualityOP60To2)
                {
                    qualityState = QualityState.OK;
                }
                else
                {
                    qualityState = QualityState.NG;
                }
                if (_QualityOP60To1 == 0 || _QualityOP60To2 == 0)
                {
                    qualityState = QualityState.Suspected;
                    return qualityState;
                }
                return qualityState;
            }
            else if (logMiddle.WorkingProcedure == "OP10")
            {
                if (logMiddle.QualityState != (int)QualityState.OK)
                {
                    qualityNoOkEnum = QualityNoOkEnum.OP10厚度超差;
                }
                return qualityState;
            }
            else if (logMiddle.WorkingProcedure == "OP20")
            {
                if (logMiddle.QualityState != (int)QualityState.OK)
                {
                    qualityNoOkEnum = QualityNoOkEnum.OP20小头孔直径超差;
                }
                return qualityState;
            }
            else if (logMiddle.WorkingProcedure == "OP35")
            {
                if (logMiddle.QualityState != (int)QualityState.OK)
                {
                    qualityNoOkEnum = QualityNoOkEnum.OP35滚压力不合格;
                }
                return qualityState;
            }
            else if (logMiddle.WorkingProcedure == "OP40")
            {
                if (logMiddle.QualityState != (int)QualityState.OK)
                {
                    qualityNoOkEnum = QualityNoOkEnum.OP40厚度超差;
                }
                return qualityState;
            }
            return qualityState;
        }
    }
}