diff --git a/SCADA/App.config b/SCADA/App.config
index e2bc4c9..ac6d2ff 100644
--- a/SCADA/App.config
+++ b/SCADA/App.config
@@ -30,10 +30,12 @@
-
-
-
-
+
+
+
+
+
+
diff --git a/SCADA/Funtion/MIS_CurveCollector.cs b/SCADA/Funtion/MIS_CurveCollector.cs
index 071774e..200a8e9 100644
--- a/SCADA/Funtion/MIS_CurveCollector.cs
+++ b/SCADA/Funtion/MIS_CurveCollector.cs
@@ -39,6 +39,10 @@ namespace MesWork
ConfigurationManager.AppSettings["CurveStableWindowSize"], out int _stableWindowSize)
? _stableWindowSize : 20;
+ private static readonly int CurveStableSkipStartPointCount = int.TryParse(
+ ConfigurationManager.AppSettings["CurveStableSkipStartPointCount"], out int _skipStartPointCount)
+ ? _skipStartPointCount : 0;
+
///
/// 允许工作后启动曲线采集,每个工位同一时间只保留一个采集段。
///
@@ -236,18 +240,19 @@ namespace MesWork
}
///
- /// 找连续20点中极差最小的一段,去掉一个最大值和一个最小值后取平均。
+ /// 跳过前置配置点数后,找连续稳定窗口中极差最小的一段,去掉一个最大值和一个最小值后取平均。
///
private bool CurveCollector_CalculateStableWeight(List weights, out decimal stableWeight, out int startSeq, out int endSeq)
{
stableWeight = 0;
startSeq = 0;
endSeq = 0;
- if (weights == null || weights.Count < CurveStableWindowSize) return false;
+ int skipStartPointCount = Math.Max(0, CurveStableSkipStartPointCount);
+ if (weights == null || weights.Count - skipStartPointCount < CurveStableWindowSize) return false;
int bestStart = 0; // 0-based窗口起点,保存时转成1-based序号
decimal bestRange = decimal.MaxValue;
- for (int i = 0; i <= weights.Count - CurveStableWindowSize; i++)
+ for (int i = skipStartPointCount; i <= weights.Count - CurveStableWindowSize; i++)
{
decimal min = weights[i];
decimal max = weights[i];