| | |
| | | |
| | | public static void PLCServiceReconnect(PLCService plcService) |
| | | { |
| | | if(plcService==null) |
| | | if (plcService == null) |
| | | { |
| | | return; |
| | | } |
| | |
| | | public static char PLCDBADDRESS_SEPARATE = '|'; |
| | | |
| | | |
| | | public static List<ThreadStatusMonitor> MainList=new List<ThreadStatusMonitor>(); |
| | | public static List<ThreadStatusMonitor> MainList = new List<ThreadStatusMonitor>(); |
| | | |
| | | private static object lockMainList = new object(); |
| | | public static async void UpdateMainList(ThreadStatusMonitor threadinfo) |
| | | { |
| | | await Task.Run(() => { |
| | | await Task.Run(() => |
| | | { |
| | | lock (lockMainList) |
| | | { |
| | | var info = MainList.Where(o => o.Threadcode == threadinfo.Threadcode).FirstOrDefault(); |
| | | if(info == null) |
| | | if (info == null) |
| | | { |
| | | MainList.Add(threadinfo); |
| | | } |
| | |
| | | DateTime time = DateTime.Now; |
| | | info.Remarks = threadinfo.Remarks; |
| | | info.Threadendtime = time;//每次都更新 |
| | | info.Threadlastmodifytime = threadinfo.Threadlastmodifytime>DateTime.MinValue? threadinfo.Threadlastmodifytime: info.Threadlastmodifytime;//如果有传参则更新 |
| | | info.Threadlastmodifytime = threadinfo.Threadlastmodifytime > DateTime.MinValue ? threadinfo.Threadlastmodifytime : info.Threadlastmodifytime;//如果有传参则更新 |
| | | info.ThreadId = threadinfo.ThreadId; |
| | | info.ThreadFrequency = threadinfo.ThreadFrequency; |
| | | info.UpdatedTime = time; |
| | |
| | | /// <summary> |
| | | /// 是否允许执行监控OP05工序打码完成标记线程 |
| | | /// </summary> |
| | | public static bool isAllowRuning_OP0501 |
| | | { |
| | | get { return _isAllowRuning_OP0501; } |
| | | set { |
| | | public static bool isAllowRuning_OP0501 |
| | | { |
| | | get { return _isAllowRuning_OP0501; } |
| | | set |
| | | { |
| | | lock (lockOP0501Runing) |
| | | { |
| | | _isAllowRuning_OP0501 = value; |
| | |
| | | /// <summary> |
| | | /// OP10工序测试完成标记值 |
| | | /// </summary> |
| | | public static string value_OP1002 = "FALSE";//注意:默认是FALSE 【Editby shaocx,2024-09-05】 |
| | | public static string value_OP1002 = string.Empty;//注意:默认是FALSE 【Editby shaocx,2024-09-05】 |
| | | /// <summary> |
| | | /// OP10工序推出标记值 |
| | | /// </summary> |
| | | public static string value_OP1003 = "FALSE";//注意:默认是FALSE 【Editby shaocx,2024-09-05】 |
| | | public static string value_OP1003 = string.Empty;//注意:默认是FALSE 【Editby shaocx,2024-09-05】 |
| | | /// <summary> |
| | | /// OP10工序SPC推出标记值 |
| | | /// </summary> |
| | |
| | | } |
| | | } |
| | | } |
| | | |
| | | |
| | | private static object lockOP3501Alert = new object(); |
| | | private static object lockOP3502Alert = new object(); |
| | | private static object lockOP3503Alert = new object(); |
| | |
| | | cur_db_info = db.WorkPieceInfo.Where(o => o.WorkPieceID == loginfo.WorkPieceID).FirstOrDefault(); |
| | | if (cur_db_info == null || cur_db_info.WorkPieceID.Length < 1) |
| | | {//没有工件信息,不做更新 |
| | | Log4NetHelper.WriteErrorLog(type, $"工件{loginfo.WorkPieceID} 工件推出工序{loginfo.WorkingProcedure} 没有获取到工件信息不做更新"); |
| | | Log4NetHelper.WriteErrorLog(type, $"工件{loginfo.WorkPieceID} 工件推出NOOK工序{loginfo.WorkingProcedure} 没有获取到工件信息不做更新"); |
| | | return; |
| | | } |
| | | else |
| | |
| | | //监控上线 |
| | | MonitorHelper.MonitorTestForLine(_dataCaptureConfig, value, colConfig, wplog.WorkPieceID); |
| | | } |
| | | if (wplog != null) |
| | | { |
| | | var isRight = SystemBussinessHelper.ValidateIsRightWorkPieceID(wplog.WorkPieceID); |
| | | if (isRight) |
| | | { |
| | | #region 业务处理 |
| | | //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(); |
| | | |
| | | #endregion |
| | | // } |
| | | //} |
| | | |
| | | } |
| | | SystemValue.lbl_Alert_OP1002 = $"abcdefg:{RandomHelper.GenerateRandomCode(4)}"; |
| | |
| | | //监控上线 |
| | | MonitorHelper.MonitorTestForLine(_dataCaptureConfig, value, colConfig, wplog.WorkPieceID); |
| | | } |
| | | if (wplog != null) |
| | | { |
| | | var isRight = SystemBussinessHelper.ValidateIsRightWorkPieceID(wplog.WorkPieceID); |
| | | if (isRight) |
| | | { |
| | | #region 业务处理 |
| | | //if (wplog != null) |
| | | //{ |
| | | // var isRight = SystemBussinessHelper.ValidateIsRightWorkPieceID(wplog.WorkPieceID); |
| | | // if (isRight) |
| | | // { |
| | | #region 业务处理 |
| | | |
| | | if (SystemValue.value_OP1003.ToUpper().Equals("FALSE") && value.ToString().ToUpper().Equals("TRUE")) |
| | | {//当上一标记位0,当前获取标记为1时, |
| | | //触发操作, 并给静态变量赋值为1 |
| | | //业务代码 |
| | | 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 |
| | | 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 |
| | | // } |
| | | //} |
| | | |
| | | } |
| | | SystemValue.lbl_Alert_OP1003 = $"abcdefg:{RandomHelper.GenerateRandomCode(4)}"; |