private void LoadArrivedAtPickStation(BaseStraight pickConveyor, Load load) { //Allow the next loads to transfer into the PS pickConveyor.RouteAvailable = RouteStatuses.Blocked; //Switch the loads onto the LHD if (load != null) { Control.PickLoad(0, new List <Load> { load }, false, "PickPS", HBWMiniLoadJob.LHDs.LHD1); } Control.StartCrane(); }
public override StandardValuesCollection GetStandardValues(ITypeDescriptorContext context) { List <string> photocells = new List <string>(); try { if (context.Instance is BaseStraight) { BaseStraight conveyor = context.Instance as BaseStraight; foreach (Assembly assembly in conveyor.Assemblies) { if (assembly is PalletPhotocell) { photocells.Add(assembly.Name); } } } else if (context.Instance is PalletStraight) { PalletStraight conveyor = context.Instance as PalletStraight; foreach (Assembly assembly in conveyor.Assemblies) { if (assembly is PalletPhotocell) { photocells.Add(assembly.Name); } } } } catch (Exception ex) { Core.Environment.Log.Write("PhotocellConverter combodropdown error", Color.Red); Core.Environment.Log.Write(ex.Message, Color.Red); } return(new StandardValuesCollection(photocells)); }
private void StartTransportTelegramReceived(string[] telegramFields) { Experior.Dematic.Base.EuroPallet euroPallet = Experior.Dematic.Base.EuroPallet.GetPalletFromIdentification(telegramFields.GetFieldValue(TelegramFields.tuIdent)); IATCPalletLoadType palletLoad = (IATCPalletLoadType)euroPallet; if (palletLoad != null) //The load has been found so some attributes need to be changed (Cannot change the dimensions of the load however) { // Basic properties euroPallet.LoadColor = LoadColor(telegramFields.GetFieldValue(TelegramFields.color)); // Controller specific properties palletLoad.TUType = telegramFields.GetFieldValue(TelegramFields.tuType); palletLoad.Source = telegramFields.GetFieldValue(TelegramFields.source); palletLoad.Destination = telegramFields.GetFieldValue(TelegramFields.destination); palletLoad.PresetStateCode = telegramFields.GetFieldValue(TelegramFields.presetStateCode); float weight; float.TryParse(telegramFields.GetFieldValue(TelegramFields.weight), out weight); palletLoad.PalletWeight = weight / 1000; //Deal with additional project specific fields foreach (string field in ProjectFields) { string fieldValue = telegramFields.GetFieldValue(field); if (fieldValue != null) { if (palletLoad.ProjectFields.ContainsKey(field)) { palletLoad.ProjectFields[field] = fieldValue; } else { palletLoad.ProjectFields.Add(field, fieldValue); } } } //The load may be at a request location and the load will need to be released if (palletLoad.LoadWaitingForWCS) { //Load may be waiting on a straight conveyor so call the straightConveyor if (palletLoad.Route.Parent.Parent is PalletStraight) { palletLoad.LoadWaitingForWCS = false; PalletStraight palletStraight = palletLoad.Route.Parent.Parent as PalletStraight; palletStraight.ReleaseLoad((Load)palletLoad); } else if (palletLoad.Route.Parent.Parent is SingleDropStation) { palletLoad.LoadWaitingForWCS = false; SingleDropStation dropStation = palletLoad.Route.Parent.Parent as SingleDropStation; SendLocationLeftTelegram(palletLoad); dropStation.RouteLoadStraight((Load)palletLoad); //palletLoad.ReleaseLoad_WCSControl(); } } } else //The load has not been found but should one be created? Normally created through the Emulation Control Telegrams { if (Core.Assemblies.Assembly.Items.ContainsKey(telegramFields.GetFieldValue(TelegramFields.source)) && Core.Assemblies.Assembly.Items[telegramFields.GetFieldValue(TelegramFields.source)] is BaseStraight) { palletLoad = CreateEuroPallet(TelegramTypes.StartTransportTelegram, telegramFields); BaseStraight sourceConv = Core.Assemblies.Assembly.Items[telegramFields.GetFieldValue(TelegramFields.source)] as BaseStraight; palletLoad.SetYaw(sourceConv.ConveyorType); float position = 0; if (palletLoad.Yaw == 0) { position = position + (palletLoad.Length / 2); } else { position = position + (palletLoad.Width / 2); } sourceConv.TransportSection.Route.Add((Load)palletLoad, position); } else { Log.Write(string.Format("ATC Error {0}: Cannot create load at location from StartTransportTelegram, location {1} does not exist, message ignored", Name, telegramFields.GetFieldValue(TelegramFields.source)), Color.Red); } } }