Browse Source

mfc ao sv是否需要延迟

jiangjy 1 week ago
parent
commit
4037d77e3d

+ 21 - 0
Furnace/FurnaceRT/Config/System.sccfg

@@ -5015,6 +5015,7 @@
 			<config default="false" name="EnableLogMessage" description="Enable log message" max="" min="" paramter="" tag="" unit="" type="Bool" />
 			<config default="3" name="ReconnectCount" description="MFC reconnect count" max="1000" min="0" paramter="" tag="" unit="s" type="Integer" />
 			<configs name="MFC1" display="MFC1">
+				<config default="0" name="DelayTime" description="DelayTime" max="999999" min="0" paramter="" tag="" unit="" type="Double" />
 				<config default="3" name="N2Scale" description="Scale" max="999999" min="0" paramter="" tag="" unit="" type="Double" />
 				<config default="12000" name="PhyScale" description="Physical Scale" max="999999" min="0" paramter="" tag="" unit="" type="Double" />
 				<config default="SLM" name="FlowUnit" description="Flow Unit" max="" min="" paramter="SCCM;SLM" tag="ReadOnlySelection" unit="" type="String" />
@@ -5032,6 +5033,7 @@
 				<config default="0" name="SetLastRamping" description="Set Ramping" max="999999" min="0" paramter="" tag="" unit="sccm" type="Double" visible="false" />
 			</configs>
 			<configs name="MFC2" display="MFC2">
+				<config default="0" name="DelayTime" description="DelayTime" max="999999" min="0" paramter="" tag="" unit="" type="Double" />
 				<config default="3" name="N2Scale" description="Scale" max="999999" min="0" paramter="" tag="" unit="" type="Double" />
 				<config default="12000" name="PhyScale" description="Physical Scale" max="999999" min="0" paramter="" tag="" unit="" type="Double" />
 				<config default="SLM" name="FlowUnit" description="Flow Unit" max="" min="" paramter="SCCM;SLM" tag="ReadOnlySelection" unit="" type="String" />
@@ -5049,6 +5051,7 @@
 				<config default="0" name="SetLastRamping" description="Set Ramping" max="999999" min="0" paramter="" tag="" unit="sccm" type="Double" visible="false" />
 			</configs>
 			<configs name="MFC3" display="MFC3">
+				<config default="0" name="DelayTime" description="DelayTime" max="999999" min="0" paramter="" tag="" unit="" type="Double" />
 				<config default="10" name="N2Scale" description="Scale" max="999999" min="0" paramter="" tag="" unit="" type="Double" />
 				<config default="12000" name="PhyScale" description="Physical Scale" max="999999" min="0" paramter="" tag="" unit="" type="Double" />
 				<config default="SLM" name="FlowUnit" description="Flow Unit" max="" min="" paramter="SCCM;SLM" tag="ReadOnlySelection" unit="" type="String" />
@@ -5066,6 +5069,7 @@
 				<config default="0" name="SetLastRamping" description="Set Ramping" max="999999" min="0" paramter="" tag="" unit="sccm" type="Double" visible="false" />
 			</configs>
 			<configs name="MFC4" display="MFC4">
+				<config default="0" name="DelayTime" description="DelayTime" max="999999" min="0" paramter="" tag="" unit="" type="Double" />
 				<config default="10" name="N2Scale" description="Scale" max="999999" min="0" paramter="" tag="" unit="" type="Double" />
 				<config default="12000" name="PhyScale" description="Physical Scale" max="999999" min="0" paramter="" tag="" unit="" type="Double" />
 				<config default="SLM" name="FlowUnit" description="Flow Unit" max="" min="" paramter="SCCM;SLM" tag="ReadOnlySelection" unit="" type="String" />
@@ -5083,6 +5087,7 @@
 				<config default="0" name="SetLastRamping" description="Set Ramping" max="999999" min="0" paramter="" tag="" unit="sccm" type="Double" visible="false" />
 			</configs>
 			<configs name="MFC5" display="MFC5">
+				<config default="0" name="DelayTime" description="DelayTime" max="999999" min="0" paramter="" tag="" unit="" type="Double" />
 				<config default="10" name="N2Scale" description="Scale" max="999999" min="0" paramter="" tag="" unit="" type="Double" />
 				<config default="12000" name="PhyScale" description="Physical Scale" max="999999" min="0" paramter="" tag="" unit="" type="Double" />
 				<config default="SLM" name="FlowUnit" description="Flow Unit" max="" min="" paramter="SCCM;SLM" tag="ReadOnlySelection" unit="" type="String" />
