| | |
| | | } |
| | | if (files.Count() > 0) |
| | | { |
| | | Log4NetHelper.WriteInfoLog(PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure), $"{DataCapturePointCode}下线完成读取到文件{files.Count()}个,是指定的工件{wplog.WorkPieceID},上次获取尼伯丁文件里的时间值:{(op60QualityTime == null ? "" : op60QualityTime.ToString())}"); |
| | | files = files.OrderByDescending(o => o.LastWriteTime).ToList(); |
| | | List<OP60Info> op60Infos = new List<OP60Info>(); |
| | | bool isFindFile = false; |
| | | foreach (var file in files) |
| | | {//取倒序匹配的文件名为工件号的文件 |
| | | if (file.Name.Contains("SP-" + DataCapturePointCode.Substring(DataCapturePointCode.Length - 1, 1))) |
| | | { |
| | | Log4NetHelper.WriteErrorLog(PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure), $"{DataCapturePointCode}下线完成读取到文件{file.Name},是指定的工件{wplog.WorkPieceID},上次获取尼伯丁文件里的时间值:{(op60QualityTime == null ? "" : op60QualityTime.ToString())}"); |
| | | |
| | | Log4NetHelper.WriteInfoLog(PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure), $"{DataCapturePointCode}下线完成读取到文件{file.Name},是指定的工件{wplog.WorkPieceID},上次获取尼伯丁文件里的时间值:{(op60QualityTime == null ? "" : op60QualityTime.ToString())}"); |
| | | isFindFile = true; |
| | | var datatable = CSVHelper.ReadCSVList(file.FullName); |
| | | if (datatable.Count < 106) |
| | | {//质量数据从106行开始 |
| | | Log4NetHelper.WriteErrorLog(PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure), $"{DataCapturePointCode}下线完成读取文件{file.Name},指定工件号{wplog.WorkPieceID},发现文件行数{datatable.Count}小于106"); |
| | | continue; |
| | | } |
| | | datatable.Reverse(); |
| | |
| | | wplog.QualityOP60To1 = op60Infos[0].value; |
| | | wplog.QualityOP60To2 = op60Infos[1].value; |
| | | wplog.OP60QualityFilePath = file.FullName; |
| | | Log4NetHelper.WriteInfoLog(PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure), $"{DataCapturePointCode}下线完成读取到文件{file.Name},是指定的工件{wplog.WorkPieceID},成功赋值了OP60QualityFilePath等字段"); |
| | | } |
| | | else |
| | | { |
| | | var msg = $",因为判断时间不符合,op60Infos[0].datetimeHandle:{(op60Infos[0].datetimeHandle == null ? "" : op60Infos[0].datetimeHandle.ToString())}小于等于op60QualityTime:{(op60QualityTime.Value == null ? "" : op60QualityTime.Value.ToString())}"; |
| | | Log4NetHelper.WriteErrorLog(PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure), $"{DataCapturePointCode}下线完成读取到文件{file.Name},是指定的工件{wplog.WorkPieceID},没能赋值OP60QualityFilePath等字段,{msg}"); |
| | | break; |
| | | } |
| | | } |
| | |
| | | wplog.QualityOP60To1 = op60Infos[0].value; |
| | | wplog.QualityOP60To2 = op60Infos[1].value; |
| | | wplog.OP60QualityFilePath = file.FullName; |
| | | Log4NetHelper.WriteInfoLog(PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure), $"{DataCapturePointCode}下线完成读取到文件{file.Name},是指定的工件{wplog.WorkPieceID},成功赋值了OP60QualityFilePath等字段"); |
| | | } |
| | | op60QualityTime = op60Infos[0].datetimeHandle; |
| | | break; |
| | |
| | | } |
| | | else |
| | | { |
| | | Log4NetHelper.WriteErrorLog(PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure), $"{DataCapturePointCode}下线完成读取文件{file.FullName}不是指定工件{wplog.WorkPieceID}"); |
| | | Log4NetHelper.WriteErrorLog(PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure), $"{DataCapturePointCode}下线完成读取文件{file.Name}不是指定工件{wplog.WorkPieceID}"); |
| | | } |
| | | } |
| | | if (isFindFile == false) |
| | | { |
| | | Log4NetHelper.WriteErrorLog(PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure), $"{DataCapturePointCode}下线完成没有找到文件,指定工件{wplog.WorkPieceID}"); |
| | | } |
| | | } |
| | | } |
| | |
| | | //记录公用变量,保存点位M88的信息 【Editby shaocx,2024-06-07】 |
| | | if (DataCapturePointCode.Contains("OP2002C")) |
| | | {//从OP2002C读取,因为顺序是 CBA,而不是ABC |
| | | string sideValue = GetSideForOP20(plcService); |
| | | string sideValue = GetSideForOP20(plcService, wplog); |
| | | SystemValue.OP20_Side_Value = sideValue; |
| | | } |
| | | wplog.MonitoringPoint += SystemValue.OP20_Side_Value; |
| | |
| | | /// </summary> |
| | | /// <param name="plcService"></param> |
| | | /// <returns></returns> |
| | | private string GetSideForOP20(PLCService plcService) |
| | | private string GetSideForOP20(PLCService plcService, WorkPieceLogMiddle wplog) |
| | | { |
| | | try |
| | | { |
| | | 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}工序监控测量标记数据时异常,获取OP20的哪个面,i_value_M88:{i_value_M88}"); |
| | | Log4NetHelper.WriteInfoLog(PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure), $"读取 {DataCapturePointCode}工序监控测量标记数据,获取OP20的哪个面,i_value_M88:{i_value_M88},工件号:{wplog.WorkPieceID}"); |
| | | if (isRight) |
| | | { |
| | | 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 "4"; |
| | | } |
| | | } |
| | | Log4NetHelper.WriteErrorLog(PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure), $"读取 {DataCapturePointCode}工序监控测量标记数据时,无效数值,获取OP20的哪个面,,i_value_M88:{i_value_M88},工件号:{wplog.WorkPieceID}", null); |
| | | return ""; |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | Log4NetHelper.WriteErrorLog(PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure), $"读取 {DataCapturePointCode}工序监控测量标记数据时异常,获取OP20的哪个面,:", ex); |
| | | Log4NetHelper.WriteErrorLog(PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure), $"读取 {DataCapturePointCode}工序监控测量标记数据时异常,获取OP20的哪个面,工件号:{wplog.WorkPieceID}", ex); |
| | | return ""; |
| | | } |
| | | } |