Forráskód Böngészése

20250825001 识别速度优化前的代码记录。

向羽 孟 8 hónapja
szülő
commit
5c53cfa50e

+ 3 - 4
CCDCountWpf/WpfFrom/MainWindow.xaml.cs

@@ -193,8 +193,8 @@ namespace CCDCountWpf
 
                 MessageBus.MainThreadS[i].FormulationName = Configs[i].ConfigName;
                 MessageBus.MainThreadS[i].IsLoadFormulation = Configs[i].IsFormulation;
-                MessageBus.MainThreadS[i].ConnectModbus("127.0.0.1");
-                //MessageBus.MainThreadS[i].ConnectModbus("192.168.1.88");
+                //MessageBus.MainThreadS[i].ConnectModbus("127.0.0.1");
+                MessageBus.MainThreadS[i].ConnectModbus("192.168.1.88");
                 MessageBus.MainThreadS[i].LoadCamera();
             }
         }
@@ -441,8 +441,7 @@ namespace CCDCountWpf
         /// </summary>
         private void InitCamComboboxValue()
         {
-            List<CameraInfoClass> CameraInfoList = new List<CameraInfoClass>();
-            MessageBus.CameraClass.GetCameraList(out CameraInfoList);
+            MessageBus.CameraClass.GetCameraList(out List<CameraInfoClass> CameraInfoList);
             if (CameraInfoList.Count > 0)
             {
                 ShowMessageBus.ShowBinding.CameraItems.Clear();

+ 18 - 0
CCDCountWpf/WpfPage/MainPage.xaml.cs

@@ -49,6 +49,24 @@ namespace CCDCountWpf.WpfPage
 
             StopIdentifyBtn.IsEnabled = false;
             StopIdentifyBtn.Opacity = 0.5;
+
+            if(MessageBus.NowLoadCameraIndex>=0)
+            {
+                if (MessageBus.MainThreadS[MessageBus.NowLoadCameraIndex].CameraRunStatic)
+                {
+                    StartIdentifyBtn.IsEnabled = false;
+                    StartIdentifyBtn.Opacity = 0.5;
+                    StopIdentifyBtn.IsEnabled = true;
+                    StopIdentifyBtn.Opacity = 1;
+                }
+                else
+                {
+                    StartIdentifyBtn.IsEnabled = true;
+                    StartIdentifyBtn.Opacity = 1;
+                    StopIdentifyBtn.IsEnabled = false;
+                    StopIdentifyBtn.Opacity = 0.5;
+                }
+            }
         }
 
         private void Grid_SizeChanged(object sender, SizeChangedEventArgs e)

+ 2 - 1
CCDCountWpf/WpfPage/SettingPage.xaml.cs

@@ -149,7 +149,8 @@ namespace CCDCountWpf.WpfPage
         private void CamSelectConBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
         {
             if(ShowMessageBus.ShowBinding.CameraItems.Count == 0) return;
-            string ThisItemSN = ShowMessageBus.ShowBinding.CameraSNNum;
+            //string ThisItemSN = ShowMessageBus.ShowBinding.CameraSNNum;
+            string ThisItemSN = CamSelectConBox.SelectedValue.ToString();
             if (MessageBus.NowSettingLoadMainThread == null || ThisItemSN == MessageBus.NowSettingLoadMainThread.cameraConfig.CameraSNNum) return;
             if (ThisItemSN != string.Empty && ThisItemSN != null)
             {

+ 46 - 34
TestWork.DLL/FaultLogClass.cs

@@ -33,16 +33,19 @@ namespace CCDCount.DLL
         /// <param name="userid"></param>
         public static void RecordErrorMessage(string Message)
         {
-            ErroeMesDataModelClass errorMessage = new ErroeMesDataModelClass
+            Task.Run(() =>
             {
-                Message = Message,
-                DateTime = DateTime.Now,
-                Category = "系统",
-                MessageType = "异常",
-                UserID = userid
-            };
-            errorMesSqliteDataClass.InsertErrMessage(errorMessage);
-            FaultError?.Invoke(new ErrorMesDataEventModelClass(errorMessage));
+                ErroeMesDataModelClass errorMessage = new ErroeMesDataModelClass
+                {
+                    Message = Message,
+                    DateTime = DateTime.Now,
+                    Category = "系统",
+                    MessageType = "异常",
+                    UserID = userid
+                };
+                errorMesSqliteDataClass.InsertErrMessage(errorMessage);
+                FaultError?.Invoke(new ErrorMesDataEventModelClass(errorMessage));
+            });
         }
 
         /// <summary>
@@ -52,16 +55,19 @@ namespace CCDCount.DLL
         /// <param name="LogLevel"></param>
         public static void RecordLogMessage(string Message,int LogLevel)
         {
-            ErroeMesDataModelClass errorMessage = new ErroeMesDataModelClass
+            Task.Run(() =>
             {
-                Message = Message,
-                DateTime = DateTime.Now,
-                Category = "系统",
-                MessageType = "日志",
-                UserID = userid,
-                LogLevel = LogLevel
-            };
-            errorMesSqliteDataClass.InsertErrMessage(errorMessage);
+                ErroeMesDataModelClass errorMessage = new ErroeMesDataModelClass
+                {
+                    Message = Message,
+                    DateTime = DateTime.Now,
+                    Category = "系统",
+                    MessageType = "日志",
+                    UserID = userid,
+                    LogLevel = LogLevel
+                };
+                errorMesSqliteDataClass.InsertErrMessage(errorMessage);
+            });
         }
 
         /// <summary>
@@ -71,15 +77,18 @@ namespace CCDCount.DLL
         /// <param name="userid"></param>
         public static void RecordValueChangeMessage(string Message)
         {
-            ErroeMesDataModelClass errorMessage = new ErroeMesDataModelClass
+            Task.Run(() =>
             {
-                Message = Message,
-                DateTime = DateTime.Now,
-                Category = "系统",
-                MessageType = "值变更",
-                UserID = userid
-            };
-            errorMesSqliteDataClass.InsertErrMessage(errorMessage);
+                ErroeMesDataModelClass errorMessage = new ErroeMesDataModelClass
+                {
+                    Message = Message,
+                    DateTime = DateTime.Now,
+                    Category = "系统",
+                    MessageType = "值变更",
+                    UserID = userid
+                };
+                errorMesSqliteDataClass.InsertErrMessage(errorMessage);
+            });
         }
 
         /// <summary>
