Browse Source

revise metal init wafersize check,revise efem pick/place srd routine

chenzk 1 week ago
parent
commit
20ef460721

+ 8 - 8
CyberX8_RT/Modules/EFEM/EfemPickRoutine.cs

@@ -106,14 +106,14 @@ namespace CyberX8_RT.Modules.EFEM
                     return false;
                 }
                 //判断arm是否在home位置上
-                JetAxisBase jetAxisBase = DEVICE.GetDevice<JetAxisBase>($"{_targetModule}.Arm");
-                double position = jetAxisBase.MotionData.MotorPosition;
-                bool result = jetAxisBase.CheckPositionIsInStation(position, "Home");
-                if (!result)
-                {
-                    NotifyError(eEvent.ERR_EFEM_ROBOT,  $"{_targetModule} armaxis {position} is not in homed place",-1);
-                    return false;
-                }
+                //JetAxisBase jetAxisBase = DEVICE.GetDevice<JetAxisBase>($"{_targetModule}.Arm");
+                //double position = jetAxisBase.MotionData.MotorPosition;
+                //bool result = jetAxisBase.CheckPositionIsInStation(position, "Home");
+                //if (!result)
+                //{
+                //    NotifyError(eEvent.ERR_EFEM_ROBOT,  $"{_targetModule} armaxis {position} is not in homed place",-1);
+                //    return false;
+                //}
                 if (_srdModule.IsSrdDoorClosed)
                 {
                     NotifyError(eEvent.ERR_EFEM_ROBOT,  $"{_targetModule} door closed, can not pick",-1);

+ 8 - 8
CyberX8_RT/Modules/EFEM/EfemPlaceRoutine.cs

@@ -97,14 +97,14 @@ namespace CyberX8_RT.Modules.EFEM
                     return false;
                 }
                 //判断arm是否在home位置上
-                JetAxisBase jetAxisBase = DEVICE.GetDevice<JetAxisBase>($"{_targetModule}.Arm");
-                double position = jetAxisBase.MotionData.MotorPosition;
-                bool result = jetAxisBase.CheckPositionIsInStation(position, "Home");
-                if (!result)
-                {
-                    NotifyError(eEvent.ERR_EFEM_ROBOT,  $"{_targetModule} armaxis {position} is not in homed place",-1);
-                    return false;
-                }
+                //JetAxisBase jetAxisBase = DEVICE.GetDevice<JetAxisBase>($"{_targetModule}.Arm");
+                //double position = jetAxisBase.MotionData.MotorPosition;
+                //bool result = jetAxisBase.CheckPositionIsInStation(position, "Home");
+                //if (!result)
+                //{
+                //    NotifyError(eEvent.ERR_EFEM_ROBOT,  $"{_targetModule} armaxis {position} is not in homed place",-1);
+                //    return false;
+                //}
                 if (_srdModule.IsSrdDoorClosed)
                 {
                     NotifyError(eEvent.ERR_EFEM_ROBOT, $"{_targetModule} door closed, can not place",-1);

+ 5 - 0
CyberX8_RT/Modules/Metal/StandardHotInitializeRoutine.cs

@@ -166,6 +166,11 @@ namespace CyberX8_RT.Modules.Metal
                 LOG.WriteLog(eEvent.ERR_METAL, Module, $"{reservoir} current recipe is null");
                 return RState.Failed;
             }
+            if(_persistentValue.MetalWaferSize == 0)
+            {
+                LOG.WriteLog(eEvent.ERR_METAL, Module, $"Check Metal cell wafersize first!");
+                return RState.Failed;
+            }
             _resRecipe = reservoirDevice.Recipe;
             return Runner.Start(Module, "Start S&H Initialize");
         }

+ 11 - 11
CyberX8_Simulator/Devices/WagoSocketSimulator.cs

@@ -193,13 +193,13 @@ namespace CyberX8_Simulator.Devices
             if (DONameIndexDic.ContainsKey("c_HVD_1_HIGH") && position == DONameIndexDic["c_HVD_1_HIGH"])
             {
                 value = _doNameWagoDODic["c_HVD_1_HIGH"].Invert ? !value : value;
-                UpdataAIShorts("r_HVD_1_ANALOG", value ? 4500 : 0);
+                UpdataAIShorts("r_HVD_1_ANALOG", value ? 8000 : 0);
             }
 
             if (DONameIndexDic.ContainsKey("c_HVD_2_HIGH") && position == DONameIndexDic["c_HVD_2_HIGH"])
             {
                 value = _doNameWagoDODic["c_HVD_2_HIGH"].Invert ? !value : value;
-                UpdataAIShorts("r_HVD_2_ANALOG", value ? 4500 : 0);
+                UpdataAIShorts("r_HVD_2_ANALOG", value ? 8000 : 0);
             }
             //SRD Simulator
             //Lift UP
@@ -456,7 +456,7 @@ namespace CyberX8_Simulator.Devices
             if (AINameIndexDic.ContainsKey("r_N2_1B_PRESSURE")) AIShorts[AINameIndexDic["r_N2_1B_PRESSURE"]] = 5400;
             if (AINameIndexDic.ContainsKey("r_N2_1A_PRESSURE")) AIShorts[AINameIndexDic["r_N2_1A_PRESSURE"]] = 8900;
             if (AINameIndexDic.ContainsKey("r_N2_2B_PRESSURE")) AIShorts[AINameIndexDic["r_N2_2B_PRESSURE"]] = 5400;
