|
@@ -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;
|