@@ -5100,6 +5105,7 @@
 				<config default="0" name="SetLastRamping" description="Set Ramping" max="999999" min="0" paramter="" tag="" unit="sccm" type="Double" visible="false" />
 			</configs>
 			<configs name="MFC6" display="MFC6">
+				<config default="0" name="DelayTime" description="DelayTime" max="999999" min="0" paramter="" tag="" unit="" type="Double" />
 				<config default="10" name="N2Scale" description="Scale" max="999999" min="0" paramter="" tag="" unit="" type="Double" />
 				<config default="12000" name="PhyScale" description="Physical Scale" max="999999" min="0" paramter="" tag="" unit="" type="Double" />
 				<config default="SLM" name="FlowUnit" description="Flow Unit" max="" min="" paramter="SCCM;SLM" tag="ReadOnlySelection" unit="" type="String" />
@@ -5117,6 +5123,7 @@
 				<config default="0" name="SetLastRamping" description="Set Ramping" max="999999" min="0" paramter="" tag="" unit="sccm" type="Double" visible="false" />
 			</configs>
 			<configs name="MFC7" display="MFC7">
+				<config default="0" name="DelayTime" description="DelayTime" max="999999" min="0" paramter="" tag="" unit="" type="Double" />
 				<config default="3" name="N2Scale" description="Scale" max="999999" min="0" paramter="" tag="" unit="" type="Double" />
 				<config default="12000" name="PhyScale" description="Physical Scale" max="999999" min="0" paramter="" tag="" unit="" type="Double" />
 				<config default="SLM" name="FlowUnit" description="Flow Unit" max="" min="" paramter="SCCM;SLM" tag="ReadOnlySelection" unit="" type="String" />
@@ -5134,6 +5141,7 @@
 				<config default="0" name="SetLastRamping" description="Set Ramping" max="999999" min="0" paramter="" tag="" unit="sccm" type="Double" visible="false" />
 			</configs>
 			<configs name="MFC8" display="MFC8">
+				<config default="0" name="DelayTime" description="DelayTime" max="999999" min="0" paramter="" tag="" unit="" type="Double" />
 				<config default="3" name="N2Scale" description="Scale" max="999999" min="0" paramter="" tag="" unit="" type="Double" />
 				<config default="12000" name="PhyScale" description="Physical Scale" max="999999" min="0" paramter="" tag="" unit="" type="Double" />
 				<config default="SLM" name="FlowUnit" description="Flow Unit" max="" min="" paramter="SCCM;SLM" tag="ReadOnlySelection" unit="" type="String" />
@@ -5151,6 +5159,7 @@
 				<config default="0" name="SetLastRamping" description="Set Ramping" max="999999" min="0" paramter="" tag="" unit="sccm" type="Double" visible="false" />
 			</configs>
 			<configs name="MFC9" display="MFC9">
+				<config default="0" name="DelayTime" description="DelayTime" max="999999" min="0" paramter="" tag="" unit="" type="Double" />
 				<config default="10" name="N2Scale" description="Scale" max="999999" min="0" paramter="" tag="" unit="" type="Double" />
 				<config default="12000" name="PhyScale" description="Physical Scale" max="999999" min="0" paramter="" tag="" unit="" type="Double" />
 				<config default="SLM" name="FlowUnit" description="Flow Unit" max="" min="" paramter="SCCM;SLM" tag="ReadOnlySelection" unit="" type="String" />
@@ -5168,6 +5177,7 @@
 				<config default="0" name="SetLastRamping" description="Set Ramping" max="999999" min="0" paramter="" tag="" unit="sccm" type="Double" visible="false" />
 			</configs>
 			<configs name="MFC10" display="MFC10">
+				<config default="0" name="DelayTime" description="DelayTime" max="999999" min="0" paramter="" tag="" unit="" type="Double" />
 				<config default="10" name="N2Scale" description="Scale" max="999999" min="0" paramter="" tag="" unit="" type="Double" />
 				<config default="12000" name="PhyScale" description="Physical Scale" max="999999" min="0" paramter="" tag="" unit="" type="Double" />
 				<config default="SLM" name="FlowUnit" description="Flow Unit" max="" min="" paramter="SCCM;SLM" tag="ReadOnlySelection" unit="" type="String" />
