Esempio n. 1
0
 public virtual void NextRouteStatus_OnAvailableChanged(object sender, RouteStatusChangedEventArgs e)
 {
     if (OnNextRouteStatusAvailableChanged != null)
     {
         OnNextRouteStatusAvailableChanged(sender, e);
     }
 }
Esempio n. 2
0
 void lhsConveyor_OnNextRouteStatusAvailableChanged(object sender, RouteStatusChangedEventArgs e)
 {
     if (e._available == RouteStatuses.Available)
     {
         NextRouteStatus_OnRouteStatusChanged();
     }
 }
Esempio n. 3
0
        public override void NextRouteStatus_OnAvailableChanged(object sender, RouteStatusChangedEventArgs e)
        {
            if (e._available == RouteStatuses.Available)
            {
                if (sensors != null && sensors.Count > 0)
                {
                    if (sensors[0].sensor.Active && PickPosition != 1) //If pick position is the front position then the controller needs to monitor the ongoing conveyor and handle the release.
                    {
                        if (sensors[0].sensor.LoadWaiting)
                        {
                            ((Case_Load)sensors[0].sensor.ActiveLoad).ReleaseLoad_PLCControl();
                        }
                    }
                }
            }
            else
            {
                //Don't do anything here for accumulation conveyor
            }

            //Pass through Route available status of the line full is not setup
            if (LineFullPosition == 0 && LineFullPassthrough)
            {
                RouteAvailable = e._available;
            }
        }
Esempio n. 4
0
 public override void NextRouteStatus_OnAvailableChanged(object sender, RouteStatusChangedEventArgs e)
 {
     if (e._available == RouteStatuses.Available || e._available == RouteStatuses.Request)
     {
         Motor = MotorStatus.Running;
     }
 }
Esempio n. 5
0
 public override void NextRouteStatus_OnAvailableChanged(object sender, RouteStatusChangedEventArgs e)
 {
     base.NextRouteStatus_OnAvailableChanged(sender, e);
     if (e._available == RouteStatuses.Blocked)
     {
         if (PreviousLoadWaiting.LoadWaiting)
         {
             feedSection.RouteAvailable = RouteStatuses.Available;
             LoadTransferringIn         = true;
         }
         else
         {
             feedSection.RouteAvailable = RouteStatuses.Request;
             LoadTransferringIn         = false;
         }
     }
     else if (e._available == RouteStatuses.Available)
     {
         if (apHold.Active)
         {
             apHold.ActiveLoad.Release();
         }
         if (apEnter.Active)
         {
             apEnter.ActiveLoad.Release();
         }
     }
 }
Esempio n. 6
0
 void routeStatus_OnRouteStatusChanged(object sender, RouteStatusChangedEventArgs e)
 {
     if (e._available == RouteStatuses.Available)
     {
         //Start the timers
         if (restartBlocked && BlockedTimeout != 0)
         {
             BlockedTimer.Start();
         }
         if (restartClear && ClearTimeout != 0)
         {
             ClearTimer.Start();
         }
         restartBlocked = false;
         restartClear   = false;
     }
     else
     {
         if (BlockedTimeout != 0 && BlockedTimer.Running)
         {
             BlockedTimer.Stop();
             restartBlocked = true;
         }
         if (ClearTimeout != 0 && ClearTimer.Running)
         {
             ClearTimer.Stop();
             restartClear = true;
         }
     }
 }
Esempio n. 7
0
 public override void ThisRouteStatus_OnAvailableChanged(object sender, RouteStatusChangedEventArgs e)
 {
     base.ThisRouteStatus_OnAvailableChanged(sender, e);
     if (e._available == RouteStatuses.Request && PreviousLoadWaitingStatus != null && PreviousLoadWaitingStatus.LoadWaiting)
     {
         RouteAvailable = RouteStatuses.Available;
     }
 }
Esempio n. 8
0
 void NextRouteStatus_OnRouteStatusChanged(object sender, RouteStatusChangedEventArgs e)
 {
     //TODO Release loads when the status of the release conveyor becomes available
     if (e._available == RouteStatuses.Available && apRelStart.Active)
     {
         apRelStart.ActiveLoad.Release();
     }
 }
