Browse Source

修改压力曲线

wanghan 7 months ago
parent
commit
4d63b56937
1 changed files with 35 additions and 11 deletions
  1. 35 11
      TeamAAS-VM/Core/Management.cs

+ 35 - 11
TeamAAS-VM/Core/Management.cs

@@ -216,6 +216,7 @@ namespace TeamAAS_VP.Core
             _systemDatabaseService = systemDatabaseService;
             _systemDatabaseService = systemDatabaseService;
             _lightManagerService = lightManagerService;
             _lightManagerService = lightManagerService;
             _mesService = mesService;
             _mesService = mesService;
+            InitPressure();
         }
         }
 
 
         #region 初始化硬件模块
         #region 初始化硬件模块
@@ -2267,23 +2268,26 @@ namespace TeamAAS_VP.Core
                                 {
                                 {
                                     return;
                                     return;
                                 }
                                 }
+                                var code = plc.ReadNode<string>(string.Format(addressConfig.In_Code.Address, i));
                                 if (state == 1)
                                 if (state == 1)
                                 {
                                 {
-                                    SendTaskMessage($"收到开始组装信号[{i}]...", MessageLevel.Debug);
-
-                                    var code = plc.ReadNode<string>(string.Format(addressConfig.In_Code.Address, i));
+                                    //SendTaskMessage($"收到开始组装信号[{i}]...", MessageLevel.Debug);
+                                    SendTaskMessage($"收到开始保压信号[{i}]...", MessageLevel.Debug);
                                     // 开始采集压力值
                                     // 开始采集压力值
                                     StartPressureCollection(currentProduct.Name, code, i);
                                     StartPressureCollection(currentProduct.Name, code, i);
                                 }
                                 }
                                 else
                                 else
                                 {
                                 {
-                                    SendTaskMessage($"开始锁付信号[{i}]已关闭", MessageLevel.Alarm);
-                                    // 关闭时的处理(如需)可放在这里
+                                    //SendTaskMessage($"开始锁付信号[{i}]已关闭", MessageLevel.Alarm);
+                                    //// 关闭时的处理(如需)可放在这里
+                                    SendTaskMessage($"收到关闭保压信号[{i}]...", MessageLevel.Debug);
+                                    // 停止采集压力并保存
+                                    await StopAndSavePressureCollectionAsync(currentProduct.Name, code, i);
                                 }
                                 }
                             }
                             }
                         }
                         }
                         //停止组装
                         //停止组装
-                        else if (string.Format(addressConfig.In_WorkStart.Address, i).Contains(tuple.nodeId))
+                        /*else if (string.Format(addressConfig.In_WorkStart.Address, i).Contains(tuple.nodeId))
                         {
                         {
                             if (tuple.value is Int16 state)
                             if (tuple.value is Int16 state)
                             {
                             {
@@ -2350,7 +2354,7 @@ namespace TeamAAS_VP.Core
                                     SendTaskMessage($"停止锁付信号[{i}]已关闭", MessageLevel.Alarm);
                                     SendTaskMessage($"停止锁付信号[{i}]已关闭", MessageLevel.Alarm);
                                 }
                                 }
                             }
                             }
-                        }
+                        }*/
                     }
                     }
                 }
                 }
             }
             }
@@ -2373,6 +2377,25 @@ namespace TeamAAS_VP.Core
         }
         }
 
 
         #region Pressure collection helpers
         #region Pressure collection helpers
+        public void InitPressure()
+        {
+            for (int i = 0; i < _pressureSamples.Length; i++)
+            {
+                _pressureSamples[i] = new List<(DateTime, float)>();
+            }
+            for (int i = 0; i < _pressureCts.Length; i++)
+            {
+                _pressureCts[i] = new CancellationTokenSource();
+            }
+            for (int i = 0; i < _pressureTimeoutCts.Length; i++)
+            {
+                _pressureTimeoutCts[i] = new CancellationTokenSource();
+            }
+            for (int i = 0; i < _pressureLinkedCts.Length; i++)
+            {
+                _pressureLinkedCts[i] = new CancellationTokenSource();
+            }
+        }
         /// <summary>
         /// <summary>
         /// 开始采集压力值
         /// 开始采集压力值
         /// </summary>
         /// </summary>
@@ -2384,9 +2407,9 @@ namespace TeamAAS_VP.Core
             try
             try
             {
             {
                 // cancel existing if any
                 // cancel existing if any
-                _pressureCts[Index]?.Cancel();
-                _pressureTimeoutCts[Index]?.Cancel();
-                _pressureLinkedCts[Index]?.Dispose();
+                //_pressureCts[Index]?.Cancel();
+                //_pressureTimeoutCts[Index]?.Cancel();
+                //_pressureLinkedCts[Index]?.Dispose();
                 _pressureSamples[Index]?.Clear();
                 _pressureSamples[Index]?.Clear();
 
 
                 _pressureCts[Index] = new CancellationTokenSource();
                 _pressureCts[Index] = new CancellationTokenSource();
@@ -2432,6 +2455,7 @@ namespace TeamAAS_VP.Core
             catch (Exception ex)
             catch (Exception ex)
             {
             {
                 LogHelper.WriteLogError("StartPressureCollection error", ex);
                 LogHelper.WriteLogError("StartPressureCollection error", ex);
+                SendTaskMessage($"压力采集时出错:{ex.Message}", MessageLevel.Error);
             }
             }
         }
         }
 
 
@@ -2447,7 +2471,7 @@ namespace TeamAAS_VP.Core
             try
             try
             {
             {
                 // cancel sampling
                 // cancel sampling
-                _pressureCts[Index]?.Cancel();
+                //_pressureCts[Index]?.Cancel();
                 // allow worker to observe cancel
                 // allow worker to observe cancel
                 await Task.Delay(50);
                 await Task.Delay(50);