| | |
| | | namespace WIDESEAWCS_Tasks |
| | | { |
| | | /// <summary> |
| | | /// é¾é¨æ¶ |
| | | /// é¾é¨æ¶ä»»å¡å¤çç±»ï¼ç»§æ¿èªJobBaseå¹¶å®ç°IJobæ¥å£ <br/> |
| | | /// ç¹æ§[DisallowConcurrentExecution]è¡¨ç¤ºç¦æ¢å¹¶åæ§è¡ |
| | | /// </summary> |
| | | /// <remarks> |
| | | /// 主è¦åè½ï¼ <br/> |
| | | /// 1. æ£æ¥é¾é¨åç¶æï¼èªå¨ç¶æ/å·¥ä½ç¶æï¼ <br/> |
| | | /// 2. å¤çåè´§/æ¾è´§ä»»å¡ï¼ <br/> |
| | | /// - éªè¯ä½ç½®åæ æ ¼å¼ <br/> |
| | | /// - è·åæ¿æå°ºå¯¸ä¿¡æ¯ <br/> |
| | | /// - æ ¡éªå·¥ä½å容å¨ä¿¡æ¯ <br/> |
| | | /// - 计ç®å¹¶æ ¡éªåæ èå´ <br/> |
| | | /// - æ´æ°PLCæ§å¶åæ° <br/> |
| | | /// 3. å¤çä»»å¡å®æç¶æï¼ <br/> |
| | | /// - æ´æ°ä»»å¡ç¶æ <br/> |
| | | /// - éç¥MESç³»ç» <br/> |
| | | /// - é置工ä½ç¶æ <br/> |
| | | /// 4. é误å¤çï¼è®°å½åç§æ ¡éªå¤±è´¥çå¼å¸¸æ
åµ <br/> |
| | | /// ä¾èµå¤ä¸ªä»å¨åæå¡æ¥å£è¿è¡æ°æ®æä½ |
| | | /// </remarks> |
| | | [DisallowConcurrentExecution] |
| | | public class GantryJob : JobBase, IJob |
| | | { |
| | |
| | | private readonly IContainerItemRepository _containerItemRepository; |
| | | private readonly WebSocketServer _webSocketServer; |
| | | private readonly IOrderDetailsService _orderDetailsService; |
| | | public GantryJob(ITaskRepository taskRepository, ITaskService taskService, IContainerItemRepository containerItemRepository, WebSocketServer webSocketServer, IOrderDetailsService orderDetailsService) |
| | | private readonly IContainerRepository _containerRepository; |
| | | private readonly IOrderContainerRepository _orderContainerRepository; |
| | | |
| | | public GantryJob(ITaskRepository taskRepository, ITaskService taskService, IContainerItemRepository containerItemRepository, WebSocketServer webSocketServer, IOrderDetailsService orderDetailsService, IContainerRepository containerRepository, IOrderContainerRepository orderContainerRepository) |
| | | { |
| | | _taskRepository = taskRepository; |
| | | _taskService = taskService; |
| | | _containerItemRepository = containerItemRepository; |
| | | _webSocketServer = webSocketServer; |
| | | _orderDetailsService = orderDetailsService; |
| | | _containerRepository = containerRepository; |
| | | _orderContainerRepository = orderContainerRepository; |
| | | } |
| | | |
| | | public Task Execute(IJobExecutionContext context) |
| | | { |
| | | bool flag = context.JobDetail.JobDataMap.TryGetValue("JobParams", out object? value); |
| | | if (flag && value != null && value is OtherDevice) |
| | | if (flag && value is OtherDevice otherDevice) |
| | | { |
| | | OtherDevice otherDevice = (OtherDevice)value; |
| | | try |
| | | { |
| | | byte gantryStatus = otherDevice.GetValue<GantryDBName, byte>(GantryDBName.GantryStatus); |
| | |
| | | |
| | | if (gantryStatus == 1 && gantryAutoStatus == 3 && gantryWorkStatus == 0) |
| | | { |
| | | // é»è¾å¤ç |
| | | // 1. 读åä»»å¡ |
| | | // 2. 任塿§è¡ |
| | | // 3. ä»»å¡å®æ |
| | | Dt_Task? task = _taskService.QueryAGantryUnExecuteTask(otherDevice.DeviceCode); |
| | | if (task != null) |
| | | { |
| | | #region åè´§ä½ç½®å¤æ |
| | | string[] takePositions = task.CurrentAddress.Split("*"); |
| | | if (takePositions.Length != 5) |
| | | { |
| | |
| | | } |
| | | return Task.CompletedTask; |
| | | } |
| | | #endregion |
| | | |
| | | #region æ¾è´§ä½ç½®å¤æ |
| | | string[] putPositions = task.NextAddress.Split("*"); |
| | | if (putPositions.Length != 5) |
| | | { |
| | |
| | | } |
| | | return Task.CompletedTask; |
| | | } |
| | | #endregion |
| | | |
| | | #region æ¿æå°ºå¯¸è·å |
| | | Dt_ContainerItem containerItem = _containerItemRepository.QueryFirst(x => x.ItemCode == task.PalletCode); |
| | | if (containerItem == null) |
| | | { |
| | |
| | | task.ExceptionMessage = "æ¿æå°ºå¯¸è·åé误"; |
| | | _taskRepository.UpdateData(task); |
| | | } |
| | | if (LightStatusStorage.LightStatusDic.ContainsKey(putPositions[0])) |
| | | { |
| | | LightStatusStorage.LightStatusDic[putPositions[0]] = LightStatusEnum.LightError; |
| | | } |
| | | return Task.CompletedTask; |
| | | } |
| | | #endregion |
| | | |
| | | #region æ¾è´§å·¥ä½å¤æ |
| | | Dt_Container container = _containerRepository.QueryFirst(x => x.ContainerCode == putPositions[0]); |
| | | if (container == null) |
| | | { |
| | | WriteError($"{otherDevice.DeviceCode}-{otherDevice.DeviceName}", $"æ¾è´§å·¥ä½ã{takePositions[0]}ãæªæ¾å°"); |
| | | if (task.ExceptionMessage?.Contains($"æ¾è´§å·¥ä½ã{takePositions[0]}ãæªæ¾å°") ?? true) |
| | | { |
| | | task.ExceptionMessage = $"æ¾è´§å·¥ä½ã{takePositions[0]}ãæªæ¾å°"; |
| | | _taskRepository.UpdateData(task); |
| | | } |
| | | if (LightStatusStorage.LightStatusDic.ContainsKey(putPositions[0])) |
| | | { |
| | | LightStatusStorage.LightStatusDic[putPositions[0]] = LightStatusEnum.LightError; |
| | | } |
| | | return Task.CompletedTask; |
| | | } |
| | | #endregion |
| | | |
| | | #region å·¥ä½è®¢åä¿¡æ¯å¤æ |
| | | Dt_OrderContainer orderContainer = _orderContainerRepository.QueryFirst(x => x.ContainerCode == putPositions[0] && x.ContainerId == container.Id); |
| | | if (orderContainer == null && container.ContainerType != ContainerTypeEnum.ExceptionContainer.ObjToInt()) |
| | | { |
| | | WriteError($"{otherDevice.DeviceCode}-{otherDevice.DeviceName}", $"æ¾è´§å·¥ä½ã{takePositions[0]}ãæªæ¾å°è®¢åä¿¡æ¯"); |
| | | if (task.ExceptionMessage?.Contains($"æ¾è´§å·¥ä½ã{takePositions[0]}ãæªæ¾å°è®¢åä¿¡æ¯") ?? true) |
| | | { |
| | | task.ExceptionMessage = $"æ¾è´§å·¥ä½ã{takePositions[0]}ãæªæ¾å°è®¢åä¿¡æ¯"; |
| | | _taskRepository.UpdateData(task); |
| | | } |
| | | if (LightStatusStorage.LightStatusDic.ContainsKey(putPositions[0])) |
| | | { |
| | | LightStatusStorage.LightStatusDic[putPositions[0]] = LightStatusEnum.LightError; |
| | | } |
| | | return Task.CompletedTask; |
| | | } |
| | | #endregion |
| | | |
| | | #region å·¥ä½å«æ¿è¯»åæ°æ®å¤æ |
| | | if (!LightStatusStorage.StationStautsDic.TryGetValue(putPositions[0],out bool stationStatus)) |
| | | { |
| | | WriteError($"{otherDevice.DeviceCode}-{otherDevice.DeviceName}", $"å·¥ä½ã{putPositions[0]}ãææ 嫿¿æ°æ®é误,{LightStatusStorage.StationStautsDic.Serialize()}"); |
| | |
| | | task.ExceptionMessage = $"å·¥ä½ã{putPositions[0]}ãææ 嫿¿æ°æ®é误"; |
| | | _taskRepository.UpdateData(task); |
| | | } |
| | | if (LightStatusStorage.LightStatusDic.ContainsKey(putPositions[0])) |
| | | { |
| | | LightStatusStorage.LightStatusDic[putPositions[0]] = LightStatusEnum.LightError; |
| | | } |
| | | return Task.CompletedTask; |
| | | } |
| | | #endregion |
| | | |
| | | #region å·¥ä½å«æ¿ç¶æå¤æ |
| | | if (!stationStatus) |
| | | { |
| | | WriteError($"{otherDevice.DeviceCode}-{otherDevice.DeviceName}", $"å·¥ä½ã{putPositions[0]}ãæ å«æ¿,{LightStatusStorage.StationStautsDic.Serialize()}"); |
| | |
| | | } |
| | | return Task.CompletedTask; |
| | | } |
| | | #endregion |
| | | |
| | | int takePoX = Convert.ToInt32(takePositions[1]); |
| | | int takePoY = Convert.ToInt32(takePositions[2]); |
| | | int takePoZ = OPositions.HPositions[takePositions[0]].PositionZ + 30 * 1000 - Convert.ToInt32(takePositions[3]) * 1000; |
| | | |
| | | #region åè´§Zåæ å¤æ |
| | | if (OPositions.HPositions[takePositions[0]].PositionZ == 0) |
| | | { |
| | | WriteError($"{otherDevice.DeviceCode}-{otherDevice.DeviceName}", "读ååè´§Zåæ è¯»å为0"); |
| | |
| | | task.ExceptionMessage = $"读ååè´§Zåæ è¯»å为0"; |
| | | _taskRepository.UpdateData(task); |
| | | } |
| | | if (LightStatusStorage.LightStatusDic.ContainsKey(putPositions[0])) |
| | | { |
| | | LightStatusStorage.LightStatusDic[putPositions[0]] = LightStatusEnum.LightError; |
| | | } |
| | | return Task.CompletedTask; |
| | | } |
| | | #endregion |
| | | |
| | | int takePoR = 0; |
| | | |
| | | int putPoX = Convert.ToInt32(putPositions[1]); |
| | | int putPoY = Convert.ToInt32(putPositions[2]); |
| | | int putPoZ = OPositions.HPositions[putPositions[0]].PositionZ - Convert.ToInt32(putPositions[3]) * 1000; |
| | | |
| | | if (OPositions.HPositions[takePositions[0]].PositionZ == 0) |
| | | #region æ¾è´§Zåæ å¤æ |
| | | if (OPositions.HPositions[putPositions[0]].PositionZ == 0) |
| | | { |
| | | WriteError($"{otherDevice.DeviceCode}-{otherDevice.DeviceName}", "è¯»åæ¾è´§Zåæ è¯»å为0"); |
| | | if (task.ExceptionMessage?.Contains($"è¯»åæ¾è´§Zåæ è¯»å为0") ?? true) |
| | |
| | | task.ExceptionMessage = $"è¯»åæ¾è´§Zåæ è¯»å为0"; |
| | | _taskRepository.UpdateData(task); |
| | | } |
| | | if (LightStatusStorage.LightStatusDic.ContainsKey(putPositions[0])) |
| | | { |
| | | LightStatusStorage.LightStatusDic[putPositions[0]] = LightStatusEnum.LightError; |
| | | } |
| | | return Task.CompletedTask; |
| | | } |
| | | int putPoR = 0; |
| | | #endregion |
| | | |
| | | #region ä»»å¡å®ä½åæ°è½¬æ¢å¤ç |
| | | int takePoX = Convert.ToInt32(takePositions[1]); |
| | | int takePoY = Convert.ToInt32(takePositions[2]); |
| | | int takePoZ = OPositions.HPositions[takePositions[0]].PositionZ + 30 * 1000 - Convert.ToInt32(takePositions[3]) * 1000; |
| | | |
| | | int takePoR = 0; |
| | | |
| | | int putPoX = Convert.ToInt32(putPositions[1]); |
| | | int putPoY = Convert.ToInt32(putPositions[2]); |
| | | int putPoZ = OPositions.HPositions[putPositions[0]].PositionZ - Convert.ToInt32(putPositions[3]) * 1000; |
| | | |
| | | int putPoR = 0; |
| | | #endregion |
| | | |
| | | #region åæ ä¹ä»¥1000å¤ç,2#é¾é¨æ¶åå(ä¹ä»¥-1000) |
| | | int temp = 1000; |
| | | if(otherDevice.DeviceCode == "GT02") |
| | | { |
| | | temp = -1000; |
| | | } |
| | | #endregion |
| | | |
| | | #region åæ è®¡ç® |
| | | if (Convert.ToInt32(takePositions[4]) == 1 || Convert.ToInt32(takePositions[4]) == 2) |
| | | { |
| | | takePoX = takePoX * temp + OPositions.HPositions[takePositions[0]].PositionX; |
| | |
| | | task.ExceptionMessage = $"Råæ é误"; |
| | | _taskRepository.UpdateData(task); |
| | | } |
| | | if (LightStatusStorage.LightStatusDic.ContainsKey(putPositions[0])) |
| | | { |
| | | LightStatusStorage.LightStatusDic[putPositions[0]] = LightStatusEnum.LightError; |
| | | } |
| | | return Task.CompletedTask; |
| | | } |
| | | } |
| | | |
| | | WriteDebug($"{otherDevice.DeviceCode}-{otherDevice.DeviceName}-åæ ", $"åè´§ä½ï¼{takePositions[0]},æ¾è´§ä½ï¼{putPositions[0]}{Environment.NewLine}åè´§åæ ï¼X:{takePoX} Y:{takePoY} Z:{takePoZ} R:{takePoR}{Environment.NewLine}æ¾è´§åæ ï¼X:{putPoX} Y:{putPoY} Z:{putPoZ} R:{putPoR}{Environment.NewLine}读åPLCåè´§åæ ï¼X:{OPositions.HPositions[takePositions[0]].PositionX} Y:{OPositions.HPositions[takePositions[0]].PositionY} Z:{OPositions.HPositions[takePositions[0]].PositionZ} R:{OPositions.HPositions[takePositions[0]].PositionR}{Environment.NewLine}读åPLCæ¾è´§åæ ï¼X:{OPositions.HPositions[putPositions[0]].PositionX} Y:{OPositions.HPositions[putPositions[0]].PositionY} Z:{OPositions.HPositions[putPositions[0]].PositionZ} R:{OPositions.HPositions[putPositions[0]].PositionR}"); |
| | | } |
| | | else |
| | | { |
| | |
| | | putPoY = putPoY * temp + OPositions.ZPositions[putPositions[0]].PositionY; |
| | | takePoR = OPositions.ZPositions[takePositions[0]].PositionR; |
| | | putPoR = OPositions.ZPositions[putPositions[0]].PositionR; |
| | | |
| | | WriteDebug($"{otherDevice.DeviceCode}-{otherDevice.DeviceName}-åæ ", $"åè´§ä½ï¼{takePositions[0]},æ¾è´§ä½ï¼{putPositions[0]}{Environment.NewLine}åè´§åæ ï¼X:{takePoX} Y:{takePoY} Z:{takePoZ} R:{takePoR}{Environment.NewLine}æ¾è´§åæ ï¼X:{putPoX} Y:{putPoY} Z:{putPoZ} R:{putPoR}{Environment.NewLine}读åPLCåè´§åæ ï¼X:{OPositions.ZPositions[takePositions[0]].PositionX} Y:{OPositions.ZPositions[takePositions[0]].PositionY} Z:{OPositions.ZPositions[takePositions[0]].PositionZ} R:{OPositions.ZPositions[takePositions[0]].PositionR}{Environment.NewLine}读åPLCæ¾è´§åæ ï¼X:{OPositions.ZPositions[putPositions[0]].PositionX} Y:{OPositions.ZPositions[putPositions[0]].PositionY} Z:{OPositions.ZPositions[putPositions[0]].PositionZ} R:{OPositions.ZPositions[putPositions[0]].PositionR}"); |
| | | } |
| | | #region |
| | | #endregion |
| | | |
| | | #region Debugæ¥å¿è®°å½,è®°å½åè´§åæ¾è´§åæ ä¿¡æ¯ |
| | | WriteDebug($"{otherDevice.DeviceCode}-{otherDevice.DeviceName}-åæ ", $"åè´§ä½ï¼{takePositions[0]},æ¾è´§ä½ï¼{putPositions[0]}{Environment.NewLine}åè´§åæ ï¼X:{takePoX} Y:{takePoY} Z:{takePoZ} R:{takePoR}{Environment.NewLine}æ¾è´§åæ ï¼X:{putPoX} Y:{putPoY} Z:{putPoZ} R:{putPoR}{Environment.NewLine}读åPLCåè´§åæ ï¼X:{OPositions.HPositions[takePositions[0]].PositionX} Y:{OPositions.HPositions[takePositions[0]].PositionY} Z:{OPositions.HPositions[takePositions[0]].PositionZ} R:{OPositions.HPositions[takePositions[0]].PositionR}{Environment.NewLine}读åPLCæ¾è´§åæ ï¼X:{OPositions.HPositions[putPositions[0]].PositionX} Y:{OPositions.HPositions[putPositions[0]].PositionY} Z:{OPositions.HPositions[putPositions[0]].PositionZ} R:{OPositions.HPositions[putPositions[0]].PositionR}"); |
| | | #endregion |
| | | |
| | | #region è¶
è¿å®¹å¨å®½åº¦å¤ç |
| | | bool isMoreWidth = orderContainer == null ? false : orderContainer.MaxWidth > container.ContainerWidth; |
| | | if (isMoreWidth) |
| | | { |
| | | putPoX = putPoX - (orderContainer.MaxWidth - container.ContainerWidth) / 2 * temp; |
| | | } |
| | | #endregion |
| | | |
| | | #region åæ èå´å¤æ |
| | | List<DeviceProDTO> devicePros = otherDevice.DeviceProDTOs.Where(x => x.DeviceProParamType == "MaxPosition").ToList(); |
| | | |
| | | DeviceProDTO? devicePro = devicePros.OrderBy(x => x.DeviceProOffset).FirstOrDefault(); |
| | |
| | | task.ExceptionMessage = $"设å¤åè®®åæ°éè¯¯ï¼æªæ¾å°æå¤§æå°åæ å°å"; |
| | | _taskRepository.UpdateData(task); |
| | | } |
| | | if (LightStatusStorage.LightStatusDic.ContainsKey(putPositions[0])) |
| | | { |
| | | LightStatusStorage.LightStatusDic[putPositions[0]] = LightStatusEnum.LightError; |
| | | } |
| | | return Task.CompletedTask; |
| | | } |
| | | |
| | | int[] data = otherDevice.Communicator.Read<int>(devicePro.DeviceProAddress, (ushort)(devicePros.Count)); |
| | | |
| | | int maxX = data[0]; |
| | |
| | | int maxR = data[6]; |
| | | int minR = data[7]; |
| | | |
| | | //int maxX = otherDevice.GetValue<GantryDBName, int>(GantryDBName.MaxX); |
| | | //int minX = otherDevice.GetValue<GantryDBName, int>(GantryDBName.MinX); |
| | | //int maxY = otherDevice.GetValue<GantryDBName, int>(GantryDBName.MaxY); |
| | | //int minY = otherDevice.GetValue<GantryDBName, int>(GantryDBName.MinY); |
| | | //int maxZ = otherDevice.GetValue<GantryDBName, int>(GantryDBName.MaxZ); |
| | | //int minZ = otherDevice.GetValue<GantryDBName, int>(GantryDBName.MinZ); |
| | | //int maxR = otherDevice.GetValue<GantryDBName, int>(GantryDBName.MaxR); |
| | | //int minR = otherDevice.GetValue<GantryDBName, int>(GantryDBName.MinR); |
| | | |
| | | |
| | | if (takePoX < minX || takePoX > maxX) |
| | | { |
| | | WriteError($"{otherDevice.DeviceCode}-{otherDevice.DeviceName}-åæ ", $"Xåè´§åæ è¶
åºèå´,åè´§åæ ï¼{takePoX},æå¤§å¼ï¼{maxX},æå°å¼ï¼{minX}"); |
| | |
| | | { |
| | | task.ExceptionMessage = $"Xåè´§åæ è¶
åºèå´,åè´§åæ ï¼{takePoX},æå¤§å¼ï¼{maxX},æå°å¼ï¼{minX}"; |
| | | _taskRepository.UpdateData(task); |
| | | } |
| | | if (LightStatusStorage.LightStatusDic.ContainsKey(putPositions[0])) |
| | | { |
| | | LightStatusStorage.LightStatusDic[putPositions[0]] = LightStatusEnum.LightError; |
| | | } |
| | | return Task.CompletedTask; |
| | | } |
| | |
| | | task.ExceptionMessage = $"Xæ¾è´§åæ è¶
åºèå´,åè´§åæ ï¼{putPoX},æå¤§å¼ï¼{maxX},æå°å¼ï¼{minX}"; |
| | | _taskRepository.UpdateData(task); |
| | | } |
| | | if (LightStatusStorage.LightStatusDic.ContainsKey(putPositions[0])) |
| | | { |
| | | LightStatusStorage.LightStatusDic[putPositions[0]] = LightStatusEnum.LightError; |
| | | } |
| | | return Task.CompletedTask; |
| | | } |
| | | |
| | |
| | | { |
| | | task.ExceptionMessage = $"Yåè´§åæ è¶
åºèå´,åè´§åæ ï¼{takePoY},æå¤§å¼ï¼{maxY},æå°å¼ï¼{minY}"; |
| | | _taskRepository.UpdateData(task); |
| | | } |
| | | if (LightStatusStorage.LightStatusDic.ContainsKey(putPositions[0])) |
| | | { |
| | | LightStatusStorage.LightStatusDic[putPositions[0]] = LightStatusEnum.LightError; |
| | | } |
| | | return Task.CompletedTask; |
| | | } |
| | |
| | | task.ExceptionMessage = $"Yæ¾è´§åæ è¶
åºèå´,åè´§åæ ï¼{putPoY},æå¤§å¼ï¼{maxY},æå°å¼ï¼{minY}"; |
| | | _taskRepository.UpdateData(task); |
| | | } |
| | | if (LightStatusStorage.LightStatusDic.ContainsKey(putPositions[0])) |
| | | { |
| | | LightStatusStorage.LightStatusDic[putPositions[0]] = LightStatusEnum.LightError; |
| | | } |
| | | return Task.CompletedTask; |
| | | } |
| | | |
| | |
| | | { |
| | | task.ExceptionMessage = $"Zåè´§åæ è¶
åºèå´,åè´§åæ ï¼{takePoZ},æå¤§å¼ï¼{maxZ},æå°å¼ï¼{minZ}"; |
| | | _taskRepository.UpdateData(task); |
| | | } |
| | | if (LightStatusStorage.LightStatusDic.ContainsKey(putPositions[0])) |
| | | { |
| | | LightStatusStorage.LightStatusDic[putPositions[0]] = LightStatusEnum.LightError; |
| | | } |
| | | return Task.CompletedTask; |
| | | } |
| | |
| | | task.ExceptionMessage = $"Zæ¾è´§åæ è¶
åºèå´,åè´§åæ ï¼{putPoZ},æå¤§å¼ï¼{maxZ},æå°å¼ï¼{minZ}"; |
| | | _taskRepository.UpdateData(task); |
| | | } |
| | | if (LightStatusStorage.LightStatusDic.ContainsKey(putPositions[0])) |
| | | { |
| | | LightStatusStorage.LightStatusDic[putPositions[0]] = LightStatusEnum.LightError; |
| | | } |
| | | return Task.CompletedTask; |
| | | } |
| | | |
| | |
| | | { |
| | | task.ExceptionMessage = $"Råè´§åæ è¶
åºèå´,åè´§åæ ï¼{takePoR},æå¤§å¼ï¼{maxR},æå°å¼ï¼{minR}"; |
| | | _taskRepository.UpdateData(task); |
| | | } |
| | | if (LightStatusStorage.LightStatusDic.ContainsKey(putPositions[0])) |
| | | { |
| | | LightStatusStorage.LightStatusDic[putPositions[0]] = LightStatusEnum.LightError; |
| | | } |
| | | return Task.CompletedTask; |
| | | } |
| | |
| | | task.ExceptionMessage = $"Ræ¾è´§åæ è¶
åºèå´,åè´§åæ ï¼{putPoR},æå¤§å¼ï¼{maxR},æå°å¼ï¼{minR}"; |
| | | _taskRepository.UpdateData(task); |
| | | } |
| | | if (LightStatusStorage.LightStatusDic.ContainsKey(putPositions[0])) |
| | | { |
| | | LightStatusStorage.LightStatusDic[putPositions[0]] = LightStatusEnum.LightError; |
| | | } |
| | | return Task.CompletedTask; |
| | | } |
| | | #endregion |
| | | |
| | | #region ä»»å¡åé |
| | | otherDevice.SetValue(GantryDBName.TwoHand, true); |
| | | otherDevice.SetValue(GantryDBName.TaskNum, task.TaskNum); |
| | | otherDevice.SetValue(GantryDBName.TakePositionX, takePoX); |
| | |
| | | otherDevice.SetValue(GantryDBName.Height, containerItem.ItemHeight); |
| | | otherDevice.SetValue(GantryDBName.WorkType, 1); |
| | | otherDevice.SetValue(GantryDBName.StartCommand, 1); |
| | | #endregion |
| | | |
| | | #region ä»»å¡ç¶ææ´æ° |
| | | task.TaskState = TaskStatusEnum.Gantry_Executing.ObjToInt(); |
| | | _taskRepository.UpdateData(task); |
| | | #endregion |
| | | |
| | | #region ä¸è²ç¯ç¶ææ´æ° |
| | | if (LightStatusStorage.LightStatusDic.TryGetValue(putPositions[0], out LightStatusEnum lightStatusDic)) |
| | | { |
| | | if (lightStatusDic != LightStatusEnum.LightWorking) |
| | |
| | | LightStatusStorage.LightStatusDic[putPositions[0]] = LightStatusEnum.LightWorking; |
| | | } |
| | | } |
| | | #endregion |
| | | } |
| | | } |
| | | else if (gantryWorkStatus == 5) |
| | |
| | | _orderDetailsService.ToMes(task.PalletCode, 4); |
| | | }); |
| | | |
| | | |
| | | string[] putPositions = task.NextAddress.Split("*"); |
| | | if (putPositions.Length != 5) |
| | | { |
| | | //WriteError |
| | | return Task.CompletedTask; |
| | | } |
| | | if (LightStatusStorage.LightStatusDic.TryGetValue(putPositions[0], out LightStatusEnum lightStatusDic)) |
| | |
| | | WriteError(nameof(GantryJob), "åæ°é误,æªä¼ é设å¤åæ°æè®¾å¤ç±»åé误"); |
| | | } |
| | | return Task.CompletedTask; |
| | | } |
| | | |
| | | public Dt_Task GetTask() |
| | | { |
| | | return new Dt_Task(); |
| | | } |
| | | } |
| | | } |