| | |
| | | /// <summary> |
| | | /// OP10工序测试完成标记值 |
| | | /// </summary> |
| | | public static string value_OP1002 = string.Empty; |
| | | public static string value_OP1002 = "FALSE";//注意:默认是FALSE 【Editby shaocx,2024-09-05】 |
| | | /// <summary> |
| | | /// OP10工序推出标记值 |
| | | /// </summary> |
| | | public static string value_OP1003 = string.Empty; |
| | | public static string value_OP1003 = "FALSE";//注意:默认是FALSE 【Editby shaocx,2024-09-05】 |
| | | /// <summary> |
| | | /// OP10工序SPC推出标记值 |
| | | /// </summary> |
| | |
| | | //plcService.Close(); |
| | | //plcService.OpenService(); |
| | | } |
| | | string value_01 = ""; |
| | | string value_01 = "FALSE";//注意:默认是FALSE 【Editby shaocx,2024-09-05】 |
| | | while (true) |
| | | { |
| | | threadStatusMonitor.ErrorMsg = ""; |
| | |
| | | |
| | | object value = plcService.ReadValuePoint(_dataCaptureConfig.DbNumber, _dataCaptureConfig.Offset, PLCManger.GetTypeForString(_dataCaptureConfig.DataCaptureColumnType)); |
| | | WorkPieceLog wplog = null; |
| | | if (value.ToString().ToUpper().Equals("TRUE")) |
| | | |
| | | var value_bool = value.ToString().ToUpper().Equals("TRUE"); |
| | | if (value_bool) |
| | | { |
| | | wplog = new WorkPieceLog(); |
| | | wplog.Id = Yitter.IdGenerator.YitIdHelper.NextId(); |
| | |
| | | //监控上线 |
| | | MonitorHelper.MonitorTestForLine(_dataCaptureConfig, value, colConfig, wplog.WorkPieceID); |
| | | } |
| | | if (wplog != null) |
| | | { |
| | | var isRight = SystemBussinessHelper.ValidateIsRightWorkPieceID(wplog.WorkPieceID); |
| | | if (isRight) |
| | | { |
| | | #region 处理业务 |
| | | |
| | | if (value_01.ToUpper().Equals("FALSE") && value.ToString().ToUpper().Equals("TRUE")) |
| | | {//当上一标记位0,当前获取标记为1时, |
| | | //触发操作, 并给静态变量赋值为1 |
| | | //业务代码 |
| | | threadStatusMonitor.Threadlastmodifytime = DateTime.Now; |
| | | if (value_01.ToUpper().Equals("FALSE") && value.ToString().ToUpper().Equals("TRUE")) |
| | | {//当上一标记位0,当前获取标记为1时, |
| | | //触发操作, 并给静态变量赋值为1 |
| | | //业务代码 |
| | | threadStatusMonitor.Threadlastmodifytime = DateTime.Now; |
| | | |
| | | //特殊处理OP50 【Editby shaocx,2024-08-16】 |
| | | string sideValue = GetSideForOP50(plcService, wplog); |
| | | wplog.MonitoringPoint += sideValue; |
| | | //wplog.CreatedUserName = wplog.MonitoringPoint; |
| | | SystemBussinessHelper.SetWorkPieceLogMiddleForCreatedUserName(ref wplog, wplog.MonitoringPoint, DataCapturePointCname); |
| | | //特殊处理OP50 【Editby shaocx,2024-08-16】 |
| | | string sideValue = GetSideForOP50(plcService, wplog); |
| | | wplog.MonitoringPoint += sideValue; |
| | | //wplog.CreatedUserName = wplog.MonitoringPoint; |
| | | SystemBussinessHelper.SetWorkPieceLogMiddleForCreatedUserName(ref wplog, wplog.MonitoringPoint, DataCapturePointCname); |
| | | |
| | | //读取二维码后更新数据库 |
| | | WorkPieceInfoManager.ReadQRcode(wplog, PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure), plcService, _dataCaptureConfig.IsFeedback); |
| | | //读取二维码后更新数据库 |
| | | WorkPieceInfoManager.ReadQRcode(wplog, PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure), plcService, _dataCaptureConfig.IsFeedback); |
| | | |
| | | threadStatusMonitor.Threadstatue = 1; |
| | | threadStatusMonitor.Threadstatue = 1; |
| | | |
| | | } |
| | | value_01 = value.ToString(); |
| | | |
| | | #endregion |
| | | } |
| | | } |
| | | value_01 = value.ToString(); |
| | | |
| | | } |
| | | threadStatusMonitor.Remarks = $"abcdefg:{RandomHelper.GenerateRandomCode(4)}"; |
| | | if (!_dataCaptureConfig.DataCaptureFrequency.HasValue || _dataCaptureConfig.DataCaptureFrequency < 10) |
| | | { |
| | | threadStatusMonitor.ThreadFrequency = 1000; |
| | | Thread.Sleep(1000); |
| | | threadStatusMonitor.ThreadFrequency = 700; |
| | | Thread.Sleep(700); |
| | | } |
| | | else |
| | | { |
| | |
| | | Log4NetHelper.WriteInfoLog(PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure), $" {DataCapturePointCode}工序测标记读取{DateTime.Now}*****01****{stopwatch.ElapsedMilliseconds}"); |
| | | |
| | | WorkPieceLogMiddle wplog = null; |
| | | if (value.ToString().ToUpper().Equals("TRUE")) |
| | | var value_bool = value.ToString().ToUpper().Equals("TRUE"); |
| | | if (value_bool) |
| | | { |
| | | threadStatusMonitor.Threadlastmodifytime = DateTime.Now; |
| | | wplog = new WorkPieceLogMiddle(); |
| | |
| | | //监控上线 |
| | | MonitorHelper.MonitorTestForLine(_dataCaptureConfig, value, colConfig, wplog.WorkPieceID); |
| | | } |
| | | if (wplog != null) |
| | | { |
| | | var isRight = SystemBussinessHelper.ValidateIsRightWorkPieceID(wplog.WorkPieceID); |
| | | if (isRight) |
| | | { |
| | | #region 业务处理 |
| | | |
| | | if (SystemValue.value_OP1002.ToUpper().Equals("FALSE") && value.ToString().ToUpper().Equals("TRUE")) |
| | | {//当上一标记位0,当前获取标记为1时, |
| | | //触发操作, 并给静态变量赋值为1 |
| | | //业务代码 |
| | | Log4NetHelper.WriteInfoLog(PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure), $" {DataCapturePointCode}工序测标记读取{DateTime.Now}***1****"); |
| | | if (SystemValue.value_OP1002.ToUpper().Equals("FALSE") && value.ToString().ToUpper().Equals("TRUE")) |
| | | {//当上一标记位0,当前获取标记为1时, |
| | | //触发操作, 并给静态变量赋值为1 |
| | | //业务代码 |
| | | Log4NetHelper.WriteInfoLog(PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure), $" {DataCapturePointCode}工序测标记读取{DateTime.Now}***1****"); |
| | | |
| | | |
| | | //#region 工控机读取质量信息 |
| | | //#region 工控机读取质量信息 |
| | | |
| | | |
| | | ////扫描共享目录并将新的文件扫描返回 |
| | | //var newFiles = FileHelper.DetectNewFilesCSV("", 10, DateTimeHelper.GetDateTime(), DateTimeHelper.GetDateTime()); |
| | | //foreach (System.IO.FileInfo file in newFiles) |
| | | //{ |
| | | // var datatable = CSVHelper.ReadCSV(file.FullName); |
| | | //} |
| | | ////扫描共享目录并将新的文件扫描返回 |
| | | //var newFiles = FileHelper.DetectNewFilesCSV("", 10, DateTimeHelper.GetDateTime(), DateTimeHelper.GetDateTime()); |
| | | //foreach (System.IO.FileInfo file in newFiles) |
| | | //{ |
| | | // var datatable = CSVHelper.ReadCSV(file.FullName); |
| | | //} |
| | | |
| | | //#endregion |
| | | Log4NetHelper.WriteInfoLog(PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure), $" {DataCapturePointCode}工序测标记读取{DateTime.Now}***3****"); |
| | | //#endregion |
| | | Log4NetHelper.WriteInfoLog(PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure), $" {DataCapturePointCode}工序测标记读取{DateTime.Now}***3****"); |
| | | |
| | | |
| | | //更新WorkPieceInfo表以及插入WorkPieceLog表和WorkPieceInfoLog表 |
| | | WorkPieceInfoManager.QualityInfoComplete(wplog, PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure)); |
| | | threadStatusMonitor.Threadstatue = 1; |
| | | //更新WorkPieceInfo表以及插入WorkPieceLog表和WorkPieceInfoLog表 |
| | | WorkPieceInfoManager.QualityInfoComplete(wplog, PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure)); |
| | | threadStatusMonitor.Threadstatue = 1; |
| | | |
| | | |
| | | |
| | | } |
| | | SystemValue.value_OP1002 = value.ToString(); |
| | | |
| | | #endregion |
| | | } |
| | | } |
| | | SystemValue.value_OP1002 = value.ToString(); |
| | | |
| | | |
| | | } |
| | | SystemValue.lbl_Alert_OP1002 = $"abcdefg:{RandomHelper.GenerateRandomCode(4)}"; |
| | | if (!_dataCaptureConfig.DataCaptureFrequency.HasValue || _dataCaptureConfig.DataCaptureFrequency < 10) |
| | | { |
| | | Thread.Sleep(5000); |
| | | Thread.Sleep(700); |
| | | } |
| | | else |
| | | { |
| | |
| | | var value = plcService.ReadValuePoint(_dataCaptureConfig.DbNumber, _dataCaptureConfig.Offset, PLCManger.GetTypeForString(_dataCaptureConfig.DataCaptureColumnType)); |
| | | stopwatch.Stop(); |
| | | Log4NetHelper.WriteInfoLog(PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure), $" {DataCapturePointCode}工序测标记读取{DateTime.Now}*****01****{stopwatch.ElapsedMilliseconds}*****{value.ToString().ToUpper()}**"); |
| | | |
| | | WorkPieceLogMiddle wplog = null; |
| | | if (value.ToString().ToUpper().Equals("TRUE")) |
| | | var value_bool = value.ToString().ToUpper().Equals("TRUE"); |
| | | if (value_bool) |
| | | { |
| | | threadStatusMonitor.Threadlastmodifytime = DateTime.Now; |
| | | wplog = new WorkPieceLogMiddle(); |
| | |
| | | //监控上线 |
| | | MonitorHelper.MonitorTestForLine(_dataCaptureConfig, value, colConfig, wplog.WorkPieceID); |
| | | } |
| | | if (SystemValue.value_OP1003.ToUpper().Equals("FALSE") && value.ToString().ToUpper().Equals("TRUE")) |
| | | {//当上一标记位0,当前获取标记为1时, |
| | | //触发操作, 并给静态变量赋值为1 |
| | | //业务代码 |
| | | if (wplog != null) |
| | | { |
| | | var isRight = SystemBussinessHelper.ValidateIsRightWorkPieceID(wplog.WorkPieceID); |
| | | if (isRight) |
| | | { |
| | | #region 业务处理 |
| | | |
| | | if (wplog.WorkPieceID.Length != 22) |
| | | {//获取到的工件号异常 |
| | | Log4NetHelper.WriteErrorLog(PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure), $" {DataCapturePointCode}工序监控读码标记 读取工件码数据时异常:"); |
| | | continue; |
| | | if (SystemValue.value_OP1003.ToUpper().Equals("FALSE") && value.ToString().ToUpper().Equals("TRUE")) |
| | | {//当上一标记位0,当前获取标记为1时, |
| | | //触发操作, 并给静态变量赋值为1 |
| | | //业务代码 |
| | | |
| | | if (wplog.WorkPieceID.Length != 22) |
| | | {//获取到的工件号异常 |
| | | Log4NetHelper.WriteErrorLog(PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure), $" {DataCapturePointCode}工序监控读码标记 读取工件码数据时异常:"); |
| | | continue; |
| | | } |
| | | |
| | | //#region 工控机读取质量信息 |
| | | |
| | | |
| | | ////扫描共享目录并将新的文件扫描返回 |
| | | //var newFiles = FileHelper.DetectNewFilesCSV("", 10, DateTimeHelper.GetDateTime(), DateTimeHelper.GetDateTime()); |
| | | //foreach (System.IO.FileInfo file in newFiles) |
| | | //{ |
| | | // var datatable = CSVHelper.ReadCSV(file.FullName); |
| | | //} |
| | | |
| | | //#endregion |
| | | |
| | | |
| | | //更新WorkPieceInfo表以及插入WorkPieceLog表和WorkPieceInfoLog表 |
| | | WorkPieceInfoManager.QualityInfoComplete(wplog, PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure)); |
| | | threadStatusMonitor.Threadstatue = 1; |
| | | } |
| | | SystemValue.value_OP1003 = value.ToString(); |
| | | |
| | | #endregion |
| | | } |
| | | |
| | | //#region 工控机读取质量信息 |
| | | |
| | | |
| | | ////扫描共享目录并将新的文件扫描返回 |
| | | //var newFiles = FileHelper.DetectNewFilesCSV("", 10, DateTimeHelper.GetDateTime(), DateTimeHelper.GetDateTime()); |
| | | //foreach (System.IO.FileInfo file in newFiles) |
| | | //{ |
| | | // var datatable = CSVHelper.ReadCSV(file.FullName); |
| | | //} |
| | | |
| | | //#endregion |
| | | |
| | | |
| | | //更新WorkPieceInfo表以及插入WorkPieceLog表和WorkPieceInfoLog表 |
| | | WorkPieceInfoManager.QualityInfoComplete(wplog, PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure)); |
| | | threadStatusMonitor.Threadstatue = 1; |
| | | } |
| | | SystemValue.value_OP1003 = value.ToString(); |
| | | |
| | | |
| | | } |
| | | SystemValue.lbl_Alert_OP1003 = $"abcdefg:{RandomHelper.GenerateRandomCode(4)}"; |
| | | if (!_dataCaptureConfig.DataCaptureFrequency.HasValue || _dataCaptureConfig.DataCaptureFrequency < 10) |
| | | { |
| | | Thread.Sleep(5000); |
| | | Thread.Sleep(700); |
| | | } |
| | | else |
| | | { |
| | |
| | | |
| | | //不正常的码写入数据库 |
| | | var isRight = SystemBussinessHelper.ValidateIsRightWorkPieceID(workPieceID); |
| | | PieceLogTypeEnum pieceLogTypeEnum = PieceLogTypeEnum.正常; |
| | | if (isRight == false) |
| | | { |
| | | WorkPieceLog workPieceLog = new WorkPieceLog() |
| | | { |
| | | Id = Yitter.IdGenerator.YitIdHelper.NextId(), |
| | | WorkPieceID = workPieceID, |
| | | WorkingProcedure = _dataCaptureConfig.WorkingProcedure, |
| | | CreatedTime = DateTime.Now, |
| | | CreatedUserName = _dataCaptureConfig.DataCapturePointCode, |
| | | MyRemarks = "读码值异常", |
| | | Remarks = "读码值异常", |
| | | PieceLogType = (int)PieceLogTypeEnum.读码值异常, |
| | | PieceLogTypeName = PieceLogTypeEnum.读码值异常.ToString() |
| | | }; |
| | | using (DbModel db = new DbModel()) |
| | | { |
| | | db.WorkPieceLog.Add(workPieceLog); |
| | | db.SaveChanges(); |
| | | } |
| | | pieceLogTypeEnum = PieceLogTypeEnum.读码值异常; |
| | | } |
| | | WorkPieceLog workPieceLog = new WorkPieceLog() |
| | | { |
| | | Id = Yitter.IdGenerator.YitIdHelper.NextId(), |
| | | WorkPieceID = workPieceID, |
| | | WorkingProcedure = _dataCaptureConfig.WorkingProcedure, |
| | | CreatedTime = DateTime.Now, |
| | | CreatedUserName = _dataCaptureConfig.DataCapturePointCode, |
| | | MyRemarks = "", |
| | | Remarks = pieceLogTypeEnum.ToString(), |
| | | PieceLogType = (int)pieceLogTypeEnum, |
| | | PieceLogTypeName = pieceLogTypeEnum.ToString() |
| | | }; |
| | | using (DbModel db = new DbModel()) |
| | | { |
| | | db.WorkPieceLog.Add(workPieceLog); |
| | | db.SaveChanges(); |
| | | } |
| | | } |
| | | catch (Exception ex) |
| | |
| | | var n_workPieceID = workPieceID.Trim(); |
| | | if (n_workPieceID.Length == 22) |
| | | { |
| | | if (n_workPieceID.IndexOf("ERROR") > -1) |
| | | if (n_workPieceID.ToUpper().IndexOf("ERROR") > -1) |
| | | { |
| | | return false; |
| | | } |