-            if (AINameIndexDic.ContainsKey("r_N2_2A_PRESSURE")) AIShorts[AINameIndexDic["r_N2_2A_PRESSURE"]] = 5400;
+            if (AINameIndexDic.ContainsKey("r_N2_2A_PRESSURE")) AIShorts[AINameIndexDic["r_N2_2A_PRESSURE"]] = 8900;
             if (AINameIndexDic.ContainsKey("r_SYSTEM_VACUUM")) AIShorts[AINameIndexDic["r_SYSTEM_VACUUM"]] = 3276;
             if (AINameIndexDic.ContainsKey("r_CDA_HIGH_PRESSURE")) AIShorts[AINameIndexDic["r_CDA_HIGH_PRESSURE"]] = 10000;
             if (AINameIndexDic.ContainsKey("r_CDA_LOW_PRESSURE")) AIShorts[AINameIndexDic["r_CDA_LOW_PRESSURE"]] = 10000;
@@ -836,11 +836,11 @@ namespace CyberX8_Simulator.Devices
             {
                 AIShorts[AINameIndexDic["r_QDRD1_WATER_LEVEL"]] += 250;
             }
-            if (_rinse1DumpValve && AIShorts[AINameIndexDic["r_QDRD1_WATER_LEVEL"]] > 3500) //快排
+            if (_rinse1DumpValve && AIShorts[AINameIndexDic["r_QDRD1_WATER_LEVEL"]] > 500) //快排
             {
                 AIShorts[AINameIndexDic["r_QDRD1_WATER_LEVEL"]] -= 350;
             }
-            if (AIShorts[AINameIndexDic["r_QDRD1_WATER_LEVEL"]] > 3500)//慢排
+            if (AIShorts[AINameIndexDic["r_QDRD1_WATER_LEVEL"]] > 500)//慢排
             {
                 AIShorts[AINameIndexDic["r_QDRD1_WATER_LEVEL"]] -= 2;
             }
@@ -850,11 +850,11 @@ namespace CyberX8_Simulator.Devices
             {
                 AIShorts[AINameIndexDic["r_QDRD2_WATER_LEVEL"]] += 250;
             }
-            if (_rinse2DumpValve && AIShorts[AINameIndexDic["r_QDRD2_WATER_LEVEL"]] > 3500)
+            if (_rinse2DumpValve && AIShorts[AINameIndexDic["r_QDRD2_WATER_LEVEL"]] > 500)
             {
                 AIShorts[AINameIndexDic["r_QDRD2_WATER_LEVEL"]] -= 300;
             }
-            if (AIShorts[AINameIndexDic["r_QDRD2_WATER_LEVEL"]] > 3500)//慢排
+            if (AIShorts[AINameIndexDic["r_QDRD2_WATER_LEVEL"]] > 500)//慢排
             {
                 AIShorts[AINameIndexDic["r_QDRD2_WATER_LEVEL"]] -= 2;
             }
@@ -864,11 +864,11 @@ namespace CyberX8_Simulator.Devices
             {
                 AIShorts[AINameIndexDic["r_QDRD3_WATER_LEVEL"]] += 250;
             }
-            if (_rinse3DumpValve && AIShorts[AINameIndexDic["r_QDRD3_WATER_LEVEL"]] > 3500)
+            if (_rinse3DumpValve && AIShorts[AINameIndexDic["r_QDRD3_WATER_LEVEL"]] > 500)
             {
                 AIShorts[AINameIndexDic["r_QDRD3_WATER_LEVEL"]] -= 300;
             }
-            if (AIShorts[AINameIndexDic["r_QDRD3_WATER_LEVEL"]] > 3500)//慢排
+            if (AIShorts[AINameIndexDic["r_QDRD3_WATER_LEVEL"]] > 500)//慢排
             {
                 AIShorts[AINameIndexDic["r_QDRD3_WATER_LEVEL"]] -= 2;
             }
@@ -878,11 +878,11 @@ namespace CyberX8_Simulator.Devices
             {
                 AIShorts[AINameIndexDic["r_QDRD4_WATER_LEVEL"]] += 250;
             }
-            if (_rinse4DumpValve && AIShorts[AINameIndexDic["r_QDRD4_WATER_LEVEL"]] > 3500)
+            if (_rinse4DumpValve && AIShorts[AINameIndexDic["r_QDRD4_WATER_LEVEL"]] > 500)
             {
                 AIShorts[AINameIndexDic["r_QDRD4_WATER_LEVEL"]] -= 300;
             }
-            if (AIShorts[AINameIndexDic["r_QDRD4_WATER_LEVEL"]] > 3500)//慢排
+            if (AIShorts[AINameIndexDic["r_QDRD4_WATER_LEVEL"]] > 500)//慢排
             {
                 AIShorts[AINameIndexDic["r_QDRD4_WATER_LEVEL"]] -= 2;
             }