Esempio n. 9
0
 public override void NextRouteStatus_OnAvailableChanged(object sender, RouteStatusChangedEventArgs e)
 {
     if (!delayTimer.Running || delayTimer.Running && currentOperation == Operation.PreviousLoadArrived)
     {
         ThisRouteStatus.Available = RouteStatuses.Request;
         currentOperation          = Operation.NextRouteStatusChanged;
         delayTimer.OnElapsed     += Process_OnElaspsed;
         delayTimer.Start();
     }
 }
Esempio n. 10
0
 public virtual void NextRouteStatus_OnAvailableChanged(object sender, RouteStatusChangedEventArgs e)
 {
     if (e._available == RouteStatuses.Available && ThisRouteStatus.Available == RouteStatuses.Blocked)
     {
         ThisRouteStatus.Available = RouteStatuses.Request;
     }
     else if (e._available == RouteStatuses.Blocked && ThisRouteStatus.Available != RouteStatuses.Blocked)
     {
         ThisRouteStatus.Available = RouteStatuses.Available;
     }
 }
Esempio n. 11
0
 /// <summary>
 /// make sure that the WindowTimeout is only running if the belts in front are runing
 /// </summary>
 void rs_OnRouteStatusChanged(object sender, RouteStatusChangedEventArgs e)
 {
     if (e._available != RouteStatuses.Available && WindowTimeout.Running)
     {
         WindowTimeout.Stop();
     }
     else if (e._available == RouteStatuses.Available && !WindowTimeout.Running)
     {
         WindowTimeout.Start();
     }
 }
Esempio n. 12
0
 void ThisRouteStatus_OnAvailableChanged(object sender, RouteStatusChangedEventArgs e)
 {
     if (e._available == RouteStatuses.Available)
     {
         arrow.Color = Color.Green;
     }
     else
     {
         arrow.Color = Color.Red;
     }
 }
Esempio n. 13
0
        private void DropConveyor_OnRouteStatusChanged(object sender, RouteStatusChangedEventArgs e)
        {
            //When the Conveyor connected to the dropConveyor Status changes then i want to know about it
            //Set the status of the drop station
            DropStationAvailable = e._available == RouteStatuses.Available;

            //If it goes availabe, then the transfer from the pallet crane is complete and i can start the next job
            if (e._available == RouteStatuses.Available && CurrentHalfCycle != null && CurrentHalfCycle.Cycle == PalletCraneCycle.DropDS)
            {
                PalletCraneTaskComplete(new PalletCraneTaskCompleteEventArgs(CurrentHalfCycle));
            }
        }
Esempio n. 14
0
        public void DivertRouteStatus_OnAvailableChanged(object sender, RouteStatusChangedEventArgs e)
        {
            if (e._available == RouteStatuses.Available && LoadisWaiting)
            {
                RouteLoad(DivertRoute.Divert);
                return;
            }

            if (e._available == RouteStatuses.Available)
            {
                RouteWaitingLoad();
            }
        }
Esempio n. 15
0
        //Only the RHS has the attached conveyor
        void rhsConveyor_OnNextRouteStatusAvailableChanged(object sender, RouteStatusChangedEventArgs e)
        {
            if (e._available == RouteStatuses.Blocked)
            {
                ReleaseDelayTimer.Stop();

                if (lhsConveyor.RouteAvailable == RouteStatuses.Available)
                {
                    lhsTransfering = true;
                }

                if (rhsConveyor.RouteAvailable == RouteStatuses.Available)
                {
                    rhsTransfering = true;
                }

                lhsConveyor.RouteAvailable = RouteStatuses.Blocked;
                rhsConveyor.RouteAvailable = RouteStatuses.Blocked;
                lhsConveyor.TransportSection.Route.Motor.Stop();
                rhsConveyor.TransportSection.Route.Motor.Stop();
            }
            else if (e._available == RouteStatuses.Available)
            {
                ReleaseDelayTimer.Start();
                if (rhsTransfering)
                {
                    rhsConveyor.RouteAvailable = RouteStatuses.Available;
                }
                else
                {
                    rhsConveyor.RouteAvailable = RouteStatuses.Request;
                }

                if (lhsTransfering)
                {
                    lhsConveyor.RouteAvailable = RouteStatuses.Available;
                }
                else
                {
                    lhsConveyor.RouteAvailable = RouteStatuses.Request;
                }

                lhsConveyor.TransportSection.Route.Motor.Start();
                rhsConveyor.TransportSection.Route.Motor.Start();
            }

            if (!ReleaseDelayTimer.Running)
            {
                Release();
            }
        }
