|
@@ -15,17 +15,19 @@ using MECF.Framework.Common.SubstrateTrackings;
|
|
|
using IoMfc = Venus_RT.Devices.IODevices.IoMfc;
|
|
|
using System.Threading.Tasks;
|
|
|
using Venus_RT.Modules;
|
|
|
+using Aitex.Core.RT.DataCenter;
|
|
|
+using System.Diagnostics;
|
|
|
|
|
|
namespace Venus_RT.Devices
|
|
|
{
|
|
|
class JetKepler2200APM : JetPMBase
|
|
|
{
|
|
|
private readonly IoLid _Lid;
|
|
|
- private readonly IoLid _LidLoadlock;
|
|
|
+
|
|
|
|
|
|
private readonly IoCylinder _slitDoor;
|
|
|
private readonly IoCylinder _LiftPin;
|
|
|
- private readonly IoCylinder _LoadLockArm;
|
|
|
+
|
|
|
|
|
|
private readonly IoValve _PVN21Valve;
|
|
|
private readonly IoValve _PVN22Valve;
|
|
@@ -48,8 +50,8 @@ namespace Venus_RT.Devices
|
|
|
private readonly IoValve _Mfc6Valve;
|
|
|
private readonly IoValve _Mfc7Valve;
|
|
|
private readonly IoValve _Mfc8Valve;
|
|
|
- private readonly IoValve _PVHe1Valve;
|
|
|
- private readonly IoValve _PVHe2Valve;
|
|
|
+
|
|
|
+
|
|
|
private readonly IoValve _GasFinalValve;
|
|
|
private readonly IoValve _SoftPumpValve;
|
|
|
private readonly IoValve _FastPumpValve;
|
|
@@ -78,18 +80,20 @@ namespace Venus_RT.Devices
|
|
|
|
|
|
|
|
|
private readonly PumpBase _MainPump;
|
|
|
- private readonly ESC5HighVoltage _ESCHV;
|
|
|
+
|
|
|
private readonly AdixenTurboPump _TurboPump;
|
|
|
private readonly PendulumValve _pendulumValve;
|
|
|
|
|
|
- private readonly ChillerBase _Chiller;
|
|
|
+
|
|
|
|
|
|
private readonly RfPowerBase _Generator;
|
|
|
- private readonly RfPowerBase _GeneratorBias;
|
|
|
private readonly RfMatchBase _Match;
|
|
|
- private readonly RfMatchBase _BiasMatch;
|
|
|
|
|
|
- private readonly IoSignalTower _SignalTower;
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
|
|
|
private readonly IoHeater _ForelineTC;
|
|
|
private readonly IoHeater _WallTC;
|
|
@@ -100,15 +104,17 @@ namespace Venus_RT.Devices
|
|
|
private readonly IoGasStick _gasLineN2;
|
|
|
private readonly IoBacksideHe _backsideHe;
|
|
|
|
|
|
- private readonly IoMfc _heMfc;
|
|
|
|
|
|
|
|
|
private readonly double _foreline_interlock_pressure = 750;
|
|
|
|
|
|
+ private Stopwatch _GasRFStopWatch = new Stopwatch();
|
|
|
+ private bool _GasFlag=false;
|
|
|
+
|
|
|
|
|
|
|
|
|
public override bool IsLidClosed => _Lid.OFFFeedback;
|
|
|
- public override bool IsLidLoadlockClosed => _LidLoadlock.OFFFeedback;
|
|
|
+
|
|
|
|
|
|
public override bool IsSlitDoorClosed => !_slitDoor.ONFeedback && _slitDoor.OFFFeedback;
|
|
|
|
|
@@ -177,34 +183,34 @@ namespace Venus_RT.Devices
|
|
|
public override double LoadlockPressure => 0;
|
|
|
public override double ESCHePressure => 0;
|
|
|
|
|
|
- public override int ESCOutputVoltage => _ESCHV.OutputVoltage;
|
|
|
- public override double ESCPositiveOutputCurrent => _ESCHV.PositiveOutputCurrent;
|
|
|
+
|
|
|
+
|
|
|
|
|
|
- public override double ESCNegativeOutputCurrent => _ESCHV.NegativeOutputCurrent;
|
|
|
- public override bool IsHVOn => _ESCHV.IsOn;
|
|
|
+
|
|
|
+
|
|
|
|
|
|
- public override float CoolantInletTempFB =>0;
|
|
|
+ public override float CoolantInletTempFB => 0;
|
|
|
public override float CoolantOutletTempFB => 0;
|
|
|
|
|
|
public override bool ChillerIsRunning => false;
|
|
|
|
|
|
|
|
|
- public override bool IsLoadlockArmRetract => _LoadLockArm.OFFFeedback;
|
|
|
- public override bool IsLoadlockArmExtend => _LoadLockArm.ONFeedback;
|
|
|
-
|
|
|
- public override bool LoadlockArmRetract => _LoadLockArm.OFFSetPoint;
|
|
|
- public override bool LoadlockArmExtend => _LoadLockArm.ONSetPoint;
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
|
|
|
public override float ReflectPower => _Generator.ReflectPower;
|
|
|
- public override float BiasReflectPower => _GeneratorBias.ReflectPower;
|
|
|
+
|
|
|
|
|
|
public override float ForwardPower => _Generator.ForwardPower;
|
|
|
|
|
|
public override bool BackSideHeOutOfRange => _backsideHe.OutOfRange;
|
|
|
public override float RFMatchC1 => _Match != null ? _Match.TunePosition1 : 0;
|
|
|
public override float RFMatchC2 => _Match != null ? _Match.TunePosition2 : 0;
|
|
|
- public override float BiasRFMatchC1 => _BiasMatch != null ? _BiasMatch.TunePosition1 : 0;
|
|
|
- public override float BiasRFMatchC2 => _BiasMatch != null ? _BiasMatch.TunePosition1 : 0;
|
|
|
+
|
|
|
+
|
|
|
public override double MFC1FeedBack => DEVICE.GetDevice<IoMfc>($"{Module}.MfcGas1").FeedBack;
|
|
|
public override double MFC2FeedBack => DEVICE.GetDevice<IoMfc>($"{Module}.MfcGas2").FeedBack;
|
|
|
public override double MFC3FeedBack => DEVICE.GetDevice<IoMfc>($"{Module}.MfcGas3").FeedBack;
|
|
@@ -292,11 +298,11 @@ namespace Venus_RT.Devices
|
|
|
{
|
|
|
Module = moduleName;
|
|
|
_Lid = DEVICE.GetDevice<IoLid>($"{Module}.{VenusDevice.Lid}");
|
|
|
- _LidLoadlock = DEVICE.GetDevice<IoLid>($"{Module}.{VenusDevice.LidLoadlock}");
|
|
|
+
|
|
|
|
|
|
_slitDoor = DEVICE.GetDevice<IoCylinder>($"{Module}.{VenusDevice.SlitDoor}");
|
|
|
_LiftPin = DEVICE.GetDevice<IoCylinder>($"{Module}.{VenusDevice.LiftPin}");
|
|
|
- _LoadLockArm = DEVICE.GetDevice<IoCylinder>($"{Module}.{VenusDevice.LoadLockArm}");
|
|
|
+
|
|
|
|
|
|
_PVN21Valve = DEVICE.GetDevice<IoValve>($"{Module}.{VenusDevice.ValvePVN21}");
|
|
|
_PVN22Valve = DEVICE.GetDevice<IoValve>($"{Module}.{VenusDevice.ValvePVN22}");
|
|
@@ -319,8 +325,8 @@ namespace Venus_RT.Devices
|
|
|
_Mfc6Valve = DEVICE.GetDevice<IoValve>($"{Module}.{VenusDevice.ValveMfc6}");
|
|
|
_Mfc7Valve = DEVICE.GetDevice<IoValve>($"{Module}.{VenusDevice.ValveMfc7}");
|
|
|
_Mfc8Valve = DEVICE.GetDevice<IoValve>($"{Module}.{VenusDevice.ValveMfc8}");
|
|
|
- _PVHe1Valve = DEVICE.GetDevice<IoValve>($"{Module}.{VenusDevice.ValvePVHe1}");
|
|
|
- _PVHe2Valve = DEVICE.GetDevice<IoValve>($"{Module}.{VenusDevice.ValvePVHe2}");
|
|
|
+
|
|
|
+
|
|
|
_GasFinalValve = DEVICE.GetDevice<IoValve>($"{Module}.{VenusDevice.ValveGasFinal}");
|
|
|
_SoftPumpValve = DEVICE.GetDevice<IoValve>($"{Module}.{VenusDevice.ValveSoftPump}");
|
|
|
_FastPumpValve = DEVICE.GetDevice<IoValve>($"{Module}.{VenusDevice.ValveFastPump}");
|
|
@@ -329,7 +335,6 @@ namespace Venus_RT.Devices
|
|
|
_GuageValve = DEVICE.GetDevice<IoValve>($"{Module}.{VenusDevice.ValveGuage}");
|
|
|
_LoadlockVentValve = DEVICE.GetDevice<IoValve>($"{Module}.{VenusDevice.ValveLoadlockVent}");
|
|
|
_LoadlockPumpingValve = DEVICE.GetDevice<IoValve>($"{Module}.{VenusDevice.ValveLoadlockPumping}");
|
|
|
- _heMfc = DEVICE.GetDevice<IoMfc>($"{Module}.MfcHe");
|
|
|
_ATM_sw = DEVICE.GetDevice<IoSensor>($"{Module}.SensorATMSwitch");
|
|
|
_ATM_Loadlock_sw = DEVICE.GetDevice<IoSensor>($"{Module}.SensorLoadlockATMSwitch");
|
|
|
_N2Pressure_sw = DEVICE.GetDevice<IoSensor>($"{Module}.N2PressureOk");
|
|
@@ -351,7 +356,7 @@ namespace Venus_RT.Devices
|
|
|
_WallTC = DEVICE.GetDevice<IoHeater>($"{Module}.WallHeater");
|
|
|
|
|
|
|
|
|
- _SignalTower = DEVICE.GetDevice<IoSignalTower>($"{Module}.SignalTower");
|
|
|
+
|
|
|
|
|
|
_CDAPressure = DEVICE.GetDevice<IoSensor>($"{Module}.SensorCDAPressureOk");
|
|
|
_pressureController = DEVICE.GetDevice<IoPressureControl>($"{Module}.{VenusDevice.PressureControl}");
|
|
@@ -381,22 +386,22 @@ namespace Venus_RT.Devices
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- _ESCHV = DEVICE.GetDevice<ESC5HighVoltage>($"{Module}.{VenusDevice.ESCHV}");
|
|
|
+
|
|
|
_TurboPump = DEVICE.GetDevice<AdixenTurboPump>($"{Module}.{VenusDevice.TurboPump}");
|
|
|
_pendulumValve = DEVICE.GetDevice<PendulumValve>($"{Module}.{VenusDevice.PendulumValve}");
|
|
|
|
|
|
- if (SC.GetValue<bool>($"{Module}.Chiller.EnableChiller") &&
|
|
|
- SC.GetValue<int>($"{Module}.Chiller.CommunicationType") == (int)CommunicationType.RS232)
|
|
|
- {
|
|
|
- if (SC.GetValue<int>($"{Module}.Chiller.MFG") == (int)ChillerMFG.SMC)
|
|
|
- {
|
|
|
- _Chiller = DEVICE.GetDevice<SMCChiller>($"{Module}.{VenusDevice.Chiller}");
|
|
|
- }
|
|
|
- else if (SC.GetValue<int>($"{Module}.Chiller.MFG") == (int)ChillerMFG.AIRSYS)
|
|
|
- {
|
|
|
- _Chiller = DEVICE.GetDevice<AIRSYSChiller>($"{Module}.{VenusDevice.Chiller}");
|
|
|
- }
|
|
|
- }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
|
|
|
|
|
|
|
|
@@ -407,18 +412,18 @@ namespace Venus_RT.Devices
|
|
|
}
|
|
|
|
|
|
|
|
|
- if (SC.GetValue<bool>($"{Module}.BiasRf.EnableBiasRF"))
|
|
|
- {
|
|
|
- if (SC.GetValue<int>($"{Module}.BiasRf.CommunicationType") == (int)CommunicationType.Ethernet &&
|
|
|
- SC.GetValue<int>($"{Module}.BiasRf.MFG") == (int)GeneratorMFG.Comet)
|
|
|
- {
|
|
|
- _GeneratorBias = DEVICE.GetDevice<CometRF>($"{Module}.{VenusDevice.BiasRf}");
|
|
|
- }
|
|
|
- else if (SC.GetValue<int>($"{Module}.BiasRf.MFG") == (int)GeneratorMFG.AdTec)
|
|
|
- {
|
|
|
- _GeneratorBias = DEVICE.GetDevice<AdTecGenerator>($"{Module}.{VenusDevice.BiasRf}");
|
|
|
- }
|
|
|
- }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
|
|
|
if (SC.GetValue<int>($"{Module}.Match.CommunicationType") == (int)CommunicationType.RS232 &&
|
|
|
SC.GetValue<int>($"{Module}.Match.MFG") == (int)MatchMFG.AdTec)
|
|
@@ -432,25 +437,31 @@ namespace Venus_RT.Devices
|
|
|
}
|
|
|
|
|
|
|
|
|
- if (SC.GetValue<bool>($"{Module}.BiasMatch.EnableBiasMatch") &&
|
|
|
- SC.GetValue<int>($"{Module}.BiasMatch.CommunicationType") == (int)CommunicationType.RS232 &&
|
|
|
- SC.GetValue<int>($"{Module}.BiasMatch.MFG") == (int)MatchMFG.AdTec)
|
|
|
- {
|
|
|
- _BiasMatch = DEVICE.GetDevice<AdTecMatch>($"{Module}.{VenusDevice.BiasMatch}");
|
|
|
- }
|
|
|
- else if (SC.GetValue<bool>($"{Module}.BiasMatch.EnableBiasMatch") &&
|
|
|
- SC.GetValue<int>($"{Module}.BiasMatch.MFG") == (int)MatchMFG.Revtech)
|
|
|
- {
|
|
|
- _BiasMatch = DEVICE.GetDevice<RevtechMatch>($"{Module}.{VenusDevice.BiasMatch}");
|
|
|
- }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
|
|
|
_foreline_interlock_pressure = SC.GetValue<double>($"{Module}.ForelineInterlockPressure");
|
|
|
|
|
|
+ _GasRFStopWatch.Stop();
|
|
|
+
|
|
|
+
|
|
|
+ DATA.Subscribe($"{Name}.SCR1", () => GetAiValue($"{Module}.AI_CHB_M-HT_SCR1_PWR_OUT"));
|
|
|
+ DATA.Subscribe($"{Name}.SCR2", () => GetAiValue($"{Module}.AI_CHB_M-HT_SCR2_PWR_OUT"));
|
|
|
+
|
|
|
}
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
- public async override void CloseValves()
|
|
|
+ public async override void CloseValves(int? delayTime = null)
|
|
|
{
|
|
|
_PVN21Valve.TurnValve(false, out _);
|
|
|
|
|
@@ -463,8 +474,8 @@ namespace Venus_RT.Devices
|
|
|
_PV41Valve.TurnValve(false, out _);
|
|
|
_PV42Valve.TurnValve(false, out _);
|
|
|
|
|
|
- _PVHe1Valve.TurnValve(false, out _);
|
|
|
- _PVHe2Valve.TurnValve(false, out _);
|
|
|
+
|
|
|
+
|
|
|
_SoftPumpValve.TurnValve(false, out _);
|
|
|
_FastPumpValve.TurnValve(false, out _);
|
|
|
_TurboPumpPumpingValve.TurnValve(false, out _);
|
|
@@ -489,7 +500,10 @@ namespace Venus_RT.Devices
|
|
|
{
|
|
|
stick.Stop();
|
|
|
}
|
|
|
- await Task.Delay(1000);
|
|
|
+ if (delayTime != null)
|
|
|
+ {
|
|
|
+ await Task.Delay((int)delayTime);
|
|
|
+ }
|
|
|
_GasFinalValve.TurnValve(false, out _);
|
|
|
_PurgeValve.TurnValve(false, out _);
|
|
|
}
|
|
@@ -545,14 +559,9 @@ namespace Venus_RT.Devices
|
|
|
_N2Valve.TurnValve(on, out _);
|
|
|
break;
|
|
|
case ValveType.Purge:
|
|
|
- _PurgeValve.TurnValve(on, out _);
|
|
|
- break;
|
|
|
- case ValveType.PVHe1:
|
|
|
- _PVHe1Valve.TurnValve(on, out _);
|
|
|
- break;
|
|
|
- case ValveType.PVHe2:
|
|
|
- _PVHe2Valve.TurnValve(on, out _);
|
|
|
+ _PurgeValve.TurnValve(on, out _);
|
|
|
break;
|
|
|
+
|
|
|
case ValveType.GasFinal:
|
|
|
_GasFinalValve.TurnValve(on, out _);
|
|
|
break;
|
|
@@ -601,8 +610,8 @@ namespace Venus_RT.Devices
|
|
|
case ValveType.Mfc8:
|
|
|
_Mfc8Valve.TurnValve(on, out _);
|
|
|
break;
|
|
|
- default:
|
|
|
- throw new ArgumentOutOfRangeException($"Argument error {vlvType}-{on}");
|
|
|
+
|
|
|
+
|
|
|
|
|
|
}
|
|
|
}
|
|
@@ -642,15 +651,15 @@ namespace Venus_RT.Devices
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- public override void BuzzerBlinking(double time)
|
|
|
- {
|
|
|
- _SignalTower.BuzzerBlinking(time);
|
|
|
- }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
|
|
|
- public override void SwitchOnBuzzerAndRed()
|
|
|
- {
|
|
|
- _SignalTower.SwitchOnBuzzerAndRed("", null);
|
|
|
- }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
|
|
|
public override void Home()
|
|
|
{
|
|
@@ -712,15 +721,15 @@ namespace Venus_RT.Devices
|
|
|
return _slitDoor.SetCylinder(open, out reason);
|
|
|
}
|
|
|
|
|
|
- public override bool RetractWafer()
|
|
|
- {
|
|
|
- return _LoadLockArm.SetCylinder(false, out _);
|
|
|
- }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
|
|
|
- public override bool ExtendWafer()
|
|
|
- {
|
|
|
- return _LoadLockArm.SetCylinder(true, out _);
|
|
|
- }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
public override bool FlowGas(int gasNum, double val)
|
|
|
{
|
|
|
if (_gasLines.Length <= gasNum)
|
|
@@ -781,22 +790,22 @@ namespace Venus_RT.Devices
|
|
|
return _pendulumValve.Position;
|
|
|
}
|
|
|
|
|
|
- public override async void HeatChiller(ChillerType chillerType, double value, double offset)
|
|
|
- {
|
|
|
- _Chiller?.SetChillerTemp((float)value, (float)offset);
|
|
|
- await Task.Delay(1000);
|
|
|
- _Chiller?.SetChillerOnOff(true);
|
|
|
- }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
|
|
|
- public override void OnOffChiller(ChillerType chillerType, bool onoff)
|
|
|
- {
|
|
|
- _Chiller?.SetChillerOnOff(onoff);
|
|
|
- }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
|
|
|
- public override bool CheckChillerStatus()
|
|
|
- {
|
|
|
- return _Chiller != null && !_Chiller.IsError;
|
|
|
- }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
|
|
|
public override void SetGeneratorCommunicationMode(int mode)
|
|
|
{
|
|
@@ -825,44 +834,44 @@ namespace Venus_RT.Devices
|
|
|
return true;
|
|
|
}
|
|
|
|
|
|
- public override bool GeneratorBiasPowerOn(bool on)
|
|
|
- {
|
|
|
- if (_GeneratorBias == null) return false;
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
|
|
|
- if (on && !IsRFGInterlockOn)
|
|
|
- {
|
|
|
- LOG.Write(eEvent.ERR_RF, Module, "Bias射频电源 Interlock条件不满足");
|
|
|
- return false;
|
|
|
- }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
|
|
|
- return _GeneratorBias.SetPowerOnOff(on, out _);
|
|
|
- }
|
|
|
+
|
|
|
+
|
|
|
|
|
|
- public override bool GeneratorBiasSetpower(float val)
|
|
|
- {
|
|
|
- if (_GeneratorBias == null) return false;
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
|
|
|
- if (Math.Abs(val) > 0.01)
|
|
|
- _GeneratorBias.SetPower((ushort)val);
|
|
|
- return true;
|
|
|
- }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
|
|
|
- public override bool OnOffSetESCHV(bool val)
|
|
|
- {
|
|
|
- return _ESCHV.SetPowerOnOff(val);
|
|
|
- }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
|
|
|
public override bool SetWallTCTemperature(float value)
|
|
|
{
|
|
|
return _WallTC.RampTemp(value);
|
|
|
}
|
|
|
- public override bool GeneratorBiasSetMatchMode(bool val)
|
|
|
- {
|
|
|
- if (_GeneratorBias == null) return false;
|
|
|
- string reason = string.Empty;
|
|
|
- _GeneratorBias.SetMatchingAutoMode(val, out reason);
|
|
|
- return true;
|
|
|
- }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
|
|
|
public override bool SetMatchPosition(float c1, float c2)
|
|
|
{
|
|
@@ -884,52 +893,52 @@ namespace Venus_RT.Devices
|
|
|
}
|
|
|
return false;
|
|
|
}
|
|
|
- public override bool SetBiasMatchPosition(float c1, float c2)
|
|
|
- {
|
|
|
- if (_BiasMatch == null) return false;
|
|
|
- string reason = string.Empty;
|
|
|
- _BiasMatch.SetMatchPosition(c1, c2, out reason);
|
|
|
- return true;
|
|
|
- }
|
|
|
- public override bool SetBiasMatchWorkMode(MatchWorkMode matchWorkMode)
|
|
|
- {
|
|
|
- if (_BiasMatch == null) return false;
|
|
|
- if (matchWorkMode == MatchWorkMode.Auto)
|
|
|
- {
|
|
|
- return _BiasMatch.SetMatchMode(EnumRfMatchTuneMode.Auto, out _);
|
|
|
- }
|
|
|
- else if (matchWorkMode == MatchWorkMode.Manual)
|
|
|
- {
|
|
|
- return _BiasMatch.SetMatchMode(EnumRfMatchTuneMode.Manual, out _);
|
|
|
- }
|
|
|
- return false;
|
|
|
- }
|
|
|
- public override bool SetBiasPulseMode(bool on)
|
|
|
- {
|
|
|
- if (_GeneratorBias == null) return false;
|
|
|
- _GeneratorBias.SetPulseMode(on);
|
|
|
- return true;
|
|
|
- }
|
|
|
- public override bool SetBiasPulseRateFreq(int nFreq)
|
|
|
- {
|
|
|
- if (_GeneratorBias == null) return false;
|
|
|
- _GeneratorBias.SetPulseRateFreq(nFreq);
|
|
|
- return true;
|
|
|
- }
|
|
|
-
|
|
|
- public override bool SetDiasPulseDutyCycle(int percentage)
|
|
|
- {
|
|
|
- if (_GeneratorBias == null) return false;
|
|
|
- _GeneratorBias.SetPulseDutyCycle(percentage);
|
|
|
- return true;
|
|
|
- }
|
|
|
-
|
|
|
- public override bool SetESCClampVoltage(int nVoltage)
|
|
|
- {
|
|
|
- if (_ESCHV == null) return false;
|
|
|
-
|
|
|
- return _ESCHV.SetOutputVoltage(nVoltage);
|
|
|
- }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
|
|
|
public override bool CheckGeneratorAndHVInterlock(VenusDevice device)
|
|
|
{
|
|
@@ -956,7 +965,7 @@ namespace Venus_RT.Devices
|
|
|
{
|
|
|
LOG.Write(evt, Module, $"Cannot Power ON {device} as Generator Interlock is OFF.");
|
|
|
return false;
|
|
|
- }
|
|
|
+ }
|
|
|
|
|
|
if (!SlitDoorClosed)
|
|
|
{
|
|
@@ -972,7 +981,7 @@ namespace Venus_RT.Devices
|
|
|
|
|
|
return true;
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
public override bool SetBacksideHeThreshold(int nMin, int nMax)
|
|
|
{
|
|
|
if (_backsideHe == null) return false;
|
|
@@ -994,7 +1003,7 @@ namespace Venus_RT.Devices
|
|
|
return true;
|
|
|
}
|
|
|
public async override Task<bool> AbortControlPressure()
|
|
|
- {
|
|
|
+ {
|
|
|
OpenValve(ValveType.N2, false);
|
|
|
OpenValve(ValveType.PVN22, false);
|
|
|
await Task.Delay(1000);
|
|
@@ -1062,5 +1071,62 @@ namespace Venus_RT.Devices
|
|
|
{
|
|
|
return CheckSlitDoorClose();
|
|
|
}
|
|
|
+ public override void RTCloseEvent()
|
|
|
+ {
|
|
|
+ if (_Generator.IsPowerOn)
|
|
|
+ {
|
|
|
+ GeneratorPowerOn(false);
|
|
|
+ }
|
|
|
+ if (PendulumValveIsOpen())
|
|
|
+ {
|
|
|
+ TurnPendulumValve(false);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ public override bool RFInterlock(VenusDevice device)
|
|
|
+ {
|
|
|
+ eEvent evt = eEvent.ERR_RF;
|
|
|
+
|
|
|
+ if (!IsWaterFlowOk)
|
|
|
+ {
|
|
|
+ LOG.Write(evt, Module, $"Cannot Power ON {device} as Water Flow is OFF.");
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+
|
|
|
+ if (!IsRFGInterlockOn)
|
|
|
+ {
|
|
|
+ LOG.Write(evt, Module, $"Cannot Power ON {device} as Generator Interlock is OFF.");
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ if (GasIsOff())
|
|
|
+ {
|
|
|
+ LOG.Write(evt, Module, $"Cannot Power ON {device} as Gas is OFF.");
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+ private bool GasIsOff()
|
|
|
+ {
|
|
|
+ if (IsMfc1ValveOpened == false && IsMfc2ValveOpened == false && IsMfc3ValveOpened == false && IsMfc4ValveOpened == false && IsMfc5ValveOpened == false && IsMfc6ValveOpened == false && _GasFlag==false)
|
|
|
+ {
|
|
|
+ if (_GasRFStopWatch.IsRunning == false)
|
|
|
+ {
|
|
|
+ _GasRFStopWatch.Start();
|
|
|
+ }
|
|
|
+ if (_GasRFStopWatch.ElapsedMilliseconds > 1000)
|
|
|
+ {
|
|
|
+ _GasRFStopWatch.Reset();
|
|
|
+ _GasFlag = true;
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ _GasRFStopWatch.Reset();
|
|
|
+ _GasFlag = false;
|
|
|
+ }
|
|
|
+ return false;
|
|
|
+ }
|
|
|
}
|
|
|
}
|