| | |
| | | using System.Linq; |
| | | using System.Security.Policy; |
| | | using System.Threading; |
| | | using System.Threading.Tasks; |
| | | using WIDESEA_Common; |
| | | using WIDESEA_Common.LoctionEnum; |
| | | using WIDESEA_Common.Tools; |
| | |
| | | public static void Z_GFSB_DownTask() |
| | | { |
| | | if (Interlocked.Exchange(ref _readGFBUPSignalso, 1) == 0) |
| | | { |
| | | Task.Run(() => |
| | | { |
| | | try |
| | | { |
| | |
| | | //查看当前辊分机设备是否有AGV任务 |
| | | var SBtask = agvRepository.FindFirst(f => f.agv_fromaddress == plc.PLCDescroption && (f.agv_taskstate == AGVTaskStateEnum.Create.ToString() || f.agv_taskstate == AGVTaskStateEnum.SendOut.ToString() || f.agv_taskstate == AGVTaskStateEnum.Executing.ToString() || f.agv_taskstate == AGVTaskStateEnum.Complete.ToString())); |
| | | //有结束本次循环 |
| | | if (SBtask != null) { |
| | | if (SBtask != null) |
| | | { |
| | | //WriteLog.GetLog($"{GFSBS}下料呼叫").Write($"读取 设备:{GFSB}下料一口,AGV任务列表中存在任务,无法继续下发任务,时间记录:{DateTime.Now}", $"{GFSBS}下料呼叫"); |
| | | } |
| | | else |
| | | { |
| | | #region 记录下料请求信号 |
| | | WriteLog.GetLog().Write($"下料口1请求:{GYC_RFX1.Content}---{DateTime.Now}", $"{plc.PLCName}下料请求"); |
| | | #endregion |
| | | List<base_routing_table> Routing_Table = routingRepository.Find(d => d.route_began == plc.PLCDescroption); |
| | | |
| | | base_ware_location Location = null; //绑定设备的货架 |
| | |
| | | if (zone==1) |
| | | { |
| | | agvRepository.Add(agvtask, true); |
| | | WriteDBLog.Info($"【{GFSB}】下料一口任务生成").Write($"生成任务:{agvtask.agv_tasknum},终点货位【{a}】状态:托盘光电检测:{Location.tpgd},-1光电:{Location.gd2},-2光电:{Location.gd1},-3光电:{Location.gd4},-4光电:{Location.gd3},状态:{Location.location_state},设备绑定:{Location.light_color},更新时间:{Location.wireless_time}", $"【{GFSB}】下料一口任务生成"); |
| | | WriteDBLog.Info($"【{GFSB}】下料一口任务生成").Write($"----------------任务生成成功 {DateTime.Now} -------------- {Environment.NewLine}", $"【{GFSB}】下料一口任务生成"); |
| | | //WriteDBLog.Info($"【{GFSB}】下料一口任务生成").Write($"生成任务:{agvtask.agv_tasknum},终点货位【{a}】状态:托盘光电检测:{Location.tpgd},-1光电:{Location.gd2},-2光电:{Location.gd1},-3光电:{Location.gd4},-4光电:{Location.gd3},状态:{Location.location_state},设备绑定:{Location.light_color},更新时间:{Location.wireless_time}", $"【{GFSB}】下料一口任务生成"); |
| | | //WriteDBLog.Info($"【{GFSB}】下料一口任务生成").Write($"----------------任务生成成功 {DateTime.Now} -------------- {Environment.NewLine}", $"【{GFSB}】下料一口任务生成"); |
| | | } |
| | | |
| | | break; |
| | |
| | | if (zone==1) |
| | | { |
| | | agvRepository.Add(agvtask, true); |
| | | WriteDBLog.Info($"【{GFSB}】下料一口任务生成").Write($"生成任务:{agvtask.agv_tasknum},终点货位【{a}】状态:托盘光电检测:{xLocation.tpgd},-1光电:{xLocation.gd2},-2光电:{xLocation.gd1},-3光电:{xLocation.gd4},-4光电:{xLocation.gd3},状态:{xLocation.location_state},设备绑定:{xLocation.light_color},更新时间:{Location.wireless_time}", $"【{GFSB}】下料一口任务生成"); |
| | | WriteDBLog.Info($"【{GFSB}】下料一口任务生成").Write($"----------------任务生成成功 {DateTime.Now} -------------- {Environment.NewLine}", $"【{GFSB}】下料一口任务生成"); |
| | | ////WriteDBLog.Info($"【{GFSB}】下料一口任务生成").Write($"生成任务:{agvtask.agv_tasknum},终点货位【{a}】状态:托盘光电检测:{xLocation.tpgd},-1光电:{xLocation.gd2},-2光电:{xLocation.gd1},-3光电:{xLocation.gd4},-4光电:{xLocation.gd3},状态:{xLocation.location_state},设备绑定:{xLocation.light_color},更新时间:{Location.wireless_time}", $"【{GFSB}】下料一口任务生成"); |
| | | //WriteDBLog.Info($"【{GFSB}】下料一口任务生成").Write($"----------------任务生成成功 {DateTime.Now} -------------- {Environment.NewLine}", $"【{GFSB}】下料一口任务生成"); |
| | | } |
| | | break; |
| | | } |
| | |
| | | if (SBtask != null) { } |
| | | else |
| | | { |
| | | #region 记录下料请求信号 |
| | | WriteLog.GetLog().Write($"下料口2请求:{GYC_RFX2.Content}---{DateTime.Now}", $"{plc.PLCName}下料请求"); |
| | | #endregion |
| | | List<base_routing_table> Routing_Table = routingRepository.Find(d => d.route_began == plc.PLCDownLoc); |
| | | |
| | | base_ware_location Location = null; //找绑定设备的货架 |
| | |
| | | if (ztwo==1) |
| | | { |
| | | agvRepository.Add(agvtask, true); |
| | | WriteDBLog.Info($"【{GFSB}】下料二口任务生成").Write($"生成任务:{agvtask.agv_tasknum},终点货位【{a}】状态:托盘光电检测:{Location.tpgd},-1光电:{Location.gd2},-2光电:{Location.gd1},-3光电:{Location.gd4},-4光电:{Location.gd3},状态:{Location.location_state},设备绑定:{Location.light_color},更新时间:{Location.wireless_time}", $"【{GFSB}】下料二口任务生成"); |
| | | WriteDBLog.Info($"【{GFSB}】下料二口任务生成").Write($"----------------任务生成成功 {DateTime.Now} -------------- {Environment.NewLine}", $"【{GFSB}】下料二口任务生成"); |
| | | //WriteDBLog.Info($"【{GFSB}】下料二口任务生成").Write($"生成任务:{agvtask.agv_tasknum},终点货位【{a}】状态:托盘光电检测:{Location.tpgd},-1光电:{Location.gd2},-2光电:{Location.gd1},-3光电:{Location.gd4},-4光电:{Location.gd3},状态:{Location.location_state},设备绑定:{Location.light_color},更新时间:{Location.wireless_time}", $"【{GFSB}】下料二口任务生成"); |
| | | //WriteDBLog.Info($"【{GFSB}】下料二口任务生成").Write($"----------------任务生成成功 {DateTime.Now} -------------- {Environment.NewLine}", $"【{GFSB}】下料二口任务生成"); |
| | | } |
| | | break; |
| | | } |
| | |
| | | if (ztwo == 1) |
| | | { |
| | | agvRepository.Add(agvtask, true); |
| | | WriteDBLog.Info($"【{GFSB}】下料二口任务生成").Write($"生成任务:{agvtask.agv_tasknum},终点货位【{a}】状态:托盘光电检测:{xLocation.tpgd},-1光电:{xLocation.gd2},-2光电:{xLocation.gd1},-3光电:{xLocation.gd4},-4光电:{xLocation.gd3},状态:{xLocation.location_state},设备绑定:{xLocation.light_color},更新时间:{xLocation.wireless_time}", $"【{GFSB}】下料二口任务生成"); |
| | | //WriteDBLog.Info($"【{GFSB}】下料二口任务生成").Write($"生成任务:{agvtask.agv_tasknum},终点货位【{a}】状态:托盘光电检测:{xLocation.tpgd},-1光电:{xLocation.gd2},-2光电:{xLocation.gd1},-3光电:{xLocation.gd4},-4光电:{xLocation.gd3},状态:{xLocation.location_state},设备绑定:{xLocation.light_color},更新时间:{xLocation.wireless_time}", $"【{GFSB}】下料二口任务生成"); |
| | | |
| | | //base_ware_location ware_Locations = locRepository.FindFirst(d => d.down_code == xLocation.upper_code ); |
| | | //if (ware_Locations!=null) |
| | | //{ |
| | | // WriteDBLog.Info($"【{GFSB}】下料任务生成").Write($"货位【{ware_Locations.upper_code}】:货位任务状态:{ware_Locations.task}", $"【{GFSB}】下料任务生成"); |
| | | // //WriteDBLog.Info($"【{GFSB}】下料任务生成").Write($"货位【{ware_Locations.upper_code}】:货位任务状态:{ware_Locations.task}", $"【{GFSB}】下料任务生成"); |
| | | //} |
| | | WriteDBLog.Info($"【{GFSB}】下料二口任务生成").Write($"----------------任务生成成功 {DateTime.Now} -------------- {Environment.NewLine}", $"【{GFSB}】下料二口任务生成"); |
| | | //WriteDBLog.Info($"【{GFSB}】下料二口任务生成").Write($"----------------任务生成成功 {DateTime.Now} -------------- {Environment.NewLine}", $"【{GFSB}】下料二口任务生成"); |
| | | } |
| | | break; |
| | | } |
| | |
| | | |
| | | } |
| | | } |
| | | catch (Exception) |
| | | catch (Exception ex) |
| | | { |
| | | |
| | | throw; |
| | | WriteLog.GetLog().Write($"正极棍分下料:{DateTime.Now} --------------{ex}", $"正极棍分下料"); |
| | | } |
| | | finally |
| | | { |
| | | Interlocked.Exchange(ref _readGFBUPSignalso, 0); |
| | | } |
| | | }); |
| | | |
| | | } |
| | | |
| | | |