Browse Source

fix 温度sv加延迟(验证模式切换的时候 mini8部分温区收不到值)

jiangjy 1 week ago
parent
commit
26f7b46b32
2 changed files with 26 additions and 2 deletions
  1. 19 0
      FrameworkLocal/Common/IOCore/IOAccessor.cs
  2. 7 2
      Furnace/FurnaceRT/Devices/IoHeater.cs

+ 19 - 0
FrameworkLocal/Common/IOCore/IOAccessor.cs

@@ -333,6 +333,25 @@ namespace Aitex.Core.RT.IOCore
                 provider.SetValue(this, value);
             }
         }
+
+
+
+        public async Task<bool> SetPulseValue( float value, int milliSecondsDelay)
+        {
+
+            IIoProvider provider = IoProviderManager.Instance.GetProvider(this.Provider);
+        
+            await Task.Delay(milliSecondsDelay);
+
+            if (_floatValues[index] != value)
+            {
+                LOG.Write($"Write AO[{Name}] from {_floatValues[index]} to {value}");
+            }
+
+            _floatValues[index] = value;
+            return true;
+
+        }
     }
 
 

+ 7 - 2
Furnace/FurnaceRT/Devices/IoHeater.cs

@@ -235,12 +235,17 @@ namespace FurnaceRT.Devices
                         if (ControlMode == 0)
                         {
                             if (Math.Abs(_aoCascadeControlModeSetPoint.FloatValue - value) > 0.0001)
-                                _aoCascadeControlModeSetPoint.FloatValue = value;
+                            {
+                                _aoCascadeControlModeSetPoint.SetPulseValue(value, 1500);
+                            }
                         }
                         else
                         {
                             if (Math.Abs(_aoHeaterControlModeSetPoint.FloatValue - value) > 0.0001)
-                                _aoHeaterControlModeSetPoint.FloatValue = value;
+                            {
+                                _aoHeaterControlModeSetPoint.SetPulseValue(value, 1500);
+
+                            }
                         }
                     }
                 }