From e6eeed970235e6edd2f088df31db4030707e3612 Mon Sep 17 00:00:00 2001
From: schangxiang@126.com <schangxiang@126.com>
Date: 周五, 16 8月 2024 10:45:06 +0800
Subject: [PATCH] 特殊处理OP50 【Editby shaocx,2024-08-16】

---
 DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_BusinessLogical/DataCaptureHandlerV2/DataCaptureHandler_01.cs |   90 ++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 88 insertions(+), 2 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..9620521 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
@@ -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,12 @@
                                         Log4NetHelper.WriteErrorLog(PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure), $" {DataCapturePointCode}宸ュ簭鐩戞帶涓婄嚎瀹屾垚鏍囪 瀛楁{col.DataCaptureColumnTabelName}鍔ㄦ�佽祴鍊煎紓甯竰wplog.Id}", setex);
                                     }
                                 }
+
+                                //鐗规畩澶勭悊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 +224,85 @@
             }
         }
 
+
+        /// <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 "";
+            }
+        }
+
+
+        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