void theMultishuttle_OnArrivedAtElevatorConvPosB(object sender, ArrivedOnElevatorEventArgs e) { if (e._elevator.CurrentTask.SourceLoadB.ConvType() == ConveyorTypes.Pick && e._elevator.CurrentTask.DestinationLoadB.ConvType() == ConveyorTypes.Drop) { //Deals with a sinlge or double load from PS to DS e._elevator.ElevatorConveyor.Route.Motor.Backward(); e._elevator.CurrentTask.Flow = TaskType.Outfeed; e._elevator.ElevatorConveyor.UnLoading = true; } }
/// <summary> /// Used in theMultishuttle_OnArrivedAtElevatorConvPosB to create the arrival on the elevator message /// </summary> /// <param name="e"> The ArrivedOnElevatorEventArgs from the theMultishuttle_OnArrivedAtElevatorConvPosB event</param> private void SendElevatorArrivalMessage(ArrivedOnElevatorEventArgs e) { ((CaseData)((Case_Load)e._loadB).Case_Data).CurrentPosition = string.Format("E{0}{1}{2}001 ", ((ElevatorTask)e._task).SourceLoadB.AisleNumber().ToString().PadLeft(2, '0'), theMultishuttle.ElevatorGroup(e._locationName), ((char)((ElevatorTask)e._task).SourceLoadB.Side())); string body = mheController_Multishuttle.CreateMissionDataSetBody((CaseData)(((Case_Load)e._loadB).Case_Data)); mheController_Multishuttle.SendTelegram("02", body, 1); }
void theMultishuttle_OnArrivedAtElevatorConvPosA(object sender, ArrivedOnElevatorEventArgs e) { if (e._loadB == null) //Only send the arrival for the load once when it arrves at position A - Do not send again if a double pick is detected (LoadB is populated) { Case_Load load = e._loadA; ((DCICaseData)load.Case_Data).Current = string.Format("MSAI{0}E{1}01LO00", e._elevator.AisleNumber.ToString().PadLeft(2, '0'), (char)e._elevator.Side); string sendMessage = controller.CreateTelegramFromLoad(TelegramTypes.TUNotification, load); controller.SendTelegram(sendMessage); if (((ElevatorTask)e._task).NumberOfLoadsInTask == 1 && ((ElevatorTask)e._task).Flow == TaskType.Outfeed) { ((ElevatorTask)e._task).OptimiseTask(e._elevator); } } }
void theMultishuttle_OnArrivedAtElevatorConvPosB(object sender, ArrivedOnElevatorEventArgs e) { if (e._elevator.CurrentTask.SourceLoadB.ConvType() == ConveyorTypes.Pick && e._elevator.CurrentTask.DestinationLoadB.ConvType() == ConveyorTypes.Drop) { //Deals with a sinlge or double load from PS to DS e._elevator.ElevatorConveyor.Route.Motor.Backward(); e._elevator.CurrentTask.Flow = TaskType.Outfeed; e._elevator.ElevatorConveyor.UnLoading = true; if (((ElevatorTask)e._task).NumberOfLoadsInTask == 1) { SendElevatorArrivalMessage(e); } } else if (e._elevator.CurrentTask.LoadCycle == Cycle.Single && e._elevator.CurrentTask.NumberOfLoadsInTask == 1) { SendElevatorArrivalMessage(e); } }
void theMultishuttle_OnArrivedAtElevatorConvPosA(object sender, ArrivedOnElevatorEventArgs e) { if (e._elevator.CurrentTask.LoadCycle == Cycle.Single && e._elevator.ElevatorConveyor.Route.Loads.Count == 2 && e._elevator.CurrentTask.Flow == TaskType.Outfeed) { ((CaseData)e._loadA.Case_Data).CurrentPosition = string.Format("E{0}{1}{2}001 ", e._locationName.AisleNumber().ToString().PadLeft(2, '0'), theMultishuttle.ElevatorGroup(e._locationName), (char)e._locationName.Side()); string bodyA = mheController_Multishuttle.CreateMissionDataSetBody((CaseData)e._loadA.Case_Data); mheController_Multishuttle.SendTelegram("02", bodyA, 1); } //else if (e._loadA != null && e._loadB != null) //else if (e._elevator.CurrentTask.LoadCycle == Cycle.Double && e._elevator.ElevatorConveyor.Route.Loads.Count == 2) else if (e._elevator.ElevatorConveyor.LocationA.Active && e._elevator.ElevatorConveyor.LocationB.Active) { Case_Load loadA, loadB; loadA = e._loadA; loadB = Case_Load.GetCaseFromIdentification(e._elevator.CurrentTask.LoadB_ID); string posA = "001", posB = "002"; if (e._elevator.CurrentTask.Flow == TaskType.Outfeed) { posA = "002"; posB = "001"; } ((CaseData)loadA.Case_Data).CurrentPosition = string.Format("E{0}{1}{2}{3} ", e._locationName.AisleNumber().ToString().PadLeft(2, '0'), theMultishuttle.ElevatorGroup(e._locationName), (char)e._locationName.Side(), posA); ((CaseData)loadB.Case_Data).CurrentPosition = string.Format("E{0}{1}{2}{3} ", e._locationName.AisleNumber().ToString().PadLeft(2, '0'), theMultishuttle.ElevatorGroup(e._locationName), (char)e._locationName.Side(), posB); string bodyA = mheController_Multishuttle.CreateMissionDataSetBody((CaseData)loadA.Case_Data); string bodyB = mheController_Multishuttle.CreateMissionDataSetBody((CaseData)loadB.Case_Data); mheController_Multishuttle.SendTelegram("02", bodyA + "," + bodyB, 2); } }