From 97eb1b2a4f11ce60fda7a47ac1edfa588faf22eb Mon Sep 17 00:00:00 2001 From: schangxiang@126.com <schangxiang@126.com> Date: 周三, 28 8月 2024 14:28:41 +0800 Subject: [PATCH] //单独处理 质量数据的状态 --- DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_BusinessLogical/DataCaptureHandlerV2/DataCaptureHandler_01.cs | 209 +++++++++++++++++++++++++++++++++++++++++++-------- 1 files changed, 174 insertions(+), 35 deletions(-) diff --git a/DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_BusinessLogical/DataCaptureHandlerV2/DataCaptureHandler_01.cs b/DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_BusinessLogical/DataCaptureHandlerV2/DataCaptureHandler_01.cs index 896cc15..024a265 100644 --- a/DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_BusinessLogical/DataCaptureHandlerV2/DataCaptureHandler_01.cs +++ b/DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_BusinessLogical/DataCaptureHandlerV2/DataCaptureHandler_01.cs @@ -45,46 +45,46 @@ public override void DataCaptureStart() { - if (SystemValue.isStartedModel) + if (SystemValue.isStartedImitateModel) { - var plcService = PLCManger.GetSinglePLCService(_dataCaptureConfig); + //var plcService = PLCManger.GetSinglePLCService(_dataCaptureConfig); - WorkPieceLog wplog = new WorkPieceLog(); - wplog.Id = Yitter.IdGenerator.YitIdHelper.NextId(); - wplog.WorkingProcedure = WorkingProcedure; - wplog.EquipmentID = WorkingProcedure; - wplog.Remarks = WorkingProcedure; - wplog.MonitoringPoint = DataCapturePointCode; - wplog.CreatedTime = DateTimeHelper.GetDateTime(); - wplog.CreatedUserName = DataCapturePointCode; - wplog.IsDeleted = false; - //var valuecol = plcService.ReadValuePoint("2050", "28", 25, typeof(string)); + //WorkPieceLog wplog = new WorkPieceLog(); + //wplog.Id = Yitter.IdGenerator.YitIdHelper.NextId(); + //wplog.WorkingProcedure = WorkingProcedure; + //wplog.EquipmentID = WorkingProcedure; + //wplog.Remarks = WorkingProcedure; + //wplog.MonitoringPoint = DataCapturePointCode; + //wplog.CreatedTime = DateTimeHelper.GetDateTime(); + //wplog.CreatedUserName = DataCapturePointCode; + //wplog.IsDeleted = false; + ////var valuecol = plcService.ReadValuePoint("2050", "28", 25, typeof(string)); - wplog.EquipmentID = _dataCaptureConfig.EquipmentID; - wplog.WorkPieceID = WorkPieceID; - wplog.UpdatedTime = DateTimeHelper.GetDateTime(); - wplog.UpdatedUserName = DataCapturePointCode; - wplog.OnlineTime = DateTimeHelper.GetDateTime();//缁欎笂绾挎椂闂寸敤 + //wplog.EquipmentID = _dataCaptureConfig.EquipmentID; + //wplog.WorkPieceID = WorkPieceID; + //wplog.UpdatedTime = DateTimeHelper.GetDateTime(); + //wplog.UpdatedUserName = DataCapturePointCode; + //wplog.OnlineTime = DateTimeHelper.GetDateTime();//缁欎笂绾挎椂闂寸敤 - //var valueid = plcService.ReadValuePoint(_dataCaptureConfig.DbNumber, _dataCaptureConfig.Offset, _dataCaptureConfig.DataCaptureColumnLength.Value, PLCManger.GetTypeForString(_dataCaptureConfig.DataCaptureColumnType)); - //wplog.WorkPieceID = PLCManger.GetWorkPieceIDForPLC(_dataCaptureConfig, plcService); - if (wplog.WorkPieceID.Length != 22) - {//鑾峰彇鍒扮殑宸ヤ欢鍙峰紓甯� - return; - } - else - {//鑾峰彇鍏朵粬閰嶇疆鐨勫緟閲囬泦椤� + ////var valueid = plcService.ReadValuePoint(_dataCaptureConfig.DbNumber, _dataCaptureConfig.Offset, _dataCaptureConfig.DataCaptureColumnLength.Value, PLCManger.GetTypeForString(_dataCaptureConfig.DataCaptureColumnType)); + ////wplog.WorkPieceID = PLCManger.GetWorkPieceIDForPLC(_dataCaptureConfig, plcService); + //if (wplog.WorkPieceID.Length != 22) + //{//鑾峰彇鍒扮殑宸ヤ欢鍙峰紓甯� + // return; + //} + //else + //{//鑾峰彇鍏朵粬閰嶇疆鐨勫緟閲囬泦椤� - //foreach (var col in colConfig.Where(o => o.DataCapturePointCode == DataCapturePointCode)) - //{ - // var valuecol = plcService.ReadValuePoint(col.DbNumber, col.Offset, col.DataCaptureColumnLength.Value, PLCManger.GetTypeForString(col.DataCaptureColumnType)); - // wplog.GetType().GetProperty(col.DataCaptureColumnTabelName).SetValue(wplog, valuecol);//缁欏姩鎬佸瓧娈佃祴鍊� + // //foreach (var col in colConfig.Where(o => o.DataCapturePointCode == DataCapturePointCode)) + // //{ + // // var valuecol = plcService.ReadValuePoint(col.DbNumber, col.Offset, col.DataCaptureColumnLength.Value, PLCManger.GetTypeForString(col.DataCaptureColumnType)); + // // wplog.GetType().GetProperty(col.DataCaptureColumnTabelName).SetValue(wplog, valuecol);//缁欏姩鎬佸瓧娈佃祴鍊� - //} - } - //璇诲彇浜岀淮鐮佸悗鏇存柊鏁版嵁搴� - WorkPieceInfoManager.ReadQRcode(wplog, PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure), plcService, _dataCaptureConfig.IsFeedback); + // //} + //} + ////璇诲彇浜岀淮鐮佸悗鏇存柊鏁版嵁搴� + //WorkPieceInfoManager.ReadQRcode(wplog, PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure), plcService, _dataCaptureConfig.IsFeedback); return; @@ -119,7 +119,7 @@ { if (plcService == null || !plcService.IsConnected) { - threadStatusMonitor.ErrorMsg= $" {RandomHelper.GenerateRandomCode(4)} {_dataCaptureConfig.WorkingProcedure} PLC杩炴帴宸叉柇寮�锛屾鍦ㄥ皾璇曟墦寮�!"; + threadStatusMonitor.ErrorMsg = $" {RandomHelper.GenerateRandomCode(4)} {_dataCaptureConfig.WorkingProcedure} PLC杩炴帴宸叉柇寮�锛屾鍦ㄥ皾璇曟墦寮�!"; SystemValue.PLCServiceReconnect(plcService); //plcService.Close(); //plcService.OpenService(); @@ -148,7 +148,7 @@ wplog.CreatedTime = DateTimeHelper.GetDateTime(); wplog.CreatedUserName = DataCapturePointCode; wplog.UpdatedTime = DateTimeHelper.GetDateTime(); - wplog.UpdatedUserName = Environment.MachineName+"鑷姩"+ Thread.CurrentThread.ManagedThreadId.ToString(); + wplog.UpdatedUserName = Environment.MachineName + "鑷姩" + Thread.CurrentThread.ManagedThreadId.ToString(); wplog.OnlineTime = DateTimeHelper.GetDateTime(); wplog.IsDeleted = false; @@ -170,6 +170,15 @@ Log4NetHelper.WriteErrorLog(PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure), $" {DataCapturePointCode}宸ュ簭鐩戞帶涓婄嚎瀹屾垚鏍囪 瀛楁{col.DataCaptureColumnTabelName}鍔ㄦ�佽祴鍊煎紓甯竰wplog.Id}", setex); } } + + //鐩戞帶娴嬭瘯鏁版嵁锛屾ā鎷燂紝娴嬭瘯 + MonitorHelper.MonitorTestForOP3501(_dataCaptureConfig, value, colConfig, wplog); + + //鐗规畩澶勭悊OP50 銆怑ditby shaocx,2024-08-16銆� + string sideValue = GetSideForOP50(plcService, wplog); + wplog.MonitoringPoint += sideValue; + wplog.CreatedUserName = wplog.MonitoringPoint; + //璇诲彇浜岀淮鐮佸悗鏇存柊鏁版嵁搴� WorkPieceInfoManager.ReadQRcode(wplog, PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure), plcService, _dataCaptureConfig.IsFeedback); @@ -218,5 +227,135 @@ } } + + /// <summary> + /// 鑾峰彇OP50鐨勬煇涓伐浣嶇殑鍝釜闈� + /// </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"))) + { + return ""; + } + + 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(LogType.MonitorOP50Side, $"璇诲彇 {DataCapturePointCode}宸ュ簭鐩戞帶娴嬮噺鏍囪鏁版嵁,鑾峰彇OP50鐨勫摢涓潰,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鐨勯棶棰� 銆怑ditby 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"; + } + } + Log4NetHelper.WriteErrorLog(LogType.MonitorOP50Side, $"璇诲彇 {DataCapturePointCode}宸ュ簭鐩戞帶娴嬮噺鏍囪鏁版嵁鏃讹紝鏃犳晥鏁板��,鑾峰彇OP50鐨勫摢涓潰,,i_value_M88:{i_value_M88}锛屽伐浠跺彿:{wplog.WorkPieceID}", null); + return ""; + } + catch (Exception ex) + { + Log4NetHelper.WriteErrorLog(LogType.MonitorOP50Side, $"璇诲彇 {DataCapturePointCode}宸ュ簭鐩戞帶娴嬮噺鏍囪鏁版嵁鏃跺紓甯�,鑾峰彇OP50鐨勫摢涓潰,宸ヤ欢鍙�:{wplog.WorkPieceID}", ex); + return ""; + } + } + + + private int _GetSideForOP50(PLCService plcService, WorkPieceLog wplog, string address) + { + try + { + object value_M88 = plcService.ReadValuePointV2(address, 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},璇诲彇鍦板潃 {address}锛屽伐搴忕洃鎺ф暟鎹�,鑾峰彇OP50鐨勫摢涓潰,i_value_M88:{i_value_M88},宸ヤ欢鍙�:{wplog.WorkPieceID}"); + if (isRight) + { + return i_value_M88; + } + Log4NetHelper.WriteErrorLog(PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure), $"璇诲彇 {DataCapturePointCode},璇诲彇鍦板潃 {address}锛屽伐搴忕洃鎺ф祴閲忔爣璁版暟鎹椂锛屾棤鏁堟暟鍊�,鑾峰彇OP50鐨勫摢涓潰,,i_value_M88:{i_value_M88}锛屽伐浠跺彿:{wplog.WorkPieceID}", null); + return 0; + } + catch (Exception ex) + { + Log4NetHelper.WriteErrorLog(PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure), $"璇诲彇 {DataCapturePointCode},璇诲彇鍦板潃 {address}锛屽伐搴忕洃鎺ф祴閲忔爣璁版暟鎹椂寮傚父,鑾峰彇OP50鐨勫摢涓潰,宸ヤ欢鍙�:{wplog.WorkPieceID}", ex); + return 0; + } + } } } -- Gitblit v1.9.3