Esempio n. 16
0
 public override void NextRouteStatus_OnAvailableChanged(object sender, RouteStatusChangedEventArgs e)
 {
     if (e._available == RouteStatuses.Available && ThisRouteStatus.Available == RouteStatuses.Blocked)
     {
         if (!stackLoadsDelayTimer.Running)
         {
             ThisRouteStatus.Available = RouteStatuses.Request;
         }
     }
     else if (e._available == RouteStatuses.Blocked && ThisRouteStatus.Available != RouteStatuses.Blocked)
     {
         ThisRouteStatus.Available = RouteStatuses.Available;
     }
 }
Esempio n. 17
0
 public virtual void ThisRouteStatus_OnAvailableChanged(object sender, RouteStatusChangedEventArgs e)
 {
     if (e._available == RouteStatuses.Available)
     {
         arrow.Color = Color.Green;
     }
     else if (e._available == RouteStatuses.Request)
     {
         arrow.Color = Color.Yellow;
     }
     else
     {
         arrow.Color = Color.Red;
     }
 }
Esempio n. 18
0
        void ThisRouteStatus_OnRouteStatusChanged(object sender, RouteStatusChangedEventArgs e)
        {
            ((RouteStatus)sender).OnRouteStatusChanged -= ThisRouteStatus_OnRouteStatusChanged;

            if (e._available == RouteStatuses.Available)
            {
                ElevatorConveyor.LocationB.Release();
                ElevatorConveyor.LocationA.Release();

                if (CurrentTask.UnloadCycle == Cycle.Double || CurrentTask.NumberOfLoadsInTask == 1)
                {
                    ElevatorConveyor.LocationB.Enabled = false; // if only 1 load in task don't care about this!!!
                    ElevatorConveyor.UnLoading         = false;
                }
            }
        }
Esempio n. 19
0
        public override void NextRouteStatus_OnAvailableChanged(object sender, RouteStatusChangedEventArgs e)
        {
            Experior.Dematic.Base.EuroPallet load = (Experior.Dematic.Base.EuroPallet)LineReleasePhotocell.OccupiedLoad;

            if (e._available == RouteStatuses.Available && ThisRouteStatus.Available == RouteStatuses.Blocked) //Move into next position
            {
                if (load != null && !load.LoadWaitingForWCS)
                {
                    ThisRouteStatus.Available = RouteStatuses.Request;
                }
            }
            else if (e._available == RouteStatuses.Blocked && ThisRouteStatus.Available != RouteStatuses.Blocked) //Load has arrived at next position
            {
                ThisRouteStatus.Available = RouteStatuses.Available;
            }
        }
Esempio n. 20
0
        public override void NextRouteStatus_OnAvailableChanged(object sender, RouteStatusChangedEventArgs e)
        {
            RouteAvailable = e._available;

            if (e._available == RouteStatuses.Available)
            {
                divertSection.arrow.Color = Color.Green;
            }
            else if (e._available == RouteStatuses.Request)
            {
                divertSection.arrow.Color = Color.Yellow;
            }
            else
            {
                divertSection.arrow.Color = Color.Red;
            }
        }