@@ -5185,6 +5195,7 @@
 				<config default="0" name="SetLastRamping" description="Set Ramping" max="999999" min="0" paramter="" tag="" unit="sccm" type="Double" visible="false" />
 			</configs>
 			<configs name="MFC11" display="MFC11">
+				<config default="0" name="DelayTime" description="DelayTime" max="999999" min="0" paramter="" tag="" unit="" type="Double" />
 				<config default="20" name="N2Scale" description="Scale" max="999999" min="0" paramter="" tag="" unit="" type="Double" />
 				<config default="12000" name="PhyScale" description="Physical Scale" max="999999" min="0" paramter="" tag="" unit="" type="Double" />
 				<config default="SLM" name="FlowUnit" description="Flow Unit" max="" min="" paramter="SCCM;SLM" tag="ReadOnlySelection" unit="" type="String" />
@@ -5202,6 +5213,7 @@
 				<config default="0" name="SetLastRamping" description="Set Ramping" max="999999" min="0" paramter="" tag="" unit="sccm" type="Double" visible="false" />
 			</configs>
 			<configs name="MFC12" display="MFC12">
+				<config default="0" name="DelayTime" description="DelayTime" max="999999" min="0" paramter="" tag="" unit="" type="Double" />
 				<config default="1" name="N2Scale" description="Scale" max="999999" min="0" paramter="" tag="" unit="" type="Double" />
 				<config default="12000" name="PhyScale" description="Physical Scale" max="999999" min="0" paramter="" tag="" unit="" type="Double" />
 				<config default="SLM" name="FlowUnit" description="Flow Unit" max="" min="" paramter="SCCM;SLM" tag="ReadOnlySelection" unit="" type="String" />
@@ -5219,6 +5231,7 @@
 				<config default="0" name="SetLastRamping" description="Set Ramping" max="999999" min="0" paramter="" tag="" unit="sccm" type="Double" visible="false" />
 			</configs>
 			<configs name="MFC13" display="MFC13">
+				<config default="0" name="DelayTime" description="DelayTime" max="999999" min="0" paramter="" tag="" unit="" type="Double" />
 				<config default="0.5" name="N2Scale" description="Scale" max="999999" min="0" paramter="" tag="" unit="" type="Double" />
 				<config default="12000" name="PhyScale" description="Physical Scale" max="999999" min="0" paramter="" tag="" unit="" type="Double" />
 				<config default="SLM" name="FlowUnit" description="Flow Unit" max="" min="" paramter="SCCM;SLM" tag="ReadOnlySelection" unit="" type="String" />
@@ -5236,6 +5249,7 @@
 				<config default="0" name="SetLastRamping" description="Set Ramping" max="999999" min="0" paramter="" tag="" unit="sccm" type="Double" visible="false" />
 			</configs>
 			<configs name="MFC14" display="MFC14">
+				<config default="0" name="DelayTime" description="DelayTime" max="999999" min="0" paramter="" tag="" unit="" type="Double" />
 				<config default="1" name="N2Scale" description="Scale" max="999999" min="0" paramter="" tag="" unit="" type="Double" />
 				<config default="12000" name="PhyScale" description="Physical Scale" max="999999" min="0" paramter="" tag="" unit="" type="Double" />
 				<config default="SLM" name="FlowUnit" description="Flow Unit" max="" min="" paramter="SCCM;SLM" tag="ReadOnlySelection" unit="" type="String" />
@@ -5253,6 +5267,7 @@
 				<config default="0" name="SetLastRamping" description="Set Ramping" max="999999" min="0" paramter="" tag="" unit="sccm" type="Double" visible="false" />
 			</configs>
 			<configs name="MFC15" display="MFC15">
+				<config default="0" name="DelayTime" description="DelayTime" max="999999" min="0" paramter="" tag="" unit="" type="Double" />
 				<config default="5" name="N2Scale" description="Scale" max="999999" min="0" paramter="" tag="" unit="" type="Double" />
 				<config default="12000" name="PhyScale" description="Physical Scale" max="999999" min="0" paramter="" tag="" unit="" type="Double" />
 				<config default="SLM" name="FlowUnit" description="Flow Unit" max="" min="" paramter="SCCM;SLM" tag="ReadOnlySelection" unit="" type="String" />
@@ -5270,6 +5285,7 @@
 				<config default="0" name="SetLastRamping" description="Set Ramping" max="999999" min="0" paramter="" tag="" unit="sccm" type="Double" visible="false" />
 			</configs>
 			<configs name="MFC16" display="MFC16">
