| | |
| | | using System.ComponentModel; |
| | | using Newtonsoft.Json.Linq; |
| | | using S7.Net; |
| | | using System.Threading.Tasks; |
| | | |
| | | namespace HH.WCS.JuShi.process |
| | | { |
| | |
| | | { |
| | | list.RemoveAll(s => loca.Contains(s.S_CODE)); |
| | | } |
| | | //过滤一下 允许进入的才分配 |
| | | var reservoirs = Settings.ReservoirAreas.Where(s => s.areaName == "立库入库区").FirstOrDefault(); |
| | | if (reservoirs.areaCode.Equals(area)) |
| | | { |
| | | var plcDeviceTable = S7Helper.plcDeviceTables; |
| | | foreach (var l in list) |
| | | { |
| | | var safeInteraction = Settings.SafeInteractions.Where(s => s.location == l.S_CODE).FirstOrDefault(); |
| | | var res = int.Parse(plcDeviceTable.RGVAllowUnload[safeInteraction.code].ToString().Substring(1, 1)); |
| | | if (res!=1) |
| | | { |
| | | list.Remove(l); |
| | | } |
| | | } |
| | | } |
| | | |
| | | |
| | | //符合条件的排序选第一个 先找第一个 |
| | | if (list.Count > 0) |
| | | { |
| | |
| | | else if (model.APPLY_CODE.Equals("8")) |
| | | { |
| | | //发送卸货完成、复位信号 |
| | | safeAssistant(reservoirs.code, res); |
| | | //卸货完成信号 |
| | | S7Helper.WriteInt(50, reservoirs.code * 2 - 2, (short)(reservoirs.code * 10 + 1)); |
| | | |
| | | // 启动后台任务处理延迟复位 |
| | | Task.Run(async () => |
| | | { |
| | | //10秒后复位 |
| | | await Task.Delay(10000); |
| | | S7Helper.WriteInt(50, reservoirs.code * 2 - 2, (short)(reservoirs.code * 10)); |
| | | LogHelper.Info($"RGV安全交互 复位完成"); |
| | | }); |
| | | //10秒后复位 |
| | | //S7Helper.WriteInt(50, reservoirs.code * 2 - 2, (short)(reservoirs.code * 10)); |
| | | //safeAssistant(reservoirs.code, res); |
| | | LogHelper.Info($"RGV安全交互 卸货完成"); |
| | | return new safeResult() { code = "0", msg = "success" }; |
| | | } |
| | |
| | | //循环发送信号 |
| | | private static void safeAssistant(int code, int res) |
| | | { |
| | | //2卸货完成确认 |
| | | if (res != 2) |
| | | { |
| | | //卸货完成信号 |
| | | S7Helper.WriteInt(50, code * 2 - 2, (short)(code * 10 + 1)); |
| | | Thread.Sleep(3000); |
| | | safeAssistant(code, res); |
| | | } |
| | | else |
| | | { |
| | | S7Helper.WriteInt(50, code * 2 - 2, (short)(code * 10)); |
| | | } |
| | | Thread.Sleep(10000); |
| | | S7Helper.WriteInt(50, code * 2 - 2, (short)(code * 10)); |
| | | LogHelper.Info($"RGV安全交互 复位完成"); |
| | | ////2卸货完成确认 |
| | | //if (res != 2) |
| | | //{ |
| | | // //卸货完成信号 |
| | | // S7Helper.WriteInt(50, code * 2 - 2, (short)(code * 10 + 1)); |
| | | // Thread.Sleep(3000); |
| | | // safeAssistant(code, res); |
| | | //} |
| | | //else |
| | | //{ |
| | | // S7Helper.WriteInt(50, code * 2 - 2, (short)(code * 10)); |
| | | //} |
| | | |
| | | } |
| | | |