|
@@ -22,19 +22,35 @@ using System.Threading.Tasks;
|
|
|
|
|
|
|
|
namespace PunkHPX8_RT.Modules.PlatingCell
|
|
namespace PunkHPX8_RT.Modules.PlatingCell
|
|
|
{
|
|
{
|
|
|
- public class DunmmyRinseRunRecipeRoutine : RoutineBase, IRoutine
|
|
|
|
|
|
|
+ public class DummyRinseRunRecipeRoutine : RoutineBase, IRoutine
|
|
|
{
|
|
{
|
|
|
private enum RunRecipeStep
|
|
private enum RunRecipeStep
|
|
|
{
|
|
{
|
|
|
LoopStart,
|
|
LoopStart,
|
|
|
- InterRinse,
|
|
|
|
|
- CheckInterRinse,
|
|
|
|
|
- Reclaim,
|
|
|
|
|
- CheckReclaim,
|
|
|
|
|
- Rinse,
|
|
|
|
|
- CheckRinse,
|
|
|
|
|
- Dry,
|
|
|
|
|
- CheckDry,
|
|
|
|
|
|
|
+
|
|
|
|
|
+ //interval rinse
|
|
|
|
|
+ LoopCheckVerticalIntervalRinseStation,
|
|
|
|
|
+ IntervalRinseOpenRinseValve,
|
|
|
|
|
+ StartRotation,
|
|
|
|
|
+ WaitRotation,
|
|
|
|
|
+ IntervalRinseCloseRinseValve,
|
|
|
|
|
+ //reclaim
|
|
|
|
|
+ LoopCheckVerticalRelciamStation,
|
|
|
|
|
+ ReclaimChangeRotationSpeed,
|
|
|
|
|
+ ReclaimRotationDelay,
|
|
|
|
|
+ //rinse
|
|
|
|
|
+ LoopCheckVerticalRinseStation,
|
|
|
|
|
+ RinseOpenRinseValve,
|
|
|
|
|
+ RinseChangeRotationSpeed,
|
|
|
|
|
+ RinseRotationDelay,
|
|
|
|
|
+ RinseCloseRinseValve,
|
|
|
|
|
+ //Dry
|
|
|
|
|
+ LoopCheckVerticalDryStation,
|
|
|
|
|
+ DryChangeRotationSpeed,
|
|
|
|
|
+ DryRotationDelay,
|
|
|
|
|
+ RotationStop,
|
|
|
|
|
+ CheckRotationStoped,
|
|
|
|
|
+
|
|
|
LoopEnd,
|
|
LoopEnd,
|
|
|
End
|
|
End
|
|
|
}
|
|
}
|
|
@@ -54,7 +70,11 @@ namespace PunkHPX8_RT.Modules.PlatingCell
|
|
|
/// <summary>
|
|
/// <summary>
|
|
|
/// recipe
|
|
/// recipe
|
|
|
/// </summary>
|
|
/// </summary>
|
|
|
- private DepRecipe _recipe;
|
|
|
|
|
|
|
+ private DqdrRecipe _recipe;
|
|
|
|
|
+ /// <summary>
|
|
|
|
|
+ /// 匹配的platingcell的dep recipe
|
|
|
|
|
+ /// </summary>
|
|
|
|
|
+ private DepRecipe _matchPlatingCellDepDeprecipe;
|
|
|
/// <summary>
|
|
/// <summary>
|
|
|
/// Platingcell device
|
|
/// Platingcell device
|
|
|
/// </summary>
|
|
/// </summary>
|
|
@@ -77,7 +97,11 @@ namespace PunkHPX8_RT.Modules.PlatingCell
|
|
|
/// <summary>
|
|
/// <summary>
|
|
|
/// platingcell entity
|
|
/// platingcell entity
|
|
|
/// </summary>
|
|
/// </summary>
|
|
|
- private PlatingCellEntity _platingCellEntity;
|
|
|
|
|
|
|
+ private PlatingCellEntity _platingCellEntity;
|
|
|
|
|
+ /// <summary>
|
|
|
|
|
+ /// 另一边的platingcell entity
|
|
|
|
|
+ /// </summary>
|
|
|
|
|
+ private PlatingCellEntity _matchPlatingCellEntity;
|
|
|
/// <summary>
|
|
/// <summary>
|
|
|
/// 对应reservoir entity
|
|
/// 对应reservoir entity
|
|
|
/// </summary>
|
|
/// </summary>
|
|
@@ -87,37 +111,9 @@ namespace PunkHPX8_RT.Modules.PlatingCell
|
|
|
/// </summary>
|
|
/// </summary>
|
|
|
private PlatingCellVerticalEntity _verticalEntity;
|
|
private PlatingCellVerticalEntity _verticalEntity;
|
|
|
/// <summary>
|
|
/// <summary>
|
|
|
- /// vertical 轴的位置数据
|
|
|
|
|
- /// </summary>
|
|
|
|
|
- private BeckhoffStationAxis _verticalBeckhoffStation;
|
|
|
|
|
- /// <summary>
|
|
|
|
|
/// run recipe 过程中电机会停的位置(需要根据recipe计算出来)
|
|
/// run recipe 过程中电机会停的位置(需要根据recipe计算出来)
|
|
|
/// </summary>
|
|
/// </summary>
|
|
|
- #region 电镀通电相关
|
|
|
|
|
- /// <summary>
|
|
|
|
|
- /// 不通电
|
|
|
|
|
- /// </summary>
|
|
|
|
|
- private bool _isZeroCurrent = false;
|
|
|
|
|
- #endregion
|
|
|
|
|
|
|
|
|
|
- #region routine
|
|
|
|
|
- /// <summary>
|
|
|
|
|
- /// interbal rinse routien
|
|
|
|
|
- /// </summary>
|
|
|
|
|
- private PlatingCellInterRinseRoutine _interRinseRoutine;
|
|
|
|
|
- /// <summary>
|
|
|
|
|
- /// reclaim routien
|
|
|
|
|
- /// </summary>
|
|
|
|
|
- private PlatingCellReclaimRoutine _reclaimRoutine;
|
|
|
|
|
- /// <summary>
|
|
|
|
|
- /// Rinse routien
|
|
|
|
|
- /// </summary>
|
|
|
|
|
- private PlatingCellRinseRoutine _rinseRoutine;
|
|
|
|
|
- /// <summary>
|
|
|
|
|
- /// Dry routien
|
|
|
|
|
- /// </summary>
|
|
|
|
|
- private PlatingCellDryRoutine _dryRoutine;
|
|
|
|
|
- #endregion
|
|
|
|
|
|
|
|
|
|
#region 属性
|
|
#region 属性
|
|
|
#endregion
|
|
#endregion
|
|
@@ -127,12 +123,9 @@ namespace PunkHPX8_RT.Modules.PlatingCell
|
|
|
/// 构造函数
|
|
/// 构造函数
|
|
|
/// </summary>
|
|
/// </summary>
|
|
|
/// <param name="module"></param>
|
|
/// <param name="module"></param>
|
|
|
- public DunmmyRinseRunRecipeRoutine(string module) : base(module)
|
|
|
|
|
|
|
+ public DummyRinseRunRecipeRoutine(string module) : base(module)
|
|
|
{
|
|
{
|
|
|
- _interRinseRoutine = new PlatingCellInterRinseRoutine(module);
|
|
|
|
|
- _reclaimRoutine = new PlatingCellReclaimRoutine(module);
|
|
|
|
|
- _rinseRoutine = new PlatingCellRinseRoutine(module);
|
|
|
|
|
- _dryRoutine = new PlatingCellDryRoutine(module);
|
|
|
|
|
|
|
+
|
|
|
}
|
|
}
|
|
|
/// <summary>
|
|
/// <summary>
|
|
|
/// 中止
|
|
/// 中止
|
|
@@ -148,82 +141,107 @@ namespace PunkHPX8_RT.Modules.PlatingCell
|
|
|
public RState Monitor()
|
|
public RState Monitor()
|
|
|
{
|
|
{
|
|
|
|
|
|
|
|
- Runner.LoopStart(RunRecipeStep.LoopStart, "Loop Start Cycle Run Platingcell Recipe Routine", _cycle, NullFun, _delay_1ms)
|
|
|
|
|
- //interval rinse
|
|
|
|
|
- .LoopRunIf(RunRecipeStep.InterRinse, _recipe.RinseBeforeEntryEnable, () => { return _interRinseRoutine.Start(_recipe, LARGETARGETPOSITION) == RState.Running; })
|
|
|
|
|
- .LoopRunIfWithStopStatus(RunRecipeStep.CheckInterRinse, _recipe.RinseBeforeEntryEnable, CheckInterRinseEndStatus,
|
|
|
|
|
- () => CommonFunction.CheckRoutineStopState(_interRinseRoutine))
|
|
|
|
|
|
|
+ Runner.LoopStart(RunRecipeStep.LoopStart, "Loop Start Cycle Run DummyRinse Recipe Routine", _cycle, NullFun, _delay_1ms)
|
|
|
|
|
+ //interval risne
|
|
|
|
|
+ .LoopRunIfOnlyTimeOutFault(RunRecipeStep.LoopCheckVerticalIntervalRinseStation, _matchPlatingCellEntity.IsInRecipe && _recipe.RinseBeforeEntryEnable,
|
|
|
|
|
+ () => CheckVerticalInStation("Rinse", _matchPlatingCellDepDeprecipe.IntervalRinseZoffset), ALL_DAY_MILLOSECONDS)
|
|
|
|
|
+ .LoopRunIf(RunRecipeStep.IntervalRinseOpenRinseValve, _matchPlatingCellEntity.IsInRecipe && _recipe.RinseBeforeEntryEnable, _device.RinseEnableAction, _delay_1ms)
|
|
|
|
|
+ .LoopRunIf(RunRecipeStep.StartRotation, _matchPlatingCellEntity.IsInRecipe && _recipe.RinseBeforeEntryEnable, () => { return StartRotation(LARGETARGETPOSITION); }, _delay_1ms)
|
|
|
|
|
+ .LoopDelayIf(RunRecipeStep.WaitRotation, _matchPlatingCellEntity.IsInRecipe && _recipe.RinseBeforeEntryEnable, _recipe.IntervalRinseTime * 1000)
|
|
|
|
|
+ .LoopRunIf(RunRecipeStep.IntervalRinseCloseRinseValve, _matchPlatingCellEntity.IsInRecipe && _recipe.RinseBeforeEntryEnable, _device.RinseDisableAction, _delay_1ms)
|
|
|
|
|
+
|
|
|
//Reclaim
|
|
//Reclaim
|
|
|
- .LoopRun(RunRecipeStep.Reclaim, () => { return _reclaimRoutine.Start(_recipe, _isZeroCurrent, _device.PowerSupplier) == RState.Running; })
|
|
|
|
|
- .LoopRunWithStopStatus(RunRecipeStep.CheckReclaim, CheckReclaimEndStatus, () => CommonFunction.CheckRoutineStopState(_reclaimRoutine))
|
|
|
|
|
|
|
+ .LoopRunIfOnlyTimeOutFault(RunRecipeStep.LoopCheckVerticalIntervalRinseStation, _matchPlatingCellEntity.IsInRecipe,
|
|
|
|
|
+ () => CheckVerticalInStation("Reclaim", _matchPlatingCellDepDeprecipe.ReclaimZoffset), ALL_DAY_MILLOSECONDS)
|
|
|
|
|
+ .LoopRunIf(RunRecipeStep.ReclaimChangeRotationSpeed, _matchPlatingCellEntity.IsInRecipe , () => { return ChangeRotationSpeed(_recipe.ReclaimSpeed); }, _delay_1ms)
|
|
|
|
|
+ .LoopDelayIf(RunRecipeStep.ReclaimRotationDelay, _matchPlatingCellEntity.IsInRecipe , _recipe.ReclaimTime * 1000)
|
|
|
|
|
|
|
|
- //Rinse
|
|
|
|
|
- .LoopRun(RunRecipeStep.Rinse, () => { return _rinseRoutine.Start(_recipe) == RState.Running; })
|
|
|
|
|
- .LoopRunWithStopStatus(RunRecipeStep.CheckRinse, CheckRinseEndStatus,
|
|
|
|
|
- () => CommonFunction.CheckRoutineStopState(_rinseRoutine))
|
|
|
|
|
|
|
+ //Rinse
|
|
|
|
|
+ .LoopRunIfOnlyTimeOutFault(RunRecipeStep.LoopCheckVerticalRinseStation, _matchPlatingCellEntity.IsInRecipe,
|
|
|
|
|
+ () => CheckVerticalInStation("Rinse", _matchPlatingCellDepDeprecipe.RinseZoffset), ALL_DAY_MILLOSECONDS)
|
|
|
|
|
+ .LoopRunIf(RunRecipeStep.RinseOpenRinseValve, _matchPlatingCellEntity.IsInRecipe, _device.RinseEnableAction, _delay_1ms)
|
|
|
|
|
+ .LoopRunIf(RunRecipeStep.RinseChangeRotationSpeed, _matchPlatingCellEntity.IsInRecipe, () => { return ChangeRotationSpeed(_recipe.RinseSpeed); }, _delay_1ms)
|
|
|
|
|
+ .LoopDelayIf(RunRecipeStep.RinseRotationDelay, _matchPlatingCellEntity.IsInRecipe, _recipe.RinseTime * 1000)
|
|
|
|
|
+ .LoopRunIf(RunRecipeStep.RinseCloseRinseValve, _matchPlatingCellEntity.IsInRecipe, _device.RinseDisableAction, _delay_1ms)
|
|
|
|
|
|
|
|
//Dry
|
|
//Dry
|
|
|
- .LoopRun(RunRecipeStep.Dry, () => { return _dryRoutine.Start(_recipe) == RState.Running; })
|
|
|
|
|
- .LoopRunWithStopStatus(RunRecipeStep.CheckDry, CheckDryEndStatus, () => CommonFunction.CheckRoutineStopState(_dryRoutine))
|
|
|
|
|
|
|
+ .LoopRunIfOnlyTimeOutFault(RunRecipeStep.LoopCheckVerticalDryStation, _matchPlatingCellEntity.IsInRecipe && _matchPlatingCellDepDeprecipe.RinseZoffset != _matchPlatingCellDepDeprecipe.DryZoffset,
|
|
|
|
|
+ () => CheckVerticalInStation("Rinse", _matchPlatingCellDepDeprecipe.DryZoffset), ALL_DAY_MILLOSECONDS)
|
|
|
|
|
+ .LoopRunIf(RunRecipeStep.DryChangeRotationSpeed, _matchPlatingCellEntity.IsInRecipe, () => { return ChangeRotationSpeed(_recipe.DrySpeed); }, _delay_1ms)
|
|
|
|
|
+ .LoopDelayIf(RunRecipeStep.DryRotationDelay, _matchPlatingCellEntity.IsInRecipe, _recipe.DryTime * 1000)
|
|
|
|
|
+
|
|
|
|
|
+ .LoopRun(RunRecipeStep.RotationStop, _rotationAxis.StopPositionOperation, _delay_1ms)
|
|
|
|
|
+ .LoopRunWithStopStatus(RunRecipeStep.CheckRotationStoped, CheckRotationPositionStatus, CheckRotationPositionRunStop)
|
|
|
|
|
+
|
|
|
.LoopEnd(RunRecipeStep.LoopEnd, UpdateCycleCount, _delay_1ms)
|
|
.LoopEnd(RunRecipeStep.LoopEnd, UpdateCycleCount, _delay_1ms)
|
|
|
.End(RunRecipeStep.End, NullFun);
|
|
.End(RunRecipeStep.End, NullFun);
|
|
|
return Runner.Status;
|
|
return Runner.Status;
|
|
|
}
|
|
}
|
|
|
- /// 统计完成的Cycle次数
|
|
|
|
|
|
|
+ /// <summary>
|
|
|
|
|
+ /// 查询vertical是否到达某个位置
|
|
|
/// </summary>
|
|
/// </summary>
|
|
|
/// <returns></returns>
|
|
/// <returns></returns>
|
|
|
- private bool UpdateCycleCount()
|
|
|
|
|
|
|
+ private bool CheckVerticalInStation(string station,double offset)
|
|
|
{
|
|
{
|
|
|
- _currentCycle += 1;
|
|
|
|
|
- return true;
|
|
|
|
|
|
|
+ return _verticalEntity.ChecVerticalInPosition(station, offset);
|
|
|
}
|
|
}
|
|
|
/// <summary>
|
|
/// <summary>
|
|
|
- /// 获取当前Cycle次数
|
|
|
|
|
|
|
+ /// rotation开始旋转
|
|
|
/// </summary>
|
|
/// </summary>
|
|
|
|
|
+ /// <param name="param"></param>
|
|
|
/// <returns></returns>
|
|
/// <returns></returns>
|
|
|
- public int GetCurrentCycle()
|
|
|
|
|
|
|
+ private bool StartRotation(int targetPosition)
|
|
|
{
|
|
{
|
|
|
- return _currentCycle;
|
|
|
|
|
|
|
+ bool result = _rotationAxis.ProfilePosition(targetPosition, _recipe.IntervalRinseSpeed * SPEED_RATIO * 6, 0, 0); //rpm->deg/s
|
|
|
|
|
+ if (!result)
|
|
|
|
|
+ {
|
|
|
|
|
+ NotifyError(eEvent.ERR_PLATINGCELL, "Start Rotation is failed", 0);
|
|
|
|
|
+ return false;
|
|
|
|
|
+ }
|
|
|
|
|
+ return true;
|
|
|
}
|
|
}
|
|
|
/// <summary>
|
|
/// <summary>
|
|
|
- /// 检查interval rinse是否完成
|
|
|
|
|
|
|
+ /// rotation改变速度
|
|
|
/// </summary>
|
|
/// </summary>
|
|
|
|
|
+ /// <param name="speed"></param>
|
|
|
/// <returns></returns>
|
|
/// <returns></returns>
|
|
|
- private bool CheckInterRinseEndStatus()
|
|
|
|
|
|
|
+ private bool ChangeRotationSpeed(int speed)
|
|
|
{
|
|
{
|
|
|
- bool result = CommonFunction.CheckRoutineEndState(_interRinseRoutine);
|
|
|
|
|
- SubRoutineStep = _interRinseRoutine.CurrentStep;
|
|
|
|
|
- return result;
|
|
|
|
|
|
|
+ double _scale = _rotationAxis.ScaleFactor;
|
|
|
|
|
+ speed = (int)Math.Round(_scale * BeckhoffVelocityUtil.ConvertVelocityToDegPerSecondByRPM(speed), 0);
|
|
|
|
|
+ return _rotationAxis.ChangeSpeed(speed);
|
|
|
}
|
|
}
|
|
|
/// <summary>
|
|
/// <summary>
|
|
|
- /// 检查Reclaim是否完成
|
|
|
|
|
|
|
+ /// 检验Rotation移动状态
|
|
|
/// </summary>
|
|
/// </summary>
|
|
|
/// <returns></returns>
|
|
/// <returns></returns>
|
|
|
- private bool CheckReclaimEndStatus()
|
|
|
|
|
|
|
+ private bool CheckRotationPositionStatus()
|
|
|
{
|
|
{
|
|
|
- bool result = CommonFunction.CheckRoutineEndState(_reclaimRoutine);
|
|
|
|
|
- SubRoutineStep = _reclaimRoutine.CurrentStep;
|
|
|
|
|
- return result;
|
|
|
|
|
|
|
+ return _rotationAxis.Status == RState.End;
|
|
|
}
|
|
}
|
|
|
/// <summary>
|
|
/// <summary>
|
|
|
- /// 检查Rinse是否完成
|
|
|
|
|
|
|
+ /// 检验Rotation是否运动失败
|
|
|
/// </summary>
|
|
/// </summary>
|
|
|
/// <returns></returns>
|
|
/// <returns></returns>
|
|
|
- private bool CheckRinseEndStatus()
|
|
|
|
|
|
|
+ private bool CheckRotationPositionRunStop()
|
|
|
{
|
|
{
|
|
|
- bool result = CommonFunction.CheckRoutineEndState(_rinseRoutine);
|
|
|
|
|
- SubRoutineStep = _rinseRoutine.CurrentStep;
|
|
|
|
|
- return result;
|
|
|
|
|
|
|
+ return _rotationAxis.Status == RState.Failed || _rotationAxis.Status == RState.Timeout;
|
|
|
|
|
+ }
|
|
|
|
|
+ /// 统计完成的Cycle次数
|
|
|
|
|
+ /// </summary>
|
|
|
|
|
+ /// <returns></returns>
|
|
|
|
|
+ private bool UpdateCycleCount()
|
|
|
|
|
+ {
|
|
|
|
|
+ _currentCycle += 1;
|
|
|
|
|
+ return true;
|
|
|
}
|
|
}
|
|
|
/// <summary>
|
|
/// <summary>
|
|
|
- /// 检查Dry是否完成
|
|
|
|
|
|
|
+ /// 获取当前Cycle次数
|
|
|
/// </summary>
|
|
/// </summary>
|
|
|
/// <returns></returns>
|
|
/// <returns></returns>
|
|
|
- private bool CheckDryEndStatus()
|
|
|
|
|
|
|
+ public int GetCurrentCycle()
|
|
|
{
|
|
{
|
|
|
- bool result = CommonFunction.CheckRoutineEndState(_dryRoutine);
|
|
|
|
|
- SubRoutineStep = _dryRoutine.CurrentStep;
|
|
|
|
|
- return result;
|
|
|
|
|
|
|
+ return _currentCycle;
|
|
|
}
|
|
}
|
|
|
/// <summary>
|
|
/// <summary>
|
|
|
/// 启动
|
|
/// 启动
|
|
@@ -232,7 +250,7 @@ namespace PunkHPX8_RT.Modules.PlatingCell
|
|
|
/// <returns></returns>
|
|
/// <returns></returns>
|
|
|
public RState Start(params object[] objs)
|
|
public RState Start(params object[] objs)
|
|
|
{
|
|
{
|
|
|
- _recipe = objs[0] as DepRecipe;
|
|
|
|
|
|
|
+ _recipe = objs[0] as DqdrRecipe;
|
|
|
if (_recipe == null)
|
|
if (_recipe == null)
|
|
|
{
|
|
{
|
|
|
LOG.WriteLog(eEvent.ERR_METAL, Module, "recipe is null");
|
|
LOG.WriteLog(eEvent.ERR_METAL, Module, "recipe is null");
|
|
@@ -250,22 +268,24 @@ namespace PunkHPX8_RT.Modules.PlatingCell
|
|
|
NotifyError(eEvent.ERR_PLATINGCELL, $"{Module}.Rotation Provider is not exist", 0);
|
|
NotifyError(eEvent.ERR_PLATINGCELL, $"{Module}.Rotation Provider is not exist", 0);
|
|
|
return RState.Failed;
|
|
return RState.Failed;
|
|
|
}
|
|
}
|
|
|
- //获取vertical entity
|
|
|
|
|
- string vertical = ModuleMatcherManager.Instance.GetPlatingVerticalByCell(Module);
|
|
|
|
|
|
|
+ //获取相匹配的platingcell 的 vertical entity
|
|
|
|
|
+ string MatchModule = ModuleMatcherManager.Instance.GetMatcherByModule(Module);
|
|
|
|
|
+ string vertical = ModuleMatcherManager.Instance.GetPlatingVerticalByCell(MatchModule);
|
|
|
_verticalEntity = Singleton<RouteManager>.Instance.GetModule<PlatingCellVerticalEntity>(vertical);
|
|
_verticalEntity = Singleton<RouteManager>.Instance.GetModule<PlatingCellVerticalEntity>(vertical);
|
|
|
//获取platingcell eneity
|
|
//获取platingcell eneity
|
|
|
_platingCellEntity = Singleton<RouteManager>.Instance.GetModule<PlatingCellEntity>(Module);
|
|
_platingCellEntity = Singleton<RouteManager>.Instance.GetModule<PlatingCellEntity>(Module);
|
|
|
|
|
+ //获取match的platingcell的dep recipe
|
|
|
|
|
+ _matchPlatingCellEntity = Singleton<RouteManager>.Instance.GetModule<PlatingCellEntity>(MatchModule);
|
|
|
|
|
+ _matchPlatingCellDepDeprecipe = _matchPlatingCellEntity.CurrentRecipe;
|
|
|
//获取对应reservoir eneity
|
|
//获取对应reservoir eneity
|
|
|
string reservoir = ReservoirItemManager.Instance.GetReservoirByPlatingCell(Module);
|
|
string reservoir = ReservoirItemManager.Instance.GetReservoirByPlatingCell(Module);
|
|
|
_reservoirEntity = Singleton<RouteManager>.Instance.GetModule<ReservoirEntity>(reservoir);
|
|
_reservoirEntity = Singleton<RouteManager>.Instance.GetModule<ReservoirEntity>(reservoir);
|
|
|
- //获取vertical station信息对象
|
|
|
|
|
- _verticalBeckhoffStation = BeckhoffStationLocationManager.Instance.GetStationAxis($"{_verticalEntity.Module}", "Vertical");
|
|
|
|
|
if (!CheckPreCondition())
|
|
if (!CheckPreCondition())
|
|
|
{
|
|
{
|
|
|
return RState.Failed;
|
|
return RState.Failed;
|
|
|
}
|
|
}
|
|
|
_currentCycle = 0;
|
|
_currentCycle = 0;
|
|
|
- return Runner.Start(Module, "PlatingCell Run Recipe");
|
|
|
|
|
|
|
+ return Runner.Start(Module, "PlatingCell Run DummyRecipe Recipe");
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
/// <summary>
|
|
/// <summary>
|
|
@@ -279,11 +299,6 @@ namespace PunkHPX8_RT.Modules.PlatingCell
|
|
|
LOG.WriteLog(eEvent.ERR_PLATINGCELL, Module, "Recipe is null");
|
|
LOG.WriteLog(eEvent.ERR_PLATINGCELL, Module, "Recipe is null");
|
|
|
return false;
|
|
return false;
|
|
|
}
|
|
}
|
|
|
- //if (_recipe.DepSteps.Count == 0)
|
|
|
|
|
- //{
|
|
|
|
|
- // LOG.WriteLog(eEvent.ERR_PLATINGCELL, Module, "Recipe DepSteps count is 0");
|
|
|
|
|
- // return false;
|
|
|
|
|
- //}
|
|
|
|
|
if (!CheckAxisHome())
|
|
if (!CheckAxisHome())
|
|
|
{
|
|
{
|
|
|
NotifyError(eEvent.ERR_PLATINGCELL, "Check Axis home error", 0);
|
|
NotifyError(eEvent.ERR_PLATINGCELL, "Check Axis home error", 0);
|