public virtual void NextRouteStatus_OnAvailableChanged(object sender, RouteStatusChangedEventArgs e) { if (OnNextRouteStatusAvailableChanged != null) { OnNextRouteStatusAvailableChanged(sender, e); } }
void lhsConveyor_OnNextRouteStatusAvailableChanged(object sender, RouteStatusChangedEventArgs e) { if (e._available == RouteStatuses.Available) { NextRouteStatus_OnRouteStatusChanged(); } }
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; } }
public override void NextRouteStatus_OnAvailableChanged(object sender, RouteStatusChangedEventArgs e) { if (e._available == RouteStatuses.Available || e._available == RouteStatuses.Request) { Motor = MotorStatus.Running; } }
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(); } } }
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; } } }
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; } }
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(); } }
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(); } }
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; } }
/// <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(); } }
void ThisRouteStatus_OnAvailableChanged(object sender, RouteStatusChangedEventArgs e) { if (e._available == RouteStatuses.Available) { arrow.Color = Color.Green; } else { arrow.Color = Color.Red; } }
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)); } }
public void DivertRouteStatus_OnAvailableChanged(object sender, RouteStatusChangedEventArgs e) { if (e._available == RouteStatuses.Available && LoadisWaiting) { RouteLoad(DivertRoute.Divert); return; } if (e._available == RouteStatuses.Available) { RouteWaitingLoad(); } }
//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(); } }
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; } }
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; } }
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; } } }
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; } }
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; } }
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; } }
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; } } }
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); } } } }
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); } } }
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) //{ //} }
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()); } } } }
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)); } } }
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(); } }
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; } }
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; } } } } }