瀏覽代碼

UI SetPoint 和实际下发同步

jiangjy 1 天之前
父節點
當前提交
41a1cdeaee
共有 1 個文件被更改,包括 37 次插入8 次删除
  1. 37 8
      Furnace/FurnaceRT/Devices/IoMFC.cs

+ 37 - 8
Furnace/FurnaceRT/Devices/IoMFC.cs

@@ -15,6 +15,7 @@ using System;
 using System.Collections;
 using System.Collections.Generic;
 using System.Diagnostics;
+using System.Threading.Tasks;
 using System.Xml;
 
 namespace FurnaceRT.Equipments.PMs.Devices
@@ -51,10 +52,7 @@ namespace FurnaceRT.Equipments.PMs.Devices
                     //var setpoint = Scale != 0 ? (float)(value * _maxScale / Scale) : value;
                     if (_isFloatAioType)
                     {
-                        if (SC.ContainsItem($"{Module}.MFC.{Name}.DelayTime") && SC.GetValue<double>($"{Module}.MFC.{Name}.DelayTime") > 0)
-                            _aoFlow.SetPulseValue((float)value, TimeSpan.FromSeconds(SC.GetValue<double>($"{Module}.MFC.{Name}.DelayTime")));
-                        else
-                            _aoFlow.FloatValue = (float)value;
+                        _aoFlow.FloatValue = (float)value;
 
                     }
                     else
@@ -430,8 +428,17 @@ namespace FurnaceRT.Equipments.PMs.Devices
                     ramp = (float)_scN2Scale.DoubleValue * ramp;
                 }
             }
-
-            SetPoint = setpoint;
+            if (SC.ContainsItem($"{Module}.MFC.{Name}.DelayTime") && SC.GetValue<double>($"{Module}.MFC.{Name}.DelayTime") > 0)
+            {
+                Task.Delay(TimeSpan.FromSeconds(SC.GetValue<double>($"{Module}.MFC.{Name}.DelayTime"))).ContinueWith(a =>
+                {
+                    SetPoint = _setpoint;
+                });
+            }
+            else
+            {
+                SetPoint = _setpoint;
+            }
             if (_aoRamp != null)
             {
                 _aoRamp.FloatValue = ramp;
@@ -473,7 +480,17 @@ namespace FurnaceRT.Equipments.PMs.Devices
 
             }
 
-            SetPoint = setpoint;
+            if (SC.ContainsItem($"{Module}.MFC.{Name}.DelayTime") && SC.GetValue<double>($"{Module}.MFC.{Name}.DelayTime") > 0)
+            {
+                Task.Delay(TimeSpan.FromSeconds(SC.GetValue<double>($"{Module}.MFC.{Name}.DelayTime"))).ContinueWith(a =>
+                {
+                    SetPoint = setpoint;
+                });
+            }
+            else
+            {
+                SetPoint = setpoint;
+            }
             _ramping = ramp;
             if (_aoRamp != null)
                 _aoRamp.FloatValue = ramp;
@@ -504,7 +521,19 @@ namespace FurnaceRT.Equipments.PMs.Devices
             float ramp = 0;
             if (paras.Length > 1)
                 float.TryParse(paras[1].ToString(), out ramp);
-            _setpoint = setpoint;
+        
+
+            if (SC.ContainsItem($"{Module}.MFC.{Name}.DelayTime") && SC.GetValue<double>($"{Module}.MFC.{Name}.DelayTime") > 0)
+            {
+                Task.Delay(TimeSpan.FromSeconds(SC.GetValue<double>($"{Module}.MFC.{Name}.DelayTime"))).ContinueWith(a =>
+                {
+                    _setpoint = setpoint;
+                });
+            }
+            else
+            {
+                _setpoint = setpoint;
+            }
             _ramping = ramp;
             if (_aoRamp != null)
                 _aoRamp.FloatValue = ramp;