schangxiang@126.com
2024-08-23 e4f8b313c06be3fc8320f11deb244b1d2f96c479
DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_BusinessLogical/DataCaptureHandlerV2/DataCaptureHandler_01.cs
@@ -233,54 +233,99 @@
        /// </summary>
        /// <param name="plcService"></param>
        /// <returns></returns>
        //private string GetSideForOP50(PLCService plcService, WorkPieceLog wplog)
        //{
        //    try
        //    {
        //        if (!(DataCapturePointCode.Contains("OP5001A") || DataCapturePointCode.Contains("OP5001B")))
        //        {
        //            return "";
        //        }
        //        string title = $"读取 {DataCapturePointCode}工序时,获取OP50的哪个面,工件号:{wplog.WorkPieceID}";
        //        int i_value_M88 = _GetSideForOP50(plcService, wplog, "M87.0");
        //        if (i_value_M88 == 1)
        //        {
        //            title += ",返回1";
        //            Log4NetHelper.WriteInfoLog(PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure), title);
        //            return "1";
        //        }
        //        i_value_M88 = _GetSideForOP50(plcService, wplog, "M87.2");
        //        if (i_value_M88 == 1)
        //        {
        //            title += ",返回2";
        //            Log4NetHelper.WriteInfoLog(PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure), title);
        //            return "2";
        //        }
        //        i_value_M88 = _GetSideForOP50(plcService, wplog, "M87.4");
        //        if (i_value_M88 == 1)
        //        {
        //            title += ",返回3";
        //            Log4NetHelper.WriteInfoLog(PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure), title);
        //            return "3";
        //        }
        //        i_value_M88 = _GetSideForOP50(plcService, wplog, "M87.6");
        //        if (i_value_M88 == 1)
        //        {
        //            title += ",返回4";
        //            Log4NetHelper.WriteInfoLog(PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure), title);
        //            return "4";
        //        }
        //        Log4NetHelper.WriteInfoLog(PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure), $"读取 {DataCapturePointCode}工序时,无效数值,获取OP50的哪个面,i_value_M88:{i_value_M88},工件号:{wplog.WorkPieceID}");
        //        return "";
        //    }
        //    catch (Exception ex)
        //    {
        //        Log4NetHelper.WriteErrorLog(PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure), $"读取 {DataCapturePointCode}工序时异常,获取OP50的哪个面,工件号:{wplog.WorkPieceID}", ex);
        //        return "";
        //    }
        //}
        /// <summary>
        /// 获取OP50的某个工位的哪个面
        /// </summary>
        /// <param name="plcService"></param>
        /// <returns></returns>
        private string GetSideForOP50(PLCService plcService, WorkPieceLog wplog)
        {
            try
            {
                if (!(DataCapturePointCode.Contains("OP5001A") || DataCapturePointCode.Contains("OP5001B")))
                object value_M88 = plcService.ReadValuePointV2("M88", PLCManger.GetTypeForString("int"));
                int i_value_M88 = 0;
                var isRight = int.TryParse(value_M88.ToString(), out i_value_M88);
                Log4NetHelper.WriteInfoLog(PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure), $"读取 {DataCapturePointCode}工序监控测量标记数据,获取OP50的哪个面,i_value_M88:{i_value_M88},工件号:{wplog.WorkPieceID}");
                if (isRight)
                {
                    return "";
                    if (i_value_M88 == 64)
                    {
                        return "1";
                    }
                    else if (i_value_M88 == 16384)
                    {//原定为16384为正在旋转,监控下来,发现 16384应该是工位1的问题 【Editby shaocx,2024-06-12】
                        return "1";
                    }
                    else if (i_value_M88 == 256)
                    {
                        return "2";
                    }
                    else if (i_value_M88 == 1024)
                    {
                        return "3";
                    }
                    else if (i_value_M88 == 4096)
                    {
                        return "4";
                    }
                }
                string title = $"读取 {DataCapturePointCode}工序时,获取OP50的哪个面,工件号:{wplog.WorkPieceID}";
                int i_value_M88 = _GetSideForOP50(plcService, wplog, "M87.0");
                if (i_value_M88 == 1)
                {
                    title += ",返回1";
                    Log4NetHelper.WriteInfoLog(PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure), title);
                    return "1";
                }
                i_value_M88 = _GetSideForOP50(plcService, wplog, "M87.2");
                if (i_value_M88 == 1)
                {
                    title += ",返回2";
                    Log4NetHelper.WriteInfoLog(PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure), title);
                    return "2";
                }
                i_value_M88 = _GetSideForOP50(plcService, wplog, "M87.4");
                if (i_value_M88 == 1)
                {
                    title += ",返回3";
                    Log4NetHelper.WriteInfoLog(PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure), title);
                    return "3";
                }
                i_value_M88 = _GetSideForOP50(plcService, wplog, "M87.6");
                if (i_value_M88 == 1)
                {
                    title += ",返回4";
                    Log4NetHelper.WriteInfoLog(PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure), title);
                    return "4";
                }
                Log4NetHelper.WriteInfoLog(PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure), $"读取 {DataCapturePointCode}工序时,无效数值,获取OP50的哪个面,i_value_M88:{i_value_M88},工件号:{wplog.WorkPieceID}");
                Log4NetHelper.WriteErrorLog(PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure), $"读取 {DataCapturePointCode}工序监控测量标记数据时,无效数值,获取OP50的哪个面,,i_value_M88:{i_value_M88},工件号:{wplog.WorkPieceID}", null);
                return "";
            }
            catch (Exception ex)
            {
                Log4NetHelper.WriteErrorLog(PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure), $"读取 {DataCapturePointCode}工序时异常,获取OP50的哪个面,工件号:{wplog.WorkPieceID}", ex);
                Log4NetHelper.WriteErrorLog(PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure), $"读取 {DataCapturePointCode}工序监控测量标记数据时异常,获取OP50的哪个面,工件号:{wplog.WorkPieceID}", ex);
                return "";
            }
        }