+				<config default="0" name="DelayTime" description="DelayTime" max="999999" min="0" paramter="" tag="" unit="" type="Double" />
 				<config default="5" name="N2Scale" description="Scale" max="999999" min="0" paramter="" tag="" unit="" type="Double" />
 				<config default="12000" name="PhyScale" description="Physical Scale" max="999999" min="0" paramter="" tag="" unit="" type="Double" />
 				<config default="SLM" name="FlowUnit" description="Flow Unit" max="" min="" paramter="SCCM;SLM" tag="ReadOnlySelection" unit="" type="String" />
@@ -5287,6 +5303,7 @@
 				<config default="0" name="SetLastRamping" description="Set Ramping" max="999999" min="0" paramter="" tag="" unit="sccm" type="Double" visible="false" />
 			</configs>
 			<configs name="MFC17" display="MFC17">
+				<config default="0" name="DelayTime" description="DelayTime" max="999999" min="0" paramter="" tag="" unit="" type="Double" />
 				<config default="1" name="N2Scale" description="Scale" max="999999" min="0" paramter="" tag="" unit="" type="Double" />
 				<config default="12000" name="PhyScale" description="Physical Scale" max="999999" min="0" paramter="" tag="" unit="" type="Double" />
 				<config default="SLM" name="FlowUnit" description="Flow Unit" max="" min="" paramter="SCCM;SLM" tag="ReadOnlySelection" unit="" type="String" />
@@ -5304,6 +5321,7 @@
 				<config default="0" name="SetLastRamping" description="Set Ramping" max="999999" min="0" paramter="" tag="" unit="sccm" type="Double" visible="false" />
 			</configs>
 			<configs name="MFC31" display="MFC31">
+				<config default="0" name="DelayTime" description="DelayTime" max="999999" min="0" paramter="" tag="" unit="" type="Double" />
 				<config default="1" name="N2Scale" description="Scale" max="999999" min="0" paramter="" tag="" unit="" type="Double" />
 				<config default="12000" name="PhyScale" description="Physical Scale" max="999999" min="0" paramter="" tag="" unit="" type="Double" />
 				<config default="SLM" name="FlowUnit" description="Flow Unit" max="" min="" paramter="SCCM;SLM" tag="ReadOnlySelection" unit="" type="String" />
@@ -5321,6 +5339,7 @@
 				<config default="0" name="SetLastRamping" description="Set Ramping" max="999999" min="0" paramter="" tag="" unit="sccm" type="Double" visible="false" />
 			</configs>
 			<configs name="MFC32" display="MFC32">
+				<config default="0" name="DelayTime" description="DelayTime" max="999999" min="0" paramter="" tag="" unit="" type="Double" />
 				<config default="1" name="N2Scale" description="Scale" max="999999" min="0" paramter="" tag="" unit="" type="Double" />
 				<config default="12000" name="PhyScale" description="Physical Scale" max="999999" min="0" paramter="" tag="" unit="" type="Double" />
 				<config default="SLM" name="FlowUnit" description="Flow Unit" max="" min="" paramter="SCCM;SLM" tag="ReadOnlySelection" unit="" type="String" />
@@ -5338,6 +5357,7 @@
 				<config default="0" name="SetLastRamping" description="Set Ramping" max="999999" min="0" paramter="" tag="" unit="sccm" type="Double" visible="false" />
 			</configs>
 			<configs name="MFC51" display="MFC51">
+				<config default="0" name="DelayTime" description="DelayTime" max="999999" min="0" paramter="" tag="" unit="" type="Double" />
 				<config default="500" name="N2Scale" description="Scale" max="999999" min="0" paramter="" tag="" unit="" type="Double" />
 				<config default="12000" name="PhyScale" description="Physical Scale" max="999999" min="0" paramter="" tag="" unit="" type="Double" />
 				<config default="SLM" name="FlowUnit" description="Flow Unit" max="" min="" paramter="SCCM;SLM" tag="ReadOnlySelection" unit="" type="String" />
@@ -5355,6 +5375,7 @@
 				<config default="0" name="SetLastRamping" description="Set Ramping" max="999999" min="0" paramter="" tag="" unit="sccm" type="Double" visible="false" />
 			</configs>
 			<configs name="MFC57" display="MFC57">
