public virtual void MiniloadTaskComplete(MiniloadTaskCompleteEventArgs eventArgs) { CurrentHalfCycle = null; if (OnMiniloadTaskComplete != null) { OnMiniloadTaskComplete(this, eventArgs); } }
void DropDropStation(MiniloadHalfCycle halfCycle) { if (halfCycle.TuIdentPos1 != null) { Control.DropLoad(0, false, "DropDS", HBWMiniLoadJob.LHDs.LHD1); } if (halfCycle.TuIdentPos2 != null) { Control.DropLoad(0, false, "DropDS", HBWMiniLoadJob.LHDs.LHD2); } Control.StartCrane(); }
public override void Reset() { foreach (Case_Load c in caseloads) { c.UserDeletable = true; c.Deletable = true; c.Dispose(); if (c.Route != null) { c.Route.Remove(c); } } caseloads.Clear(); compartmentempty = false; compartmentoccupied = false; base.Reset(); pickConveyor.RouteAvailable = RouteStatuses.Blocked; CurrentHalfCycle = null; MiniloadReset(new EventArgs()); }
public bool StartMiniloadHalfCycle(MiniloadHalfCycle HalfCycle) { if (CurrentHalfCycle != null) //reject if the miniload is running, there is a CurrentHalfCycle { return(false); } else { CurrentHalfCycle = HalfCycle; if (HalfCycle.Cycle == MiniloadCycle.PickPS) //This will pick whatever is at the pick station { if (liftcube.LocalPosition.Y == PdOffsetHeight && liftcube.LocalPosition.Z == 0) //Miniload is already at the P&D so doesn't need to move { Core.Timer pickdelay = new Core.Timer(0.5f); pickdelay.OnElapsed += pickdelay_OnElapsed; pickdelay.Start(); return(true); } Control.Goto(PdOffsetHeight, 0, "GotoPS"); Control.JobQueue[0].UserData = HalfCycle; Control.StartCrane(); return(true); } else if (HalfCycle.Cycle == MiniloadCycle.DropDS) { if (liftcube.LocalPosition.Y == PdOffsetHeight && liftcube.LocalPosition.Z == 0) //Miniload is already at the P&D so doesn't need to move { Core.Timer dropdelay = new Core.Timer(0.5f); dropdelay.OnElapsed += dropdelay_OnElapsed; dropdelay.UserData = HalfCycle; dropdelay.Start(); return(true); } Control.Goto(PdOffsetHeight, 0, "GotoDS"); Control.JobQueue[0].UserData = HalfCycle; Control.StartCrane(); return(true); } else if (HalfCycle.Cycle == MiniloadCycle.DropRack) { Control.Goto(HalfCycle.Height, HalfCycle.Length, "GotoRack"); Control.JobQueue[0].UserData = HalfCycle; Control.DropLoad(DepthTime(HalfCycle.Depth), true, "DropRack", HalfCycle.LHD == 1 ? HBWMiniLoadJob.LHDs.LHD1 : HBWMiniLoadJob.LHDs.LHD2); Control.JobQueue[1].UserData = HalfCycle; Control.StartCrane(); return(true); } else if (HalfCycle.Cycle == MiniloadCycle.PickRack) { float depth = (AisleWidth / 2) + ((RackWidth / (DepthsInRack + 1)) * HalfCycle.Depth); holdingConveyor.LocalPosition = new Vector3(HalfCycle.Length - (LHDWidth / 2), HalfCycle.Height, HalfCycle.RackSide == Side.Left ? depth : -depth); Control.Goto(HalfCycle.Height, HalfCycle.Length, "GotoRack"); Control.JobQueue[0].UserData = HalfCycle; Case_Load caseLoad = CreateCaseLoad(HalfCycle.CaseData, HalfCycle.LHD); Control.PickLoad(DepthTime(HalfCycle.Depth), new List <Load>() { caseLoad }, true, "PickRack", HalfCycle.LHD == 1 ? HBWMiniLoadJob.LHDs.LHD1 : HBWMiniLoadJob.LHDs.LHD2); Control.JobQueue[1].UserData = HalfCycle; Control.StartCrane(); return(true); } } return(false); }
public MiniloadTaskCompleteEventArgs(MiniloadHalfCycle task) { _miniloadTask = task; }