Browse Source

fix 温度sv加延迟

SenGao 5 days ago
parent
commit
e918f5b919

+ 1 - 1
.gitignore

@@ -1,5 +1,5 @@
 .vs/
-Binary/
 packages/
 obj/
 bin/
+Output/

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

@@ -330,6 +330,23 @@ 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;
+
+        }
     }
 
 

+ 2 - 3
Furnace/Furnace.sln

@@ -1,7 +1,7 @@
 
 Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio Version 16
-VisualStudioVersion = 16.0.34301.259
+# Visual Studio Version 17
+VisualStudioVersion = 17.14.36603.0 d17.14
 MinimumVisualStudioVersion = 10.0.40219.1
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FurnaceSimulator", "FurnaceSimulator\FurnaceSimulator.csproj", "{FDF5BB48-689B-4B88-BABC-110F3DC07C67}"
 	ProjectSection(ProjectDependencies) = postProject
@@ -80,7 +80,6 @@ Global
 		{290FE38F-45F9-408C-B25B-C899B467E3F8}.Release|x86.ActiveCfg = Release|Any CPU
 		{290FE38F-45F9-408C-B25B-C899B467E3F8}.Release|x86.Build.0 = Release|Any CPU
 		{C842F167-DB8E-4827-ACDD-74215AF5100A}.Debug|Any CPU.ActiveCfg = Debug|x86
-		{C842F167-DB8E-4827-ACDD-74215AF5100A}.Debug|Any CPU.Build.0 = Debug|x86
 		{C842F167-DB8E-4827-ACDD-74215AF5100A}.Debug|x86.ActiveCfg = Debug|x86
 		{C842F167-DB8E-4827-ACDD-74215AF5100A}.Debug|x86.Build.0 = Debug|x86
 		{C842F167-DB8E-4827-ACDD-74215AF5100A}.Release|Any CPU.ActiveCfg = Release|x86

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

@@ -230,12 +230,18 @@ 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);
+                            }
+                                
                         }
                     }
                 }