|
@@ -20,6 +20,7 @@ using Venus_RT.Devices;
|
|
|
using Venus_RT.Devices.PreAligner;
|
|
|
using Venus_RT.Devices.VCE;
|
|
|
using Venus_RT.Modules.PMs;
|
|
|
+using static Mono.Security.X509.X520;
|
|
|
|
|
|
namespace Venus_RT.Modules.TM.VenusEntity
|
|
|
{
|
|
@@ -141,7 +142,9 @@ namespace Venus_RT.Modules.TM.VenusEntity
|
|
|
return RState.Running;
|
|
|
}
|
|
|
}
|
|
|
- public bool IsOnline { get; internal set; }
|
|
|
+
|
|
|
+ private bool _IsOnline;
|
|
|
+ public bool IsOnline => _IsOnline;
|
|
|
|
|
|
//public bool IsTMVac => _tm.IsTMVac;
|
|
|
//public bool IsTMATM => _tm.IsTMATM;
|
|
@@ -210,6 +213,8 @@ namespace Venus_RT.Modules.TM.VenusEntity
|
|
|
DATA.Subscribe("SETM.RobotMoveAction.ArmTarget", () => _robot.TMRobotMoveInfo.ArmTarget.ToString(), SubscriptionAttribute.FLAG.IgnoreSaveDB);
|
|
|
DATA.Subscribe("SETM.RobotMoveAction.BladeTarget", () => _robot.TMRobotMoveInfo.BladeTarget, SubscriptionAttribute.FLAG.IgnoreSaveDB);
|
|
|
DATA.Subscribe("SETM.RobotMoveAction.RobotAction", () => _robot.TMRobotMoveInfo.Action.ToString(), SubscriptionAttribute.FLAG.IgnoreSaveDB);
|
|
|
+ DATA.Subscribe("SETM.IsOnline", () => IsOnline, SubscriptionAttribute.FLAG.IgnoreSaveDB);
|
|
|
+ DATA.Subscribe("SETM.IsOffline", () => !IsOnline, SubscriptionAttribute.FLAG.IgnoreSaveDB);
|
|
|
|
|
|
OP.Subscribe("SETM.Goto", (cmd, args) => RobotGoto(args));
|
|
|
OP.Subscribe("SETM.Home", (cmd, args) => { PostMsg(MSG.Home); return true; });
|
|
@@ -223,6 +228,20 @@ namespace Venus_RT.Modules.TM.VenusEntity
|
|
|
OP.Subscribe("SETM.PMPlace", (cmd, args) => { PostMsg(MSG.PMPlace, args); return true; });
|
|
|
OP.Subscribe("SETM.PumpDown", (cmd, args) => { PostMsg(MSG.Pump); return true; });
|
|
|
OP.Subscribe("SETM.Vent", (cmd, args) => { PostMsg(MSG.Vent); return true; });
|
|
|
+ OP.Subscribe("SETM.SetOnline", (cmd, args) =>
|
|
|
+ {
|
|
|
+ if (IsIdle)
|
|
|
+ _IsOnline = true;
|
|
|
+ else
|
|
|
+ LOG.Write(eEvent.WARN_TM,ModuleName.TM,"cannot Set Online as TM is not idle");
|
|
|
+
|
|
|
+ return true;
|
|
|
+ });
|
|
|
+ OP.Subscribe("SETM.SetOffline", (cmd, args) =>
|
|
|
+ {
|
|
|
+ _IsOnline = false;
|
|
|
+ return true;
|
|
|
+ });
|
|
|
return true;
|
|
|
}
|
|
|
|
|
@@ -608,74 +627,23 @@ namespace Venus_RT.Modules.TM.VenusEntity
|
|
|
|
|
|
private bool ControlPressureTimer_Elapsed(object[] param)
|
|
|
{
|
|
|
- // robot is idle
|
|
|
-
|
|
|
- // not atmmode
|
|
|
- //if (RouteManager.IsATMMode)
|
|
|
- //{
|
|
|
- // return true;
|
|
|
- //}
|
|
|
- //
|
|
|
- //if (true)
|
|
|
- //{
|
|
|
- // if (startControlPressureFlag == true)
|
|
|
- // {
|
|
|
- // //_tmControlPressureRoutine.Start(param);
|
|
|
- // _controlPressureCheckPoint = SC.GetValue<int>($"SETM.ControlPressureCheckPoint");
|
|
|
- // _controlPressureSetPoint = SC.GetValue<int>($"SETM.ControlPressureSetPoint");
|
|
|
- // _controlFlowSetPoint = SC.GetValue<int>($"SETM.TM_MFC1.DefaultSetPoint");
|
|
|
- // startControlPressureFlag = false;
|
|
|
- // stopControlPressureFlag = false;
|
|
|
- // _pumpRoutine.Start();
|
|
|
- // }
|
|
|
- // RState ret = _pumpRoutine.Monitor();
|
|
|
- // if (ret == RState.End && _tm.ChamberPressure <= _controlPressureCheckPoint)
|
|
|
- // {
|
|
|
- // if (stopControlPressureFlag == false)
|
|
|
- // {
|
|
|
- // stopControlPressureFlag = true;
|
|
|
- // _tm.TurnFastPumpValve(ModuleName.TM, true);
|
|
|
- // //_tm.TurnN2Valve(true);
|
|
|
- // //_tm.TurnPurgeValve(ModuleName.TM, true);
|
|
|
- // if (_tm.AllPMSlitDoorClosed)
|
|
|
- // {
|
|
|
- // _tm.SwitchTMPressureMode(true);
|
|
|
- // _tm.SetTMPressure(_controlPressureSetPoint);
|
|
|
- // }
|
|
|
- // else
|
|
|
- // {
|
|
|
- // _tm.SwitchTMPressureMode(false);
|
|
|
- // _tm.SetTMFlow(_controlFlowSetPoint);
|
|
|
- // }
|
|
|
- // if (_tm.PMASlitDoorClosed == false || _tm.PMBSlitDoorClosed == false || _tm.PMCSlitDoorClosed == false || _tm.PMDSlitDoorClosed == false)
|
|
|
- // {
|
|
|
- // _tm.SwitchTMPressureMode(false);
|
|
|
- // }
|
|
|
- // else
|
|
|
- // {
|
|
|
- // _tm.SwitchTMPressureMode(true);
|
|
|
- // }
|
|
|
- // }
|
|
|
- //
|
|
|
- // }
|
|
|
- //}
|
|
|
- //else
|
|
|
- //{
|
|
|
- // if (stopControlPressureFlag == true)
|
|
|
- // {
|
|
|
- // _tm.TurnFastPumpValve(ModuleName.TM, false);
|
|
|
- // //_tm.TurnN2Valve(false);
|
|
|
- // //_tm.TurnPurgeValve(ModuleName.TM, false);
|
|
|
- // //_tm.SetTMPressure(0);
|
|
|
- // _tm.SetTMFlow(0);
|
|
|
- // //startControlPressureFlag = true;
|
|
|
- // //stopControlPressureFlag = false;
|
|
|
- // }
|
|
|
- //
|
|
|
- // startControlPressureFlag = true;
|
|
|
- // stopControlPressureFlag = false;
|
|
|
- //}
|
|
|
+ if (RouteManager.IsATMMode)
|
|
|
+ return true;
|
|
|
|
|
|
+ if (IsOnline && _tm.PumpingState == HongHuTM.PumpState.Idle)
|
|
|
+ {
|
|
|
+ if (SC.GetValue<bool>($"SETM.PressureControl.ControlWriteMode"))
|
|
|
+ {
|
|
|
+ SC.SetItemValue("SETM.PressureControl.ControlWriteMode",false);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ if (!SC.GetValue<bool>($"SETM.PressureControl.ControlWriteMode"))
|
|
|
+ {
|
|
|
+ SC.SetItemValue("SETM.PressureControl.ControlWriteMode", true);
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
return true;
|
|
|
}
|