|
|
@@ -147,7 +147,7 @@ namespace FurnaceRT.Equipments.Boats
|
|
|
case "boatcap2":
|
|
|
AutoShutterOpen((int)RoutineStep.AutoShutterOpen, true, _shutterTimeout);
|
|
|
|
|
|
- CheckBoatLoadO2Desity((int)RoutineStep.Load, _zAxisTimeout);
|
|
|
+ CheckBoatMoveO2Desity((int)RoutineStep.Load, _zAxisTimeout, N2PurgeModeEnum.BoatLoad.ToString());
|
|
|
|
|
|
var position = (BoatPosition)Enum.Parse(typeof(BoatPosition), _position);
|
|
|
|
|
|
@@ -157,7 +157,7 @@ namespace FurnaceRT.Equipments.Boats
|
|
|
case "boatloaderhome":
|
|
|
AutoShutterOpen((int)RoutineStep.AutoShutterOpen, true, _shutterTimeout);
|
|
|
|
|
|
- CheckBoatUnLoadO2Desity((int)RoutineStep.Unload, _zAxisTimeout);
|
|
|
+ CheckBoatMoveO2Desity((int)RoutineStep.Unload, _zAxisTimeout, N2PurgeModeEnum.BoatUnLoad.ToString());
|
|
|
|
|
|
//CheckPrepareMove((int)RoutineStep.CheckPrepareMove, 2);
|
|
|
|
|
|
@@ -198,89 +198,34 @@ namespace FurnaceRT.Equipments.Boats
|
|
|
Notify("Finished");
|
|
|
return Result.DONE;
|
|
|
}
|
|
|
- private void CheckBoatUnLoadO2Desity(int id, int timeout)
|
|
|
+ private void CheckBoatMoveO2Desity(int id, int timeout, string boatMoveN2Purge)
|
|
|
{
|
|
|
var reason = "";
|
|
|
Tuple<bool, Result> ret = ExecuteAndWait(id, () =>
|
|
|
{
|
|
|
- Notify($"Check Boat UnLoad O2Desity");
|
|
|
+ Notify($"Check {boatMoveN2Purge} O2Desity");
|
|
|
return true;
|
|
|
}, () =>
|
|
|
{
|
|
|
var pm = (Singleton<EquipmentManager>.Instance.Modules[ModuleName.PM1] as PMModule);
|
|
|
|
|
|
- if (!pm.IsProcessing)
|
|
|
- {
|
|
|
- LOG.Info($"boat Unload Check O2Desity,IsProcessing={pm.IsProcessing}");
|
|
|
- return true;
|
|
|
- }
|
|
|
- var isCheckO2Enbale = pm.GetBoatUnLoadCheckO2DensityConfig();
|
|
|
+ var isCheckO2Enbale = pm.CheckBoatMoveIsNeedOxygenPressure(boatMoveN2Purge, pm.IsProcessing, out var o2LimtData);
|
|
|
if (!isCheckO2Enbale)
|
|
|
return true;
|
|
|
|
|
|
- var o2LimtData = pm.GetBoatUnLoadLAO2CheckSV();
|
|
|
_filterChecker.Monitor(pm.GetN2PurgeUnder20PPMStatus(o2LimtData));
|
|
|
if (_filterChecker.Trig)
|
|
|
{
|
|
|
pm.IsWait = false;
|
|
|
- LOG.Info($"boat Check O2Desity,boatUnLoad TransferRoomO2DensityCheckEnable={isCheckO2Enbale},LA LimtData={o2LimtData},Wait BoatUnLoad。A");
|
|
|
+ LOG.Info($"{boatMoveN2Purge} Check O2Desity,TransferRoomO2DensityCheckEnable={isCheckO2Enbale},LA LimtData={o2LimtData},Wait {boatMoveN2Purge}。A");
|
|
|
_filterChecker.Restart();
|
|
|
return true;
|
|
|
}
|
|
|
- pm.IsWait = true;
|
|
|
- return false; ;
|
|
|
-
|
|
|
-
|
|
|
- }, timeout * 1000);
|
|
|
-
|
|
|
- if (ret.Item1)
|
|
|
- {
|
|
|
- if (ret.Item2 == Result.FAIL)
|
|
|
- {
|
|
|
- throw (new RoutineFaildException());
|
|
|
- }
|
|
|
- else if (ret.Item2 == Result.TIMEOUT) //timeout
|
|
|
- {
|
|
|
- _boatModule.BoatZAxisMoveFailedForInterlock.Set($"CheckO2Desity timeout={timeout}");
|
|
|
- throw (new RoutineFaildException());
|
|
|
- }
|
|
|
- else
|
|
|
- throw (new RoutineBreakException());
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- private void CheckBoatLoadO2Desity(int id, int timeout)
|
|
|
- {
|
|
|
- var reason = "";
|
|
|
- Tuple<bool, Result> ret = ExecuteAndWait(id, () =>
|
|
|
- {
|
|
|
- Notify($"Check O2");
|
|
|
- return true;
|
|
|
- }, () =>
|
|
|
- {
|
|
|
- var pm = (Singleton<EquipmentManager>.Instance.Modules[ModuleName.PM1] as PMModule);
|
|
|
-
|
|
|
- if (!pm.IsProcessing)
|
|
|
+ if (!pm.IsWait)
|
|
|
{
|
|
|
- LOG.Info($"boat load Check O2Desity,IsProcessing={pm.IsProcessing}");
|
|
|
- return true;
|
|
|
+ pm.IsWait = true;
|
|
|
}
|
|
|
|
|
|
- var isCheckO2Enbale = pm.GetBoatLoadCheckO2DensityConfig();
|
|
|
- if (!isCheckO2Enbale)
|
|
|
- return true;
|
|
|
-
|
|
|
- var o2LimtData = pm.GetBoatLoadLAO2CheckSV();
|
|
|
- _filterChecker.Monitor(pm.GetN2PurgeUnder20PPMStatus(o2LimtData));
|
|
|
- if (_filterChecker.Trig)
|
|
|
- {
|
|
|
- pm.IsWait = false;
|
|
|
- _filterChecker.Restart();
|
|
|
- LOG.Info($"boat load Check O2Desity,boatLoad TransferRoomO2DensityCheckEnable={isCheckO2Enbale},LA LimtData={o2LimtData},Wait BoatLoad。A");
|
|
|
- return true;
|
|
|
- }
|
|
|
-
|
|
|
- pm.IsWait = true;
|
|
|
return false; ;
|
|
|
|
|
|
|
|
|
@@ -294,7 +239,7 @@ namespace FurnaceRT.Equipments.Boats
|
|
|
}
|
|
|
else if (ret.Item2 == Result.TIMEOUT) //timeout
|
|
|
{
|
|
|
- _boatModule.BoatZAxisMoveFailedForInterlock.Set($"CheckO2Desity timeout={timeout}");
|
|
|
+ _boatModule.BoatZAxisMoveFailedForInterlock.Set($"{boatMoveN2Purge} CheckO2Desity timeout={timeout}");
|
|
|
throw (new RoutineFaildException());
|
|
|
}
|
|
|
else
|
|
|
@@ -302,6 +247,7 @@ namespace FurnaceRT.Equipments.Boats
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+
|
|
|
private void CheckPrepareMove(int id, int timeout)
|
|
|
{
|
|
|
var reason = "";
|