Esempio n. 21
0
        private void NextRouteStatus_OnRouteStatusChanged(object sender, RouteStatusChangedEventArgs e)
        {
            var distanceRaised = liftLoad.Distance;
            var isLowered      = distanceRaised.WithinRange(0.0f, 0.01f);

            if (isLowered &&
                (LiftConveyor.NextConveyor != null && LiftConveyor.NextConveyor.LoadCount > 0) &&
                e._available == RouteStatuses.Available)
            {
                LiftConveyor.ThisRouteStatus.Available = RouteStatuses.Request;
            }
            if (LiftConveyor.LoadCount > 0 &&
                !isLowered &&
                e._available == RouteStatuses.Available)
            {
                LiftConveyor.ThisRouteStatus.Available = RouteStatuses.Blocked;
            }
        }
Esempio n. 22
0
        public override void NextRouteStatus_OnAvailableChanged(object sender, RouteStatusChangedEventArgs e)
        {
            if (e._available == RouteStatuses.Available || e._available == RouteStatuses.Request &&
                !repositionLoadsTimer.Running &&
                !releaseLoadTimer.Running)
            {
                Motor = MotorStatus.Running;

                if (ThisRouteStatus.Available != RouteStatuses.Available)
                {
                    ThisRouteStatus.Available = RouteStatuses.Request;
                }

                if (TransportSection.Route.Loads.Count == 0 && stackConveyor.TransportSection.Route.Loads.Count == 0)
                {
                    loadActive = false;
                }
            }
        }
Esempio n. 23
0
 private void ThisRouteStatus_OnRouteStatusChanged(object sender, RouteStatusChangedEventArgs e)
 {
     if (e._available == RouteStatuses.Blocked)
     {
         if (Tasks != null && Tasks.Count > 0)
         {
             var currentTask = Tasks[0];
             if (currentTask.Source.Attached.Parent is IRouteStatus)
             {
                 currentTask.Source.FixPointRouteStatus.Available = RouteStatuses.Blocked;
             }
             // Move car to offload destination
             if (currentTask.Destination != null)
             {
                 MoveTCar(currentTask.Destination);
             }
         }
     }
 }
Esempio n. 24
0
        public override void NextRouteStatus_OnAvailableChanged(object sender, RouteStatusChangedEventArgs e)
        {
            base.NextRouteStatus_OnAvailableChanged(sender, e); //Handles the normal belt control

            if (ControlType == ControlTypesSubSet.Test)
            {
                SetMergeSectionRouteStatus(e._available);
            }
            else
            {
                if (mergeSection.RouteAvailable == RouteStatuses.Blocked)
                {
                    SetMergeSectionRouteStatus(mergeRouteStatus);
                }
                else
                {
                    SetMergeSectionRouteStatus(e._available);
                }
            }
        }
Esempio n. 25
0
        public void NextRouteStatus_OnAvailableChanged(object sender, RouteStatusChangedEventArgs e)
        {
            if (e._available == RouteStatuses.Available)
            {
                if (!ReleaseTimer.Running || !LoadWaitingTimer.Running)
                {
                    conveyor.RouteAvailable = RouteStatuses.Available; //Restart the motor
                    StartReleaseTimer();
                }
            }
            else
            { //If the line release photocell is null then the belt conveyor will become the overdriver of the front conveyor
                if ((LineReleasePhotocell != null && LineReleasePhotocell.PhotocellStatus == PhotocellState.Blocked) || LineReleasePhotocell == null)
                {
                    conveyor.RouteAvailable = RouteStatuses.Blocked;
                }
            }

            if (e._available == RouteStatuses.Available || e._available == RouteStatuses.Request)
            {
                if (LoadWaitingTimerPaused)
                {
                    LoadWaitingTimerPaused = false;
                    LoadWaitingTimer.Start();
                }
            }
            else
            {
                if (LoadWaitingTimer.Running)
                {
                    LoadWaitingTimerPaused = true;
                    LoadWaitingTimer.Stop();
                }
            }

            //if (!LoadWaitingTimer.Running && !LoadWaitingTimerPaused && !conveyor.LoadWaiting)
            //{


            //}
        }