+				<config default="0" name="DelayTime" description="DelayTime" max="999999" min="0" paramter="" tag="" unit="" type="Double" />
 				<config default="500" name="N2Scale" description="Scale" max="999999" min="0" paramter="" tag="" unit="" type="Double" />
 				<config default="12000" name="PhyScale" description="Physical Scale" max="999999" min="0" paramter="" tag="" unit="" type="Double" />
 				<config default="SLM" name="FlowUnit" description="Flow Unit" max="" min="" paramter="SCCM;SLM" tag="ReadOnlySelection" unit="" type="String" />

+ 16 - 10
Furnace/FurnaceRT/Devices/IoMFC.cs

@@ -50,7 +50,13 @@ namespace FurnaceRT.Equipments.PMs.Devices
                 {
                     //var setpoint = Scale != 0 ? (float)(value * _maxScale / Scale) : value;
                     if (_isFloatAioType)
-                        _aoFlow.FloatValue = (float)value;
+                    {
+                        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;
+
+                    }
                     else
                         _aoFlow.Value = (short)value;
                 }
@@ -146,7 +152,7 @@ namespace FurnaceRT.Equipments.PMs.Devices
                     VirtualFeedBack = (float)VirtualFeedBack,
                     VirtualAlarmWatchTable = VirtualAlarmWatchTable,
                     VirtualRamping = VirtualRamping,
-                    IsInstalled= IsMFCInstalled
+                    IsInstalled = IsMFCInstalled
                 };
 
                 return data;
@@ -279,7 +285,7 @@ namespace FurnaceRT.Equipments.PMs.Devices
         public bool Initialize()
         {
             DATA.Subscribe($"{Module}.{Name}.DeviceData", () => DeviceData);
-          
+
             DATA.Subscribe($"{Module}.{Name}.Feedback", () => FeedBack);
             DATA.Subscribe($"{Module}.{Name}.SetPoint", () => SetPoint);
 
@@ -319,7 +325,7 @@ namespace FurnaceRT.Equipments.PMs.Devices
         }
         public void Monitor()
         {
-            if(!string.IsNullOrEmpty(_writeLog))
+            if (!string.IsNullOrEmpty(_writeLog))
             {
                 LOG.Write(_writeLog);
                 _writeLog = "";
@@ -397,12 +403,12 @@ namespace FurnaceRT.Equipments.PMs.Devices
                 float.TryParse(paras[6].ToString(), out float waitLow);
                 var waitUnit = paras[7].ToString();
 
-                if(waitUnit.ToLower() == "%sv")
+                if (waitUnit.ToLower() == "%sv")
                 {
                     _waitHigh = setpoint * waitHigh;
                     _waitLow = setpoint * waitLow;
                 }
-                else if(waitUnit.ToLower() == "%fs")
+                else if (waitUnit.ToLower() == "%fs")
                 {
                     _waitHigh = (float)_scN2Scale.DoubleValue * waitHigh;
                     _waitLow = (float)_scN2Scale.DoubleValue * waitLow;
@@ -469,8 +475,8 @@ namespace FurnaceRT.Equipments.PMs.Devices
 
             SetPoint = setpoint;
             _ramping = ramp;
-            if(_aoRamp!=null)
-            _aoRamp.FloatValue = ramp;
+            if (_aoRamp != null)
+                _aoRamp.FloatValue = ramp;
             LOG.Write($"{Name} setpoint={setpoint}, ramp={ramp}");
 
             return true;
@@ -500,8 +506,8 @@ namespace FurnaceRT.Equipments.PMs.Devices
                 float.TryParse(paras[1].ToString(), out ramp);
             _setpoint = setpoint;
             _ramping = ramp;
-            if(_aoRamp!=null)
-            _aoRamp.FloatValue = ramp;
+            if (_aoRamp != null)
+                _aoRamp.FloatValue = ramp;
             LOG.Write($"{Name} setpoint={setpoint}, ramp={ramp}");
 
             return true;

+ 0 - 2
Furnace/FurnaceUI/Views/Operations/Maintenances/ManualSetViewModel.cs

@@ -1850,7 +1850,6 @@ namespace FurnaceUI.Views.Recipes
                         x.IsRampngChanged = true;
                     }
                 });
-                MFCDataList.Clear();
             }
 
             var pressStr = GetPressString();
@@ -1890,7 +1889,6 @@ namespace FurnaceUI.Views.Recipes
                         x.IsRampngChanged = true;
                     }
                 });
-                TempList.Clear();
             }
             if (!string.IsNullOrEmpty(LoaderCommand))
             {