From c34f8f93417c5a0125f9c55ba3d347411995ac13 Mon Sep 17 00:00:00 2001
From: schangxiang@126.com <schangxiang@126.com>
Date: 周二, 10 9月 2024 15:05:32 +0800
Subject: [PATCH] 1

---
 DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_BusinessLogical/DataCaptureHandlerV2/DataCaptureHandler_01.cs |  252 +++++++++++++++++++++++++++++++++-----------------
 1 files changed, 165 insertions(+), 87 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 9620521..70f6736 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
@@ -1,4 +1,5 @@
 锘縰sing iWare_SCADA_BusinessLogical.BLL;
+using iWare_SCADA_BusinessLogical.BLL.Important;
 using iWare_SCADA_BusinessLogical.Utils;
 using iWare_SCADA_Model;
 using iWare_SCADA_Model.MiddleModel;
@@ -45,46 +46,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;
@@ -106,7 +107,7 @@
                     //plcService.Close();
                     //plcService.OpenService();
                 }
-                string value_01 = "";
+                string value_01 = "FALSE";//娉ㄦ剰锛氶粯璁ゆ槸FALSE 銆怑ditby shaocx,2024-09-05銆�
                 while (true)
                 {
                     threadStatusMonitor.ErrorMsg = "";
@@ -134,19 +135,20 @@
                             //string hostname = Environment.MachineName;
 
                             object value = plcService.ReadValuePoint(_dataCaptureConfig.DbNumber, _dataCaptureConfig.Offset, PLCManger.GetTypeForString(_dataCaptureConfig.DataCaptureColumnType));
-                            if (value_01.ToUpper().Equals("FALSE") && value.ToString().ToUpper().Equals("TRUE"))
-                            {//褰撲笂涓�鏍囪浣�0锛屽綋鍓嶈幏鍙栨爣璁颁负1鏃讹紝
-                             //瑙﹀彂鎿嶄綔,  骞剁粰闈欐�佸彉閲忚祴鍊间负1
-                             //涓氬姟浠g爜
-                                threadStatusMonitor.Threadlastmodifytime = DateTime.Now;
-                                WorkPieceLog wplog = new WorkPieceLog();
+                            WorkPieceLog wplog = null;
+
+                            var value_bool = value.ToString().ToUpper().Equals("TRUE");
+                            if (value_bool)
+                            {
+                                wplog = new WorkPieceLog();
                                 wplog.Id = Yitter.IdGenerator.YitIdHelper.NextId();
                                 wplog.WorkingProcedure = WorkingProcedure;
                                 wplog.EquipmentID = _dataCaptureConfig.EquipmentID; ;
                                 wplog.Remarks = WorkingProcedure;
                                 wplog.MonitoringPoint = DataCapturePointCode;
+                                //wplog.CreatedUserName = DataCapturePointCode;
+                                SystemBussinessHelper.SetWorkPieceLogMiddleForCreatedUserName(ref wplog, DataCapturePointCode, DataCapturePointCname);
                                 wplog.CreatedTime = DateTimeHelper.GetDateTime();
-                                wplog.CreatedUserName = DataCapturePointCode;
                                 wplog.UpdatedTime = DateTimeHelper.GetDateTime();
                                 wplog.UpdatedUserName = Environment.MachineName + "鑷姩" + Thread.CurrentThread.ManagedThreadId.ToString();
                                 wplog.OnlineTime = DateTimeHelper.GetDateTime();
@@ -171,25 +173,51 @@
                                     }
                                 }
 
-                                //鐗规畩澶勭悊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);
-
-                                threadStatusMonitor.Threadstatue = 1;
-
+                                //鐩戞帶娴嬭瘯鏁版嵁锛屾ā鎷燂紝娴嬭瘯
+                                MonitorHelper.MonitorTestForOP3501(_dataCaptureConfig, value, colConfig, wplog);
+                                //鐩戞帶涓婄嚎
+                                MonitorHelper.MonitorTestForLine(_dataCaptureConfig, value, colConfig, wplog.WorkPieceID);
                             }
-                            value_01 = value.ToString();
+                            else
+                            {
+                                value_01 = value.ToString();
+                            }
+                            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
+                                     //涓氬姟浠g爜
+                                        threadStatusMonitor.Threadlastmodifytime = DateTime.Now;
+
+                                        //鐗规畩澶勭悊OP50 銆怑ditby shaocx,2024-08-16銆�
+                                        string sideValue = GetSideForOP50(plcService, wplog);
+                                        wplog.MonitoringPoint += sideValue;
+                                        //wplog.CreatedUserName = wplog.MonitoringPoint;
+                                        SystemBussinessHelper.SetWorkPieceLogMiddleForCreatedUserName(ref wplog, wplog.MonitoringPoint, DataCapturePointCname);
+
+                                        //璇诲彇浜岀淮鐮佸悗鏇存柊鏁版嵁搴�
+                                        ReadQRcodeManager.ReadQRcode(wplog, PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure), plcService, _dataCaptureConfig.IsFeedback);
+
+                                        threadStatusMonitor.Threadstatue = 1;
+
+                                    }
+                                    value_01 = value.ToString();
+
+                                    #endregion
+                                }
+                            }
                         }
                         threadStatusMonitor.Remarks = $"abcdefg:{RandomHelper.GenerateRandomCode(4)}";
                         if (!_dataCaptureConfig.DataCaptureFrequency.HasValue || _dataCaptureConfig.DataCaptureFrequency < 10)
                         {
-                            threadStatusMonitor.ThreadFrequency = 5000;
-                            Thread.Sleep(5000);
+                            threadStatusMonitor.ThreadFrequency = 700;
+                            Thread.Sleep(700);
                         }
                         else
                         {
@@ -230,6 +258,62 @@
         /// </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
@@ -238,46 +322,40 @@
                 {
                     return "";
                 }
-                string title = $"璇诲彇 {DataCapturePointCode}宸ュ簭鏃讹紝鑾峰彇OP50鐨勫摢涓潰,宸ヤ欢鍙�:{wplog.WorkPieceID}";
 
-                int i_value_M88 = _GetSideForOP50(plcService, wplog, "M87.0");
-                if (i_value_M88 == 1)
+                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)
                 {
-                    title += ",杩斿洖1";
-                    Log4NetHelper.WriteInfoLog(PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure), title);
-                    return "1";
+                    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";
+                    }
                 }
-
-                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}");
+                Log4NetHelper.WriteErrorLog(LogType.MonitorOP50Side, $"璇诲彇 {DataCapturePointCode}宸ュ簭鐩戞帶娴嬮噺鏍囪鏁版嵁鏃讹紝鏃犳晥鏁板��,鑾峰彇OP50鐨勫摢涓潰,,i_value_M88:{i_value_M88}锛屽伐浠跺彿:{wplog.WorkPieceID}", null);
                 return "";
             }
             catch (Exception ex)
             {
-                Log4NetHelper.WriteErrorLog(PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure), $"璇诲彇 {DataCapturePointCode}宸ュ簭鏃跺紓甯�,鑾峰彇OP50鐨勫摢涓潰,宸ヤ欢鍙�:{wplog.WorkPieceID}", ex);
+                Log4NetHelper.WriteErrorLog(LogType.MonitorOP50Side, $"璇诲彇 {DataCapturePointCode}宸ュ簭鐩戞帶娴嬮噺鏍囪鏁版嵁鏃跺紓甯�,鑾峰彇OP50鐨勫摢涓潰,宸ヤ欢鍙�:{wplog.WorkPieceID}", ex);
                 return "";
             }
         }

--
Gitblit v1.9.3