Example #1
0
 public virtual void MiniloadTaskComplete(MiniloadTaskCompleteEventArgs eventArgs)
 {
     CurrentHalfCycle = null;
     if (OnMiniloadTaskComplete != null)
     {
         OnMiniloadTaskComplete(this, eventArgs);
     }
 }
Example #2
0
 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();
 }
Example #3
0
        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());
        }
Example #4
0
        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);
        }
Example #5
0
 public MiniloadTaskCompleteEventArgs(MiniloadHalfCycle task)
 {
     _miniloadTask = task;
 }