@@ -89,15 +98,18 @@ namespace CCDCount.DLL
         /// <param name="userid"></param>
         public static void RecordValueSaveMessage(string Message)
         {
-            ErroeMesDataModelClass errorMessage = new ErroeMesDataModelClass
+            Task.Run(() =>
             {
-                Message = Message,
-                DateTime = DateTime.Now,
-                Category = "系统",
-                MessageType = "值保存",
-                UserID = userid
-            };
-            errorMesSqliteDataClass.InsertErrMessage(errorMessage);
+                ErroeMesDataModelClass errorMessage = new ErroeMesDataModelClass
+                {
+                    Message = Message,
+                    DateTime = DateTime.Now,
+                    Category = "系统",
+                    MessageType = "值保存",
+                    UserID = userid
+                };
+                errorMesSqliteDataClass.InsertErrMessage(errorMessage);
+            });
         }
 
         /// <summary>

+ 24 - 18
TestWork.DLL/MainThreadClass.cs

@@ -17,6 +17,7 @@ using System.Runtime.InteropServices;
 using System.Runtime.Remoting.Messaging;
 using System.Text;
 using System.Threading;
+using System.Threading.Tasks;
 
 namespace CCDCount.DLL
 {
@@ -246,7 +247,7 @@ namespace CCDCount.DLL
         /// <returns></returns>
         public bool ReLoadCamera(string CameraSN)
         { 
-            bool result = false;
+            bool result;
             result = cameraClass.ReLoadCameraDevice(CameraSN);
             if (result)
             {
@@ -300,8 +301,8 @@ namespace CCDCount.DLL
                         int roiwidth = item.MaxEndCol - item.MinStartCol + 10;
                         g.DrawRectangle(GreenPen, new Rectangle(roix, roiy, roiwidth, roiheight));
 
-                        Font font = new Font("Arial", 40);
-                        g.DrawString(item.Num.ToString(), font, Brushes.Black, new Point(roix - 50*item.Num.ToString().Length, roiy - 20));
+                        Font font = new Font("Arial", 20);
+                        g.DrawString(item.Num.ToString(), font, Brushes.Black, new Point(roix - 20*item.Num.ToString().Length, roiy - 20));
 
                         foreach (var item1 in item.RowsData)
                         {
@@ -576,14 +577,16 @@ namespace CCDCount.DLL
             // 事件处理逻辑
             foreach (ActiveObjectClass oneActive in e.Actives)
             {
-                Console.WriteLine(string.Format("输出当前颗粒信息,开始行:{0},结束行:{1},开始时间:{2}结束时间:{3},颗粒状态:{4},通道数:{5}",
-                    oneActive.StartLine, oneActive.LastSeenLine, oneActive.StartCheckTime.ToString("O"), oneActive.EndCheckTime.ToString("O"), oneActive.StateCode, oneActive.ChannelNO));
-                LOG.log(string.Format("输出当前颗粒信息,开始行:{0},结束行:{1},开始时间:{2}结束时间:{3},颗粒状态:{4},通道数:{5}",
-                    oneActive.StartLine, oneActive.LastSeenLine, oneActive.StartCheckTime.ToString("O"), oneActive.EndCheckTime.ToString("O"), oneActive.StateCode, oneActive.ChannelNO), 6);
-                if(actionMesSqliteDataClass!=null)
-                {
-                    actionMesSqliteDataClass.InsertActiveObject(oneActive);
-                }
+                LOG.log(string.Format("输出当前颗粒信息,颗粒编号:{0},开始时间:{1}结束时间:{2},颗粒状态:{3},通道数:{4}",
+                    oneActive.Num, oneActive.StartCheckTime.ToString("O"), oneActive.EndCheckTime.ToString("O"), oneActive.StateCode, oneActive.ChannelNO), 6);
+                //Task.Run(() =>
+                //{
+                //    if (actionMesSqliteDataClass != null)
+                //    {
+                //        actionMesSqliteDataClass.InsertActiveObject(oneActive);
+                //    }
+                //});
+
                 if (oneActive.StateCode != 7 && oneActive.ChannelNO != -1)
                 {
                     //单通道合格计数
@@ -593,6 +596,7 @@ namespace CCDCount.DLL
                 {
                     //单通道不合格计数
                     result |= (ushort)(1 << (8 + oneActive.ChannelNO));
+                    Console.WriteLine($"通道{oneActive.ChannelNO}的激活数据有误!");
                 }
             }
             LOG.log("当前待发送队列数量:" + SendQueue.Count, 6);
@@ -641,7 +645,6 @@ namespace CCDCount.DLL
         /// </summary>
         private void SwitchIdentifyImageProcess()
         {
-            IFrameOut IFramedata = null;
             Stopwatch stopwatch = Stopwatch.StartNew();
             stopwatch.Start();
             while (IsSwitch)
@@ -649,11 +652,12 @@ namespace CCDCount.DLL
                 if (stopwatch.ElapsedMilliseconds > 1000)
                 {
                     //Console.WriteLine("交换线程-图像处理实例中的待识别图像缓存队列长度{0}", shuLiClass.ImageNum);
+                    //LOG.log(string.Format("交换线程-图像处理实例中的待识别图像缓存队列长度{0}", shuLiClass.ImageNum),6);
                     GC.Collect();
                     stopwatch.Restart();
                 }
                 //Thread.Sleep(5);
-                bool result = cameraClass.GetOnceImage(out IFramedata);
+                bool result = cameraClass.GetOnceImage(out IFrameOut IFramedata);
                 if (result)
                 {
                     //Debug模式,不进行图像处理
@@ -724,9 +728,9 @@ namespace CCDCount.DLL
         private void SendBottLogicMessageProcess()
         {
             //获取数据
-            ushort sendMessage = 0;
-            bool AllowTransfer = false;
-            bool TransferDone = false;
+            ushort sendMessage;
+            bool AllowTransfer;
+            bool TransferDone;
             Stopwatch sw = Stopwatch.StartNew();
             while (IsSend)
             {
@@ -759,9 +763,11 @@ namespace CCDCount.DLL
                         //写入数据
                         modbusTcpClient.WriteSingleRegister(slaveId: 1, registerAddress: 100, value: sendMessage);
                         modbusTcpClient.WriteCoilsRegister(slaveId: 1, CoilsAddress: 11, values: true);
+                        sw.Stop();
+                        LOG.log(string.Format("sendMessage[1]:{0},此次写值耗时:{1}", sendMessage, sw.Elapsed), 6);
                     }
-                    sw.Stop();
-                    FaultLog.RecordLogMessage(string.Format("sendMessage[1]:{0},此次写值耗时:{1}", sendMessage, sw.Elapsed),1);
+
+                    //FaultLog.RecordLogMessage(string.Format("sendMessage[1]:{0},此次写值耗时:{1}", sendMessage, sw.Elapsed),1);
                 }
                 Thread.Sleep(1);
             }

+ 39 - 39
TestWork.DLL/PLCManagementClass.cs

@@ -520,7 +520,7 @@ namespace CCDCount.DLL
         /// <param name="Value"></param>
         public void WriteSpeedModeRunningSpeed(float Value)
         {
-            modbusTcpClient.WriteMultipleReals(1, 110, new float[] { Value }, "ABCD");
+            modbusTcpClient.WriteMultipleReals(1, 1110, new float[] { Value }, "ABCD");
         }
 
         /// <summary>
@@ -529,7 +529,7 @@ namespace CCDCount.DLL
         /// <param name="Value"></param>
         public void WriteJogSpeed(float Value)
         {
-            modbusTcpClient.WriteMultipleReals(1, 114, new float[] { Value }, "ABCD");
+            modbusTcpClient.WriteMultipleReals(1, 1114, new float[] { Value }, "ABCD");
         }
 
         /// <summary>
@@ -538,7 +538,7 @@ namespace CCDCount.DLL
         /// <param name="Value"></param>
         public void WriteBottValueSet(UInt16 Value)
         {
-            modbusTcpClient.WriteSingleRegister(1, 118, Value);
+            modbusTcpClient.WriteSingleRegister(1, 1118, Value);
         }
 
         /// <summary>
@@ -547,7 +547,7 @@ namespace CCDCount.DLL
         /// <param name="Value"></param>
         public void WriteTransferValveOpeningSpeed(float Value)
         {
-            modbusTcpClient.WriteMultipleReals(1, 122, new float[] { Value }, "ABCD");
+            modbusTcpClient.WriteMultipleReals(1, 1122, new float[] { Value }, "ABCD");
         }
 
         /// <summary>
@@ -555,7 +555,7 @@ namespace CCDCount.DLL
         /// </summary>
         public void WriteTransferValveOpeningTime(UInt32 Value)
         {
-            modbusTcpClient.WriteSingleInt32(1, 126, Value);
+            modbusTcpClient.WriteSingleInt32(1, 1126, Value);
         }
 
         /// <summary>
@@ -564,7 +564,7 @@ namespace CCDCount.DLL
         /// <param name="Value"></param>
         public void WriteBottingDecelerationValue(ushort Value)
         {
-            modbusTcpClient.WriteSingleRegister(1, 130, Value);
+            modbusTcpClient.WriteSingleRegister(1, 1130, Value);
         }
 
         /// <summary>
@@ -573,7 +573,7 @@ namespace CCDCount.DLL
         /// <param name="Value"></param>
         public void WriteCacheDecelerationValue(ushort Value)
         {
-            modbusTcpClient.WriteSingleRegister(1, 134, Value);
+            modbusTcpClient.WriteSingleRegister(1, 1134, Value);
         }
 
         /// <summary>
@@ -582,7 +582,7 @@ namespace CCDCount.DLL
         /// <param name="Value"></param>
         public void WriteCacheCountDelayTiming(UInt32 Value)
         {
-            modbusTcpClient.WriteSingleInt32(1, 138, Value);
+            modbusTcpClient.WriteSingleInt32(1, 1138, Value);
         }
 
         /// <summary>
@@ -591,7 +591,7 @@ namespace CCDCount.DLL
         /// <param name="Value"></param>
         public void WriteCacheShutdownValue(ushort Value)
         {
-            modbusTcpClient.WriteSingleRegister(1, 142, Value);
+            modbusTcpClient.WriteSingleRegister(1, 1142, Value);
         }
 
         /// <summary>
@@ -600,7 +600,7 @@ namespace CCDCount.DLL
         /// <param name="Value"></param>
         public void WriteBottingMaterialCylinderVibrationTableHighSpeedValue(ushort Value)
         {
-            modbusTcpClient.WriteSingleRegister(1, 146, Value);
+            modbusTcpClient.WriteSingleRegister(1, 1146, Value);
         }
 
         /// <summary>
@@ -609,7 +609,7 @@ namespace CCDCount.DLL
         /// <param name="Value"></param>
         public void WriteBottingFilterVibrationTableHighSpeedValue(ushort Value)
         {
-            modbusTcpClient.WriteSingleRegister(1, 150, Value);
+            modbusTcpClient.WriteSingleRegister(1, 1150, Value);
         }
 
         /// <summary>
@@ -618,7 +618,7 @@ namespace CCDCount.DLL
         /// <param name="Value"></param>
         public void WriteBottingCountVibrationTableHighSpeedValue(ushort Value)
         {
-            modbusTcpClient.WriteSingleRegister(1, 154, Value);
+            modbusTcpClient.WriteSingleRegister(1, 1154, Value);
         }
 
         /// <summary>
@@ -627,7 +627,7 @@ namespace CCDCount.DLL
         /// <param name="Value"></param>
         public void WriteBottingMaterialCylinderVibrationTableDecelerationSpeedValue(ushort Value)
         {
-            modbusTcpClient.WriteSingleRegister(1, 158, Value);
+            modbusTcpClient.WriteSingleRegister(1, 1158, Value);
         }
 
         /// <summary>
@@ -636,7 +636,7 @@ namespace CCDCount.DLL
         /// <param name="Value"></param>
         public void WriteBottingFilterVibrationTableDecelerationSpeedValue(ushort Value)
         {
-            modbusTcpClient.WriteSingleRegister(1, 162, Value);
+            modbusTcpClient.WriteSingleRegister(1, 1162, Value);
         }
 
         /// <summary>
@@ -645,7 +645,7 @@ namespace CCDCount.DLL
         /// <param name="Value"></param>
         public void WriteBottingCountVibrationTableDecelerationSpeedValue(ushort Value)
         {
-            modbusTcpClient.WriteSingleRegister(1, 166, Value);
+            modbusTcpClient.WriteSingleRegister(1, 1166, Value);
         }
 
         /// <summary>
@@ -654,7 +654,7 @@ namespace CCDCount.DLL
         /// <param name="Value"></param>
         public void WriteCacheMaterialCylinderVibrationTableHighSpeedValue(ushort Value)
         {
-            modbusTcpClient.WriteSingleRegister(1, 170, Value);
+            modbusTcpClient.WriteSingleRegister(1, 1170, Value);
         }
 
         /// <summary>
@@ -663,7 +663,7 @@ namespace CCDCount.DLL
         /// <param name="Value"></param>
         public void WriteCacheFilterVibrationTableHighSpeedValue(ushort Value)
         {
-            modbusTcpClient.WriteSingleRegister(1, 174, Value);
+            modbusTcpClient.WriteSingleRegister(1, 1174, Value);
         }
 
         /// <summary>
@@ -672,7 +672,7 @@ namespace CCDCount.DLL
         /// <param name="Value"></param>
         public void WriteCacheCountVibrationTableHighSpeedValue(ushort Value)
         {
-            modbusTcpClient.WriteSingleRegister(1, 178, Value);
+            modbusTcpClient.WriteSingleRegister(1, 1178, Value);
         }
 
         /// <summary>
@@ -681,7 +681,7 @@ namespace CCDCount.DLL
         /// <param name="Value"></param>
         public void WriteCacheMaterialCylinderVibrationTableDecelerationSpeedValue(ushort Value)
         {
-            modbusTcpClient.WriteSingleRegister(1, 182, Value);
+            modbusTcpClient.WriteSingleRegister(1, 1182, Value);
         }
 
         /// <summary>
@@ -690,7 +690,7 @@ namespace CCDCount.DLL
         /// <param name="Value"></param>
         public void WriteCacheFilterVibrationTableDecelerationSpeedValue(ushort Value)
         {
-            modbusTcpClient.WriteSingleRegister(1, 186, Value);
+            modbusTcpClient.WriteSingleRegister(1, 1186, Value);
         }
 
         /// <summary>
@@ -699,7 +699,7 @@ namespace CCDCount.DLL
         /// <param name="Value"></param>
         public void WriteCacheCountVibrationTableDecelerationSpeedValue(ushort Value)
         {
-            modbusTcpClient.WriteSingleRegister(1, 190, Value);
+            modbusTcpClient.WriteSingleRegister(1, 1190, Value);
         }
 
         /// <summary>
@@ -708,7 +708,7 @@ namespace CCDCount.DLL
         /// <param name="Value"></param>
         public void WriteGateOpeningDelay(UInt32 Value)
         {
-            modbusTcpClient.WriteSingleInt32(1, 194, Value);
+            modbusTcpClient.WriteSingleInt32(1, 1194, Value);
         }
 
         /// <summary>
@@ -717,7 +717,7 @@ namespace CCDCount.DLL
         /// <param name="Value"></param>
         public void WriteReturnToZeroOffsetValue(float Value)
         {
-            modbusTcpClient.WriteSingleReal(1, 198, Value);
+            modbusTcpClient.WriteSingleReal(1, 1198, Value);
         }
 
         /// <summary>
@@ -726,7 +726,7 @@ namespace CCDCount.DLL
         /// <param name="Value"></param>
         public void WriteReturnToZeroOffsetSpeed(float Value)
         {
-            modbusTcpClient.WriteSingleReal(1, 202, Value);
+            modbusTcpClient.WriteSingleReal(1, 1202, Value);
         }
 
         /// <summary>
@@ -735,7 +735,7 @@ namespace CCDCount.DLL
         /// <param name="Value"></param>
         public void WriteTransferValveClosingSpeed(float Value)
         {
-            modbusTcpClient.WriteSingleReal(1, 206, Value);
+            modbusTcpClient.WriteSingleReal(1, 1206, Value);
         }
 
         /// <summary>
@@ -744,7 +744,7 @@ namespace CCDCount.DLL
         /// <param name="Value"></param>
         public void WriteTransferValveOpenPosition(float Value)
         {
-            modbusTcpClient.WriteSingleReal(1, 210, Value);
+            modbusTcpClient.WriteSingleReal(1, 1210, Value);
         }
 
         /// <summary>
@@ -753,7 +753,7 @@ namespace CCDCount.DLL
         /// <param name="Value"></param>
         public void WriteTransferValveClosePosition(float Value)
         {
-            modbusTcpClient.WriteSingleReal(1, 214, Value);
+            modbusTcpClient.WriteSingleReal(1, 1214, Value);
         }
 
         /// <summary>
@@ -761,7 +761,7 @@ namespace CCDCount.DLL
         /// </summary>
         public void WriteAirValveOpeningDelay(UInt32 Value)
         {
-            modbusTcpClient.WriteSingleInt32(1, 218, Value);
+            modbusTcpClient.WriteSingleInt32(1, 1218, Value);
         }
 
         /// <summary>
@@ -770,7 +770,7 @@ namespace CCDCount.DLL
         /// <param name="Value"></param>
         public void WriteBottlingShutdownValue(ushort Value)
         {
-            modbusTcpClient.WriteSingleRegister(1, 230, Value);
+            modbusTcpClient.WriteSingleRegister(1, 1230, Value);
         }
 
         /// <summary>
@@ -779,7 +779,7 @@ namespace CCDCount.DLL
         /// <param name="Value"></param>
         public void WriteBottlingShutdownTime(UInt32 Value)
         {
-            modbusTcpClient.WriteSingleInt32(1, 234, Value);
+            modbusTcpClient.WriteSingleInt32(1, 1234, Value);
         }
         /// <summary>
         /// 读取所有参数(参数数据表)
@@ -787,7 +787,7 @@ namespace CCDCount.DLL
         public PlcParaModelClass ReadAllPara()
         {
             PlcParaModelClass result = null;
-            var results = modbusTcpClient.ReadHoldingRegisters(slaveId: 1, startAddress: 110, numRegisters: 124);
+            var results = modbusTcpClient.ReadHoldingRegisters(slaveId: 1, startAddress: 1110, numRegisters: 124);
             if (results == null) return null;
             result = new PlcParaModelClass()
             {
@@ -821,7 +821,7 @@ namespace CCDCount.DLL
                 AirValveOpeningDelay = GetInt32FromRegisters(results.Skip(108).Take(2).ToArray()),
                 BottlingShutdownValue = results[120],
             };
-            results = modbusTcpClient.ReadHoldingRegisters(slaveId: 1, startAddress: 234, numRegisters: 36);
+            results = modbusTcpClient.ReadHoldingRegisters(slaveId: 1, startAddress: 1234, numRegisters: 36);
             result.BottlingShutdownTime = GetInt32FromRegisters(results.Take(2).ToArray());
             result.BottleFeedingWheelRunningSpeed = GetFloatFromRegisters(results.Skip(8).Take(2).ToArray());
             result.BottleFeedingWheelJogRunningSpeed = GetFloatFromRegisters(results.Skip(12).Take(2).ToArray());
@@ -951,7 +951,7 @@ namespace CCDCount.DLL
         /// <param name="result"></param>
         public void WriteBottleFeedingWheelRunningSpeed(float result)
         {
-            modbusTcpClient.WriteSingleReal(slaveId: 1, startAddress: 242, value: result);
+            modbusTcpClient.WriteSingleReal(slaveId: 1, startAddress: 1242, value: result);
         }
 
         /// <summary>
@@ -960,7 +960,7 @@ namespace CCDCount.DLL
         /// <param name="result"></param>
         public void WriteBottleFeedingWheelJogRunningSpeed(float result)
         {
-            modbusTcpClient.WriteSingleReal(slaveId: 1, startAddress: 246, value: result);
+            modbusTcpClient.WriteSingleReal(slaveId: 1, startAddress: 1246, value: result);
         }
 
         /// <summary>
@@ -969,7 +969,7 @@ namespace CCDCount.DLL
         /// <param name="result"></param>
         public void WriteBottleFeedingWheelReturnToZeroOffsetValue(float result)
         {
-            modbusTcpClient.WriteSingleReal(slaveId: 1, startAddress: 250, value: result);
+            modbusTcpClient.WriteSingleReal(slaveId: 1, startAddress: 1250, value: result);
         }
 
         /// <summary>
@@ -978,7 +978,7 @@ namespace CCDCount.DLL
         /// <param name="result"></param>
         public void WriteBottleFeedingWheelReturnToZeroSpeed(float result)
         {
-            modbusTcpClient.WriteSingleReal(slaveId: 1, startAddress: 254, value: result);
+            modbusTcpClient.WriteSingleReal(slaveId: 1, startAddress: 1254, value: result);
         }
 
         /// <summary>
@@ -987,7 +987,7 @@ namespace CCDCount.DLL
         /// <param name="result"></param>
         public void WriteBottleFeedingWheelPositionLength(float result)
         {
-            modbusTcpClient.WriteSingleReal(slaveId: 1, startAddress: 258, value: result);
+            modbusTcpClient.WriteSingleReal(slaveId: 1, startAddress: 1258, value: result);
         }
 
         /// <summary>
@@ -996,7 +996,7 @@ namespace CCDCount.DLL
         /// <param name="result"></param>
         public void WriteBottleFeedingWheelPauseTime(UInt32 result)
         {
-            modbusTcpClient.WriteSingleInt32(slaveId: 1, startAddress: 262, value: result);
+            modbusTcpClient.WriteSingleInt32(slaveId: 1, startAddress: 1262, value: result);
         }
 
         /// <summary>
@@ -1005,7 +1005,7 @@ namespace CCDCount.DLL
         /// <param name="result"></param>
         public void WriteDelayBlanking(UInt32 result)
         {
-            modbusTcpClient.WriteSingleInt32(slaveId: 1, startAddress: 266, value: result);
+            modbusTcpClient.WriteSingleInt32(slaveId: 1, startAddress: 1266, value: result);
         }
 
         /// <summary>

+ 11 - 36
TestWork.DLL/ShuLiClass.cs

@@ -422,6 +422,7 @@ namespace CCDCount.DLL
                         if (item.Area < shuLiConfig.NoiseFilter_Threshold)
                         {
                             item.StateCode = 9;
+                            //LOG.log(string.Format("噪点过滤,噪点面积:{0}", item.Area), 6);
                             continue;
                         }
                         //转为历史物体,添加缺少的参数
@@ -474,34 +475,6 @@ namespace CCDCount.DLL
                                 LOG.log(string.Format("颗粒编号{0}:超长粒", item.Num));
                                 Console.WriteLine("颗粒编号{0}:超长粒", item.Num);
                             }
-                            //else if (item.LastSeenLine - item.StartLine < shuLiConfig.MIN_OBJECT_HEIGHT
-                            //    && (shuLiConfig.PandingCode == 2 || shuLiConfig.PandingCode == 0))
-                            //{
-                            //    item.StateCode = 2;
-                            //    LOG.log(string.Format("颗粒编号{0}:超短粒", item.Num));
-                            //    Console.WriteLine("颗粒编号{0}:超短粒", item.Num);
-                            //}
-                            //else if (item.LastSeenLine - item.StartLine > shuLiConfig.MAX_OBJECT_HEIGHT
-                            //    && (shuLiConfig.PandingCode == 2 || shuLiConfig.PandingCode == 0))
-                            //{
-                            //    item.StateCode = 1;
-                            //    LOG.log(string.Format("颗粒编号{0}:超长粒", item.Num));
-                            //    Console.WriteLine("颗粒编号{0}:超长粒", item.Num);
-                            //}
-                            //else if (item.RowsData.Max(o => o.EndCol - o.StartCol) > shuLiConfig.MAX_OBJECT_WIDTH
-                            //    && (shuLiConfig.PandingCode == 2 || shuLiConfig.PandingCode == 0))
-                            //{
-                            //    item.StateCode = 3;
-                            //    LOG.log(string.Format("颗粒编号{0}:超宽粒", item.Num));
-                            //    Console.WriteLine("颗粒编号{0}:超宽粒", item.Num);
-                            //}
-                            //else if (item.RowsData.Max(o => o.EndCol - o.StartCol) < shuLiConfig.MIN_OBJECT_WIDTH
-                            //    && (shuLiConfig.PandingCode == 2 || shuLiConfig.PandingCode == 0))
-                            //{
-                            //    item.StateCode = 4;
-                            //    LOG.log(string.Format("颗粒编号{0}:超窄粒", item.Num));
-                            //    Console.WriteLine("颗粒编号{0}:超窄粒", item.Num);
-                            //}
                             else
                             {
                                 item.StateCode = 0;
@@ -513,6 +486,7 @@ namespace CCDCount.DLL
 
                     if (OneActive.Count > 0)
                     {
+                        LOG.log(string.Format("识别完成,首个颗粒编号:{0},颗粒数量:{1}", OneActive[0].Num, OneActive.Count), 6);
                         //触发回调事件
                         Task.Run(() =>
                         {
@@ -526,7 +500,7 @@ namespace CCDCount.DLL
                 }
 
                 // 累加到总数并从活跃物体转移到历史物体
-                lostObjects.Where(o => o.Area >= shuLiConfig.NoiseFilter_Threshold && o.StateCode != 7 && o.StateCode != 9).ToList().ForEach(o => TryAdd(historyActiveObjects, o, 2000));
+                lostObjects.Where(o => o.Area >= shuLiConfig.NoiseFilter_Threshold && o.StateCode != 7 && o.StateCode != 9).ToList().ForEach(o => TryAdd(historyActiveObjects, o, 2500));
                 lostObjects.ForEach(o => activeObjects.Remove(o));
             }
             return result;
@@ -730,7 +704,7 @@ namespace CCDCount.DLL
             list.Add(item);
             if (list.Count > maxSize)
             {
-                list[list.Count - 2000].RowsData.Clear();
+                list[list.Count - maxSize].RowsData.Clear();
             }
             return true;
         }
@@ -742,15 +716,16 @@ namespace CCDCount.DLL
         /// </summary>
         private void IdentifyImageProcess()
         {
-            //Stopwatch stopwatch = Stopwatch.StartNew();
-            IImage IframeData = null;
+            Stopwatch stopwatch = Stopwatch.StartNew();
             while (IsIdentify)
             {
                 //判断队列中是否有数据
                 if (IFrameDatas.Count() > 0)
                 {
-                    //stopwatch.Restart();
-                    IFrameDatas.TryDequeue(out IframeData);
+                    stopwatch.Restart();
+                    if(IFrameDatas.Count()>50)
+                        FaultLog.RecordErrorMessage($"图像数据队列中数据过多,请及时处理!当前数据数量为:{IFrameDatas.Count()}");
+                    IFrameDatas.TryDequeue(out IImage IframeData);
                     //是否成功取得数据
                     if (IframeData != null)
                     {
@@ -763,8 +738,8 @@ namespace CCDCount.DLL
                         continue;
                     }
                     //输出耗时
-                    //stopwatch.Stop();
-                    //Console.WriteLine($"识别线程识别一张图片耗时:{stopwatch.Elapsed.ToString()},待识别队列剩余数量{IFrameDatas.Count()}");
+                    stopwatch.Stop();
+                    Console.WriteLine($"识别线程识别一张图片耗时:{stopwatch.Elapsed},待识别队列剩余数量{IFrameDatas.Count()}");
                 }
                 else
                 {