Browse Source

revise wago simulator

chenzk 1 month ago
parent
commit
9a000dbe19

+ 1 - 1
CyberX8_RT/Config/Devices/ModuleIOCfg.xml

@@ -515,7 +515,7 @@
 	<IO Name="Metal4.CellFlow" IOName="r_PUMP4_FLOW"/>
 	<IO Name="Metal4.CellPump" IOName="c_METAL4_PUMP_ON"/>
 	<IO Name="Metal4.Circulation" IOName="c_METAL4_CIRCULATION"/>
-	<IO Name="Metal4.WaferHolderClamp" IOName="c_METAL4_WS_CLAMP"/>
+	<IO Name="Metal4.WaferHolderClamp" IOName="c_METAL4_WH_CLAMP"/>
 	</Module>
 	<Module Name="Metal5">
 	<IO Name="Metal5.CellFlow" IOName="r_PUMP5_FLOW"/>

+ 1 - 1
CyberX8_RT/Devices/Metal/StandardHotMetalCellPumpRoutine.cs

@@ -55,7 +55,7 @@ namespace CyberX8_RT.Devices.Metal
         /// <returns></returns>
         public RState Monitor()
         {
-            Runner.Run(PumpStep.Pump, ExecutePump, () => { return _device.MetalDeviceData.CellPump==_pumpOn; }, _delay_1ms)
+            Runner.Run(PumpStep.Pump, ExecutePump, () => { return _device.MetalDeviceData.CellPump ==_pumpOn; }, _delay_1s)
                 .Delay(PumpStep.Delay, _cellFlowFaultHoldOffTime)
                 .RunIf(PumpStep.CheckFlow, _pumpOn, CheckFlow, NullFun, _delay_1ms)
                 .End(PumpStep.End, NullFun, _delay_1ms);

+ 25 - 4
CyberX8_Simulator/Devices/WagoSocketSimulator.cs

@@ -1,6 +1,7 @@
 using Aitex.Common.Util;
 using Aitex.Core.RT.Device;
 using Aitex.Core.RT.Log;
+using Aitex.Core.UI.Control;
 using Aitex.Core.Util;
 using MECF.Framework.Common.Device.Festo;
 using MECF.Framework.Common.Device.Wago;
@@ -384,7 +385,7 @@ namespace CyberX8_Simulator.Devices
             if (AINameIndexDic.ContainsKey("r_SYSTEM_EXHAUST")) AIShorts[AINameIndexDic["r_SYSTEM_EXHAUST"]] = 0x3A98;
             if (DONameIndexDic.ContainsKey("c_HVD_1_ENABLE")) DOBytes[DONameIndexDic["c_HVD_1_ENABLE"]] = 1;
             if (DONameIndexDic.ContainsKey("c_HVD_2_ENABLE")) DOBytes[DONameIndexDic["c_HVD_2_ENABLE"]] = 1;
-
+            //QDR
             if (AINameIndexDic.ContainsKey("r_QDRD1_WATER_LEVEL")) AIShorts[AINameIndexDic["r_QDRD1_WATER_LEVEL"]] = 4000;
             if (AINameIndexDic.ContainsKey("r_QDRD2_WATER_LEVEL")) AIShorts[AINameIndexDic["r_QDRD2_WATER_LEVEL"]] = 4000;
             if (AINameIndexDic.ContainsKey("r_QDRD3_WATER_LEVEL")) AIShorts[AINameIndexDic["r_QDRD3_WATER_LEVEL"]] = 4000;
@@ -411,6 +412,11 @@ namespace CyberX8_Simulator.Devices
             if (DINameIndexDic.ContainsKey("r_SRD2_200_FLIPPER1_OUT")) DIBytes[DINameIndexDic["r_SRD2_200_FLIPPER1_OUT"]] = 1;
             if (DINameIndexDic.ContainsKey("r_SRD2_200_FLIPPER2_OUT")) DIBytes[DINameIndexDic["r_SRD2_200_FLIPPER2_OUT"]] = 1;
             if (DINameIndexDic.ContainsKey("r_SRD2_200_FLIPPER3_OUT")) DIBytes[DINameIndexDic["r_SRD2_200_FLIPPER3_OUT"]] = 1;
+            //Metal
+            if (AINameIndexDic.ContainsKey("r_PUMP4_FLOW")) AIShorts[AINameIndexDic["r_PUMP4_FLOW"]] = 3277;
+
+            //Facility
+            if (AINameIndexDic.ContainsKey("r_DI_WATER_PRESSURE")) AIShorts[AINameIndexDic["r_DI_WATER_PRESSURE"]] = 16000;
 
         }
         #region 公共方法
@@ -717,7 +723,7 @@ namespace CyberX8_Simulator.Devices
             return bytes;
         }
         /// <summary>
-        /// 定时器
+        /// loader 定时器
         /// </summary>
         /// <returns></returns>
         private bool OnTimer()
@@ -731,7 +737,8 @@ namespace CyberX8_Simulator.Devices
         /// <returns></returns>
         private bool OnTimer1()
         {
-            RinseWaterLelveSimulator();
+            RinseWaterLevelSimulator();
+            PumpFlowSimulator();
             return true;
         }
         #region 模拟方法
@@ -761,7 +768,7 @@ namespace CyberX8_Simulator.Devices
         /// <summary>
         /// QDR水位模拟
         /// </summary>
-        private void RinseWaterLelveSimulator()
+        private void RinseWaterLevelSimulator()
         {
             //QDR1
             if (_rinse1FillValve && AIShorts[AINameIndexDic["r_QDRD1_WATER_LEVEL"]] < 25000)
@@ -819,6 +826,20 @@ namespace CyberX8_Simulator.Devices
                 AIShorts[AINameIndexDic["r_QDRD4_WATER_LEVEL"]] -= 2;
             }
         }
+        /// <summary>
+        /// metal pump流量模拟
+        /// </summary>
+        private void PumpFlowSimulator()
+        {
+            if (DOBytes[DONameIndexDic["c_METAL4_PUMP_ON"]] == 1)
+            {
+                AIShorts[AINameIndexDic["r_PUMP4_FLOW"]] = 6000;
+            }
+            else
+            {
+                AIShorts[AINameIndexDic["r_PUMP4_FLOW"]] = 3277;
+            }
+        }
         #endregion
     }
 }