Esempio n. 26
0
            void StraightThrough_OnNextRouteStatusAvailableChanged(object sender, RouteStatusChangedEventArgs e)
            {
                if (e._available == RouteStatuses.Available)
                {
                    if (WaitingConveyors[convPosition].Any())
                    {
                        //Has the conveyor route that has just become avaiable have any loads that want to transfer to it.
                        if (WaitingConveyors[convPosition] != null) //only get on WaitingConveyors from RouteLoad(..)
                        {
                            StraightThrough waitingConv = WaitingConveyors[convPosition].First();
                            WaitingConveyors[convPosition].Remove(waitingConv);
                            threeWaySwitch.TimerReleaseConvs.Add(waitingConv); //simply adding to this list will when the timer stops release it
                        }

                        if (threeWaySwitch.OnTransferStatusChangedController != null)
                        {
                            threeWaySwitch.OnTransferStatusChangedController(this, new EventArgs());
                        }
                    }
                }
            }
Esempio n. 27
0
        void dropConveyor_OnNextRouteStatusAvailableChanged(object sender, RouteStatusChangedEventArgs e)
        {
            //When the conveyor connected to the dropConveyor Status changes then i want to know about it
            //Set the status of the drop station
            if (e._available == RouteStatuses.Available)
            {
                DropStationAvailable = true;
            }
            else
            {
                DropStationAvailable = false;
            }

            //If it goes blocked, then the transfer from the miniload is complete and i can start the next job
            if (e._available == RouteStatuses.Blocked)
            {
                if (CurrentHalfCycle != null)
                {
                    MiniloadTaskComplete(new MiniloadTaskCompleteEventArgs(CurrentHalfCycle));
                }
            }
        }
Esempio n. 28
0
        public override void NextRouteStatus_OnAvailableChanged(object sender, RouteStatusChangedEventArgs e)
        {
            if (e._available == RouteStatuses.Available)
            {
                ReleaseNextLoad();
            }

            if (e._available == RouteStatuses.Blocked)
            {
                if (TransportSection.Route.Motor != null)
                {
                    TransportSection.Route.Motor.Stop();
                }
                mergeSection.TransportSection.Route.Motor.Stop();
            }
            else
            {
                if (TransportSection.Route.Motor != null)
                {
                    TransportSection.Route.Motor.Start();
                }
                mergeSection.TransportSection.Route.Motor.Start();
            }
        }
Esempio n. 29
0
        public override void ThisRouteStatus_OnAvailableChanged(object sender, RouteStatusChangedEventArgs e)
        {
            if (e._available == RouteStatuses.Available)
            {
                arrow.Color = Color.Green;
            }
            else if (e._available == RouteStatuses.Request)
            {
                arrow.Color = Color.Yellow;
            }
            else
            {
                arrow.Color = Color.Red;
            }

            if (e._available == RouteStatuses.Available || e._available == RouteStatuses.Request)
            {
                Motor = MotorStatus.Running;
            }
            else if (e._available == RouteStatuses.Blocked)
            {
                Motor = MotorStatus.Stopped;
            }
        }
Esempio n. 30
0
        private void DestinationConveyorRouteStatus_OnRouteStatusChanged(object sender, RouteStatusChangedEventArgs e)
        {
            RouteStatus routeStatus = (RouteStatus)sender;

            if (routeStatus != null)
            {
                DestinationStatusChanged(routeStatus);

                var currentTask = Tasks.Count > 0 ? Tasks[0] : null;
                if (currentTask != null && currentTask.Destination != null)
                {
                    if (currentTask.Destination.FixPointRouteStatus == routeStatus)
                    {
                        if (e._available == RouteStatuses.Blocked)
                        {
                            Tasks.RemoveAt(0);
                        }
                        // Make sure the destination conveyor who's status has changed matches the current task
                        // Allow within acceptable tolerance for the positioning of the conveyor and fixpoint
                        var isCurrentTask = currentTask.Destination.LocalPosition.X.WithinRange(conveyor.LocalPosition.X, 0.01f);
                        if (e._available == RouteStatuses.Available && isCurrentTask)
                        {
                            conveyor.ThisRouteStatus.Available = RouteStatuses.Request;
                        }
                    }
                }
            }
        }