diff --git a/Modules/Mainframe/Aligners/AlignerModule.cs b/Modules/Mainframe/Aligners/AlignerModule.cs index 51cb4ad..5cbf82d 100644 --- a/Modules/Mainframe/Aligners/AlignerModule.cs +++ b/Modules/Mainframe/Aligners/AlignerModule.cs @@ -91,8 +91,6 @@ namespace SicModules.Aligners get { return FsmState == (int)STATE.Idle && CheckAllMessageProcessed(); } } - public event Action OnEnterError; - private bool _isInit; public HwAlignerGuide _alignerDevice { get; set; } @@ -233,8 +231,7 @@ namespace SicModules.Aligners private bool FsmEnterError(object[] param) { - if (OnEnterError != null) - OnEnterError(Module); + InvokeOnEnterError(Module); return true; } diff --git a/Modules/Mainframe/Buffers/BufferModule.cs b/Modules/Mainframe/Buffers/BufferModule.cs index b03430e..2fe999c 100644 --- a/Modules/Mainframe/Buffers/BufferModule.cs +++ b/Modules/Mainframe/Buffers/BufferModule.cs @@ -104,9 +104,6 @@ namespace SicModules.Buffers return false; } } - - - public event Action OnEnterError; private bool _isInit; @@ -256,8 +253,7 @@ namespace SicModules.Buffers private bool FsmEnterError(object[] param) { - if (OnEnterError != null) - OnEnterError(Module); + InvokeOnEnterError(Module); return true; } diff --git a/Modules/Mainframe/Buffers/Routines/BufferCoolingRoutine.cs b/Modules/Mainframe/Buffers/Routines/BufferCoolingRoutine.cs index 740217c..04f5e20 100644 --- a/Modules/Mainframe/Buffers/Routines/BufferCoolingRoutine.cs +++ b/Modules/Mainframe/Buffers/Routines/BufferCoolingRoutine.cs @@ -44,38 +44,16 @@ namespace SicModules.Buffers.Routines } - public Result Start(params object[] objs) + protected override void MonitorBody() { - Reset(); - _swTimer.Restart(); - return Result.RUN; - } - - public Result Monitor() - { - try + if (_coolingTypeIsTime) { - if (_coolingTypeIsTime) - { - TimeDelay((int)RoutineStep.Cooling, _coolingValue); - } - else - { - WaitBufferTempBelowSetValue((int)RoutineStep.Cooling, _coolingValue, _timeout); - } + TimeDelay((int)RoutineStep.Cooling, _coolingValue); } - catch (RoutineBreakException) + else { - return Result.RUN; + WaitBufferTempBelowSetValue((int)RoutineStep.Cooling, _coolingValue, _timeout); } - catch (RoutineFaildException) - { - return Result.FAIL; - } - - Notify("Finished"); - - return Result.DONE; } protected void WaitBufferTempBelowSetValue(int id,double tempValue,int timeout) @@ -103,7 +81,7 @@ namespace SicModules.Buffers.Routines } - public void Abort() + public override void Abort() { Notify("Abort"); _swTimer.Stop(); diff --git a/Modules/Mainframe/Buffers/Routines/BufferHomeRoutine.cs b/Modules/Mainframe/Buffers/Routines/BufferHomeRoutine.cs index 45fdc6d..7a838be 100644 --- a/Modules/Mainframe/Buffers/Routines/BufferHomeRoutine.cs +++ b/Modules/Mainframe/Buffers/Routines/BufferHomeRoutine.cs @@ -30,36 +30,13 @@ namespace SicModules.Buffers.Routines { return true; } - - public Result Start(params object[] objs) + + protected override void MonitorBody() { - Reset(); - - Notify($"Start"); - - return Result.RUN; + Home((int)RoutineStep.Home, _buffer, 2); } - public Result Monitor() - { - try - { - Home((int)RoutineStep.Home, _buffer, 2); - } - catch (RoutineBreakException) - { - return Result.RUN; - } - catch (RoutineFaildException) - { - return Result.FAIL; - } - - Notify("Finished"); - return Result.DONE; - } - public void Home(int id, SicBuffer buffer, int timeout) { Tuple ret = ExecuteAndWait(id, () => @@ -90,7 +67,7 @@ namespace SicModules.Buffers.Routines } } - public void Abort() + public override void Abort() { } diff --git a/Modules/Mainframe/Cassettes/CassetteModule.cs b/Modules/Mainframe/Cassettes/CassetteModule.cs index 9e26e17..67733d8 100644 --- a/Modules/Mainframe/Cassettes/CassetteModule.cs +++ b/Modules/Mainframe/Cassettes/CassetteModule.cs @@ -70,8 +70,6 @@ namespace SicModules.Cassettes get { return FsmState == (int)STATE.Idle && CheckAllMessageProcessed(); } } - public event Action OnEnterError; - private bool _isInit; public SicCassette _cassetteDevice { get; set; } @@ -323,8 +321,7 @@ namespace SicModules.Cassettes private bool FsmEnterError(object[] param) { - if (OnEnterError != null) - OnEnterError(Module); + InvokeOnEnterError(Module); return true; } diff --git a/Modules/Mainframe/EFEMs/EFEMModule.cs b/Modules/Mainframe/EFEMs/EFEMModule.cs index 291add3..9b65c7c 100644 --- a/Modules/Mainframe/EFEMs/EFEMModule.cs +++ b/Modules/Mainframe/EFEMs/EFEMModule.cs @@ -75,8 +75,6 @@ namespace SicModules.EFEMs } } - public event Action OnEnterError; - private EfemSlitValveRoutine _slitValveRoutine; private bool _isInit; @@ -217,8 +215,7 @@ namespace SicModules.EFEMs private bool FsmEnterError(object[] param) { - if (OnEnterError != null) - OnEnterError(Module); + InvokeOnEnterError(Module); return true; } diff --git a/Modules/Mainframe/EFEMs/Routines/Base/EfemBaseRoutine.cs b/Modules/Mainframe/EFEMs/Routines/Base/EfemBaseRoutine.cs index 620b8ce..8432799 100644 --- a/Modules/Mainframe/EFEMs/Routines/Base/EfemBaseRoutine.cs +++ b/Modules/Mainframe/EFEMs/Routines/Base/EfemBaseRoutine.cs @@ -79,22 +79,7 @@ namespace SicModules.EFEMs.Routines.Base _loadWaferClaw = DEVICE.GetDevice($"LoadLock.LLWaferClaw"); _unLoadWaferClaw = DEVICE.GetDevice($"UnLoad.UnLoadWaferClaw"); } - - public virtual Result Start(params object[] objs) - { - return Result.DONE; - } - - public virtual Result Monitor() - { - return Result.DONE; - } - - public virtual void Abort() - { - - } - + protected void CheckTraySensor(int id) { Tuple ret = Execute(id, () => diff --git a/Modules/Mainframe/EFEMs/TrayRobotModule.cs b/Modules/Mainframe/EFEMs/TrayRobotModule.cs index 09331bc..fd94b22 100644 --- a/Modules/Mainframe/EFEMs/TrayRobotModule.cs +++ b/Modules/Mainframe/EFEMs/TrayRobotModule.cs @@ -80,8 +80,6 @@ namespace SicModules.EFEMs } } - public event Action OnEnterError; - private TrayRobotPickRoutine _trayRobotPickRoutine; private TrayRobotPlaceRoutine _trayRobotPlaceRoutine; private TrayRobotHomeRoutine _trayRobotHomeRoutine; @@ -233,8 +231,7 @@ namespace SicModules.EFEMs private bool FsmEnterError(object[] param) { - if (OnEnterError != null) - OnEnterError(Module); + InvokeOnEnterError(Module); return true; } diff --git a/Modules/Mainframe/EFEMs/WaferRobotModule.cs b/Modules/Mainframe/EFEMs/WaferRobotModule.cs index dc651d8..39537c8 100644 --- a/Modules/Mainframe/EFEMs/WaferRobotModule.cs +++ b/Modules/Mainframe/EFEMs/WaferRobotModule.cs @@ -80,8 +80,6 @@ namespace SicModules.EFEMs } } - public event Action OnEnterError; - private WaferRobotHomeRoutine _waferRobotHomeRoutine; private WaferRobotPlaceRoutine _waferRobotPlaceRoutine; private WaferRobotPickRoutine _waferRobotPickRoutine; @@ -234,8 +232,7 @@ namespace SicModules.EFEMs private bool FsmEnterError(object[] param) { - if (OnEnterError != null) - OnEnterError(Module); + InvokeOnEnterError(Module); return true; } diff --git a/Modules/Mainframe/LLs/LoadLockModule.cs b/Modules/Mainframe/LLs/LoadLockModule.cs index 04b1e37..ebc9bfb 100644 --- a/Modules/Mainframe/LLs/LoadLockModule.cs +++ b/Modules/Mainframe/LLs/LoadLockModule.cs @@ -137,8 +137,6 @@ namespace SicModules.LLs } } - public event Action OnEnterError; - private bool _isInit; public SicLoadLock _llDevice { get; set; } @@ -430,8 +428,7 @@ namespace SicModules.LLs private bool FsmEnterError(object[] param) { - if (OnEnterError != null) - OnEnterError(Module); + InvokeOnEnterError(Module); return true; } diff --git a/Modules/Mainframe/LLs/Routines/Base/LoadLockBaseRoutine.cs b/Modules/Mainframe/LLs/Routines/Base/LoadLockBaseRoutine.cs index b936f78..fb852e5 100644 --- a/Modules/Mainframe/LLs/Routines/Base/LoadLockBaseRoutine.cs +++ b/Modules/Mainframe/LLs/Routines/Base/LoadLockBaseRoutine.cs @@ -69,17 +69,14 @@ namespace SicModules.LLs.Routines.Base _loadWaferPlaced = DEVICE.GetDevice($"TM.LLWaferPlaced"); _loadTrayPlaced = DEVICE.GetDevice($"TM.LLTrayPresence"); } - - public virtual Result Start(params object[] objs) + + protected override Result StartBody(params object[] args) { - return Result.DONE; - } - - public virtual Result Monitor() - { - return Result.DONE; + Notify("Start"); + return Result.RUN; } + public override void Abort() { LoadLockDevice.SetSlowPumpValve(false, out _); diff --git a/Modules/Mainframe/PMs/PMModule.cs b/Modules/Mainframe/PMs/PMModule.cs index 1b45024..02e33b4 100644 --- a/Modules/Mainframe/PMs/PMModule.cs +++ b/Modules/Mainframe/PMs/PMModule.cs @@ -323,9 +323,6 @@ namespace SicModules.PMs SetRotationServo(0, 0); } - public event Action OnEnterError; - - //private PMPumpRoutine _pumpRoutine; //private PMVentRoutine _ventRoutine; private PMChamberMoveBodyRoutine _chamberMoveBodyRoutine; @@ -759,9 +756,7 @@ namespace SicModules.PMs private bool FsmEnterError(object[] param) { - if (OnEnterError != null) - OnEnterError(Module); - + InvokeOnEnterError(Module); if (IsOnline) { EV.PostWarningLog(Module, $"{Module}"); diff --git a/Modules/Mainframe/PMs/Routines/Base/PMBaseRoutine.cs b/Modules/Mainframe/PMs/Routines/Base/PMBaseRoutine.cs index 3ae99c5..47539c8 100644 --- a/Modules/Mainframe/PMs/Routines/Base/PMBaseRoutine.cs +++ b/Modules/Mainframe/PMs/Routines/Base/PMBaseRoutine.cs @@ -102,18 +102,13 @@ namespace SicModules.PMs.Routines.Base _pm = pm1; } - - public virtual Result Start(params object[] objs) + protected override Result StartBody(params object[] args) { + Notify("Start"); return Result.DONE; } - public virtual Result Monitor() - { - return Result.DONE; - } - - public virtual void Abort() + public override void Abort() { _pm.SetMfcToDefaultByGroup(MfcGroupName.M27toM40); } diff --git a/Modules/Mainframe/PMs/Routines/PMProcessRoutine.cs b/Modules/Mainframe/PMs/Routines/PMProcessRoutine.cs index 2baa4b8..4da413b 100644 --- a/Modules/Mainframe/PMs/Routines/PMProcessRoutine.cs +++ b/Modules/Mainframe/PMs/Routines/PMProcessRoutine.cs @@ -52,10 +52,9 @@ namespace SicModules.PMs.Routines return Result.DONE; } - public Result Start(params object[] objs) + + protected override Result StartBody(params object[] objs) { - Reset(); - if (_paramWithWafer && !WaferManager.Instance.CheckHasWafer(_pm.Module, 0)) { EV.PostWarningLog(Module, $"can not run process, No wafer at {Module}"); @@ -96,35 +95,16 @@ namespace SicModules.PMs.Routines } - public Result Monitor() + protected override void MonitorBody() { - try - { - Process((int)RoutineStep.Process, _pm, _paramRecipeName, _recipeContent, _timeout); - - NoteInProcess((int) RoutineStep.NoteInProcess, _pm.Module, 0); - - WaitProcess((int)RoutineStep.WaitProcess, _pm,_timeout); - - NoteProcessComplete((int)RoutineStep.NoteProcessComplete, _pm.Module, 0); - } - catch (RoutineBreakException) - { - return Result.RUN; - } - catch (RoutineFaildException) - { - NoteProcessFailed((int) RoutineStep.NoteProcessFailed, _pm.Module, 0); - - return Result.FAIL; - } - - Notify("Finished"); + Process((int)RoutineStep.Process, _pm, _paramRecipeName, _recipeContent, _timeout); + NoteInProcess((int)RoutineStep.NoteInProcess, _pm.Module, 0); + WaitProcess((int)RoutineStep.WaitProcess, _pm, _timeout); + NoteProcessComplete((int)RoutineStep.NoteProcessComplete, _pm.Module, 0); SetRoutineRuningDo(); - return Result.DONE; } - public void Abort() + public override void Abort() { SetRoutineRuningDo(); } diff --git a/Modules/Mainframe/TMs/Routines/Base/TMBaseRoutine.cs b/Modules/Mainframe/TMs/Routines/Base/TMBaseRoutine.cs index 23d3063..e9e7b40 100644 --- a/Modules/Mainframe/TMs/Routines/Base/TMBaseRoutine.cs +++ b/Modules/Mainframe/TMs/Routines/Base/TMBaseRoutine.cs @@ -81,17 +81,14 @@ namespace SicModules.TMs.Routines.Base _reactorSuspectorCheckPM2 = DEVICE.GetDevice($"PM2.SensorReactorSuspectorCheck"); } - public virtual Result Start(params object[] objs) + protected override Result StartBody(params object[] args) { - return Result.DONE; + Notify("Start"); + return Result.RUN; } - public virtual Result Monitor() - { - return Result.DONE; - } - - public virtual void Abort() + + public override void Abort() { _tm.SetAllValvesClose(out string reason); } @@ -1545,7 +1542,7 @@ namespace SicModules.TMs.Routines.Base } } - public void CloseSlowPump(int id, TM tm) + public virtual void CloseSlowPump(int id, TM tm) { Tuple ret = Execute(id, () => { diff --git a/Modules/Mainframe/TMs/Routines/TMLeakcheckRoutine.cs b/Modules/Mainframe/TMs/Routines/TMLeakcheckRoutine.cs index 9a7a9e7..4a8443d 100644 --- a/Modules/Mainframe/TMs/Routines/TMLeakcheckRoutine.cs +++ b/Modules/Mainframe/TMs/Routines/TMLeakcheckRoutine.cs @@ -95,13 +95,9 @@ namespace SicModules.TMs.Routines _paramLeakCheckTime = SC.GetValue("TM.LeakCheck.LeakCheckDelayTime"); ; } - - public Result Start(params object[] objs) + protected override Result StartBody(params object[] args) { - Reset(); - _swTimer.Restart(); - - _pumpRoutine.Init(SC.GetValue("TM.LeakCheck.PumpBasePressure"), SC.GetValue("TM.LeakCheck.PumpDelayTime")); + _pumpRoutine.Init(SC.GetValue("TM.LeakCheck.PumpBasePressure"), SC.GetValue("TM.LeakCheck.PumpDelayTime")); _ventRoutine.Init(SC.GetValue("TM.LeakCheck.VentBasePressure"), SC.GetValue("TM.LeakCheck.VentDelayTime")); string reason; @@ -170,50 +166,33 @@ namespace SicModules.TMs.Routines EV.PostAlarmLog(Module, $"can not leakCheck,{reason}"); return Result.FAIL; } - + Notify("Start"); return Result.RUN; } - public Result Monitor() + protected override void MonitorBody() { - try - { - CheckRoutineTimeOut(); + CheckRoutineTimeOut(); - Loop((int)RoutineStep.StartLoop, _purgeCount); - ExecuteRoutine((int)RoutineStep.LoopPump, _pumpRoutine); - ExecuteRoutine((int)RoutineStep.LoopVent, _ventRoutine); - EndLoop((int)RoutineStep.StopLoop); + Loop((int)RoutineStep.StartLoop, _purgeCount); + ExecuteRoutine((int)RoutineStep.LoopPump, _pumpRoutine); + ExecuteRoutine((int)RoutineStep.LoopVent, _ventRoutine); + EndLoop((int)RoutineStep.StopLoop); - OpenSlowPump((int)RoutineStep.SlowPump, _tm, _slowFastPumpSwitchPressure, _slowPumpTimeout); - OpenFastPump((int)RoutineStep.FastPump, _tm, _pumpBasePressure, _fastPumpTime); - TimeDelay((int)RoutineStep.VaccumDelay, _paramContinuePumpTime); - CloseFastPump((int)RoutineStep.CloseValves, _tm); - CloseSlowPump((int)RoutineStep.CLoseSlowValue, _tm); + OpenSlowPump((int)RoutineStep.SlowPump, _tm, _slowFastPumpSwitchPressure, _slowPumpTimeout); + OpenFastPump((int)RoutineStep.FastPump, _tm, _pumpBasePressure, _fastPumpTime); + TimeDelay((int)RoutineStep.VaccumDelay, _paramContinuePumpTime); + CloseFastPump((int)RoutineStep.CloseValves, _tm); + CloseSlowPump((int)RoutineStep.CLoseSlowValue, _tm); - DoLeakCheck((int)RoutineStep.DoLeakCheck, _paramLeakCheckTime); - CalcLeackCheckPerMinute(_paramLeakCheckTime); - //CalcLeakCheck((int)RoutineStep.CalcLeakCheck, _paramLeakCheckTime); - } - catch (RoutineBreakException) - { - return Result.RUN; - } - catch (RoutineFaildException) - { - return Result.FAIL; - } - - - Notify($"Finished ! Elapsed time: {(int)(_swTimer.ElapsedMilliseconds / 1000)} s"); - _tmIoInterLock.DoTmLeakCheckRoutineRunning = false; - _swTimer.Stop(); - return Result.DONE; + DoLeakCheck((int)RoutineStep.DoLeakCheck, _paramLeakCheckTime); + CalcLeackCheckPerMinute(_paramLeakCheckTime); + //CalcLeakCheck((int)RoutineStep.CalcLeakCheck, _paramLeakCheckTime); } - - public void Abort() + + public override void Abort() { Stop("Leak check aborted"); _tmIoInterLock.DoTmLeakCheckRoutineRunning = false; diff --git a/Modules/Mainframe/TMs/Routines/TMPressureBalancePidRoutine.cs b/Modules/Mainframe/TMs/Routines/TMPressureBalancePidRoutine.cs index 14b3d75..4c86b2c 100644 --- a/Modules/Mainframe/TMs/Routines/TMPressureBalancePidRoutine.cs +++ b/Modules/Mainframe/TMs/Routines/TMPressureBalancePidRoutine.cs @@ -582,7 +582,7 @@ namespace SicModules.TMs.Routines } } - public void CloseSlowPump(int id, TM tm) + public override void CloseSlowPump(int id, TM tm) { Tuple ret = Execute(id, () => { diff --git a/Modules/Mainframe/TMs/Routines/TMVerifySlitValveRoutine.cs b/Modules/Mainframe/TMs/Routines/TMVerifySlitValveRoutine.cs index db20a57..2969245 100644 --- a/Modules/Mainframe/TMs/Routines/TMVerifySlitValveRoutine.cs +++ b/Modules/Mainframe/TMs/Routines/TMVerifySlitValveRoutine.cs @@ -32,41 +32,17 @@ namespace SicModules.TMs.Routines } - public Result Start(params object[] objs) + protected override Result StartBody(params object[] args) { - Reset(); - Notify("Start"); return Result.RUN; } - - public Result Monitor() + protected override void MonitorBody() { - try - { - VerifySlitValve((int)RoutineStep.VerifySlitValve, _tm); - } - catch (RoutineBreakException) - { - return Result.RUN; - } - catch (RoutineFaildException) - { - return Result.FAIL; - } - - - Notify("Finished"); - - return Result.DONE; + VerifySlitValve((int)RoutineStep.VerifySlitValve, _tm); } - - public void Abort() - { - - } - + public void VerifySlitValve(int id, TM tm) { Tuple ret = Execute(id, () => diff --git a/Modules/Mainframe/TMs/TMModule.cs b/Modules/Mainframe/TMs/TMModule.cs index 95787ec..2c4f4f0 100644 --- a/Modules/Mainframe/TMs/TMModule.cs +++ b/Modules/Mainframe/TMs/TMModule.cs @@ -169,8 +169,6 @@ namespace SicModules.TMs } } - public event Action OnEnterError; - public SicTMRobot RobotDevice { get; set; } public SicTM TMDevice { get; set; } @@ -671,8 +669,7 @@ namespace SicModules.TMs private bool FsmEnterError(object[] param) { - if (OnEnterError != null) - OnEnterError(Module); + InvokeOnEnterError(Module); return true; } diff --git a/Modules/Mainframe/UnLoads/UnLoadModule.cs b/Modules/Mainframe/UnLoads/UnLoadModule.cs index 5e728a8..afabacb 100644 --- a/Modules/Mainframe/UnLoads/UnLoadModule.cs +++ b/Modules/Mainframe/UnLoads/UnLoadModule.cs @@ -131,9 +131,7 @@ namespace SicModules.UnLoads return 0; } } - - public event Action OnEnterError; - + private bool _isInit; public SicUnLoad _unLoadDevice { get; set; } @@ -389,8 +387,7 @@ namespace SicModules.UnLoads private bool FsmEnterError(object[] param) { - if (OnEnterError != null) - OnEnterError(Module); + InvokeOnEnterError(Module); return true; } diff --git a/SicRT/Equipments/Systems/EquipmentManager.cs b/SicRT/Equipments/Systems/EquipmentManager.cs index dbc23c0..a90c5c6 100644 --- a/SicRT/Equipments/Systems/EquipmentManager.cs +++ b/SicRT/Equipments/Systems/EquipmentManager.cs @@ -1204,7 +1204,7 @@ namespace SicRT.Equipments.Systems #endregion - private void OnModuleError(string module) + private void OnModuleError(object sender, string module) { if (FsmState == (int)RtState.AutoRunning) {