浏览代码

1.修改漏液报警
2.增加解析ABS详细报错信息

JET-YDB\JET-YANGDB 3 周之前
父节点
当前提交
964970c878

+ 1 - 1
VirgoRT/Config/_ioDefineVirgo.xml

@@ -17,7 +17,7 @@
 		<DI_ITEM Index="13" Name="" Device="" Addr="w20.13" />
 		<DI_ITEM Index="14" Name="DI_ARM_Not_Extend_to_PM" Device="" Addr="w20.14" Note="Interlock-PLC" />
 		<DI_ITEM Index="15" Name="DI_Generator_Hardware_Interlock" Device="" Addr="w20.15" Note="1=rf interlock ok,0=rf interlock off" />
-		<DI_ITEM Index="16" Name="" />
+		<DI_ITEM Index="16" Name="DI_EFEMWaterLeak" Device="" Addr="w21.00"/>
 		<!--<DI_ITEM Index="17" Name="DI_Coolant_Inlet_TC_Broken_Alarm" Device="" Addr="w21.01" />-->
 		<!--<DI_ITEM Index="18" Name="DI_Coolant_Outlet_TC_Broken_Alarm" Device="" Addr="w21.02" />-->
 		<DI_ITEM Index="19" Name="DI_Substrate_Control_TC_Broken_Alarm" Device="" Addr="w21.03" Note="0=OK,1=alarm" />

+ 1 - 0
VirgoRT/Devices/EFEM/EfemDevice.cs

@@ -212,6 +212,7 @@ namespace VirgoRT.Device.YASKAWA
                             Description = $"{rec_msg.Data[0]}, {rec_msg.Data[1]}",
                             CommandType = rec_msg.Operation,
                             Module = rec_msg.Port,
+                            Message = rec_msg.Data.Count > 2 ? $"{rec_msg.Data[2]}" : "",
                         });
                         break;
                 }

+ 2 - 0
VirgoRT/Devices/EFEM/EfemMessage.cs

@@ -253,6 +253,8 @@ namespace VirgoRT.Device.YASKAWA
                     msg.Factor = a6[0];
                     msg.Data.Add(a6[1]);
                     msg.Data.Add(a6[2]);
+                    if (a6.Length > 3)
+                        msg.Data.Add(a6[3]);
                     break;
                 }
             }

+ 16 - 3
VirgoRT/Devices/JetPM.cs

@@ -21,6 +21,7 @@ using VirgoRT.Instances;
 using VirgoRT.Module;
 using VirgoRT.Modules;
 using Aitex.Core.RT.IOCore;
+using Aitex.Core.RT.Log;
 
 namespace VirgoRT.Devices
 {
@@ -467,6 +468,13 @@ namespace VirgoRT.Devices
                 return true;
             });
 
+            if (IsWLK && IO.DI[$"{ModuleName.PMA}.DI_EFEMWaterLeak"].Value)
+            {
+                IO.DO[$"{ModuleName.PMA}.DO_EV5_Water_Valve"].Value = true;
+                IO.DO[$"{ModuleName.PMB}.DO_EV5_Water_Valve"].Value = true;
+                LOG.Info($"{Module} DO_EV5_Water_Valve sensor on");
+            }
+
             DATA.Subscribe($"{Name}.IoTemperatureCtrl.TemperatureControl.SubstrateTemperature", () => SubstrateTempFB);
             DATA.Subscribe($"{Module}.WaferSize", () => WaferManager.Instance.GetWafer(Module, 0).Size.ToString());
             DATA.Subscribe($"{Module}.EnableBiasRF", () => EnableBiasRF);
@@ -650,14 +658,19 @@ namespace VirgoRT.Devices
             if (_trigBaseTemperature.Q) EV.PostMessage(Module.ToString(), EventEnum.DefaultAlarm, "PM temperature out of tolerance");
             if(_ChamberType == (int)JetChamber.VirgoMask)
             {
-                _trigWaterLeak.CLK = !IsWLK;
+                var isWLKError = !IsWLK;
+                var isEFEMWLKError = !IO.DI[$"{ModuleName.PMA}.DI_EFEMWaterLeak"].Value;
+                _trigWaterLeak.CLK = isWLKError || isEFEMWLKError;
                 if (_trigWaterLeak.Q)
                 {
                     IO.DO[$"{ModuleName.PMA}.DO_EV5_Water_Valve"].Value = false;
                     IO.DO[$"{ModuleName.PMB}.DO_EV5_Water_Valve"].Value = false;
-                    EV.PostMessage(Module.ToString(), EventEnum.DefaultAlarm, $"PM water leak");
+                    if(isWLKError)
+                        EV.PostMessage(Module.ToString(), EventEnum.DefaultAlarm, $"PM water leak");
+                    if (isEFEMWLKError)
+                        EV.PostMessage(ModuleName.EFEM.ToString(), EventEnum.DefaultAlarm, $"EFEM water leak");
                 }
-                if (IsWLK && IO.DI[$"{ModuleName.PMA}.DI_Reset_Signal_Reply"].Value && !IO.DI[$"{ModuleName.PMA}.DI_Water_Valve_Opened"].Value)
+                if (IsWLK && IO.DI[$"{ModuleName.PMA}.DI_EFEMWaterLeak"].Value && IO.DI[$"{ModuleName.PMA}.DI_Reset_Signal_Reply"].Value && !IO.DI[$"{ModuleName.PMA}.DI_Water_Valve_Opened"].Value)
                 {
                     IO.DO[$"{ModuleName.PMA}.DO_EV5_Water_Valve"].Value = true;
                     IO.DO[$"{ModuleName.PMB}.DO_EV5_Water_Valve"].Value = true;

+ 1 - 1
VirgoSimulator/Config/_ioDefineVirgo.xml

@@ -17,7 +17,7 @@
     <DI_ITEM Index="13" Name="DI_Guide_Pin_Medium_Lifter_Down_Pos" Device="" Addr="w20.13" />
     <DI_ITEM Index="14" Name="DI_ARM_Not_Extend_to_PM" Device="" Addr="w20.14" Note="Interlock-PLC" />
     <DI_ITEM Index="15" Name="DI_Generator_Hardware_Interlock" Device="" Addr="w20.15" Note="1=rf interlock ok,0=rf interlock off" />
-    <DI_ITEM Index="16" Name="" />
+    <DI_ITEM Index="16" Name="DI_EFEMWaterLeak" Device="" Addr="w21.00" />
     <!--<DI_ITEM Index="17" Name="DI_Coolant_Inlet_TC_Broken_Alarm" Device="" Addr="w21.01" />-->
     <!--<DI_ITEM Index="18" Name="DI_Coolant_Outlet_TC_Broken_Alarm" Device="" Addr="w21.02" />-->
     <DI_ITEM Index="19" Name="DI_Substrate_Control_TC_Broken_Alarm" Device="" Addr="w21.03" Note="0=OK,1=alarm" />