diff --git a/src/Khd.Core.Wcs/Wcs/SystemTimer.cs b/src/Khd.Core.Wcs/Wcs/SystemTimer.cs index 6c52a24..677a889 100644 --- a/src/Khd.Core.Wcs/Wcs/SystemTimer.cs +++ b/src/Khd.Core.Wcs/Wcs/SystemTimer.cs @@ -6,7 +6,6 @@ using Khd.Core.Library.Mapper; using Khd.Core.Plc.S7; using Khd.Core.Wcs.Global; using Masuit.Tools; -using Microsoft.AspNetCore.Hosting.Server; using Microsoft.EntityFrameworkCore; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting; @@ -289,7 +288,6 @@ namespace Khd.Core.Wcs.Wcs using var dbContext = scope.ServiceProvider.GetRequiredService(); BasePlcpoint HeartBeat30 = StaticData.BasePlcpointList.First(t => t.plcpointNo == "putTray"); int errorCount = 0; - bool isOver = false; while (true) { try @@ -345,12 +343,10 @@ namespace Khd.Core.Wcs.Wcs { StaticData.PlcDic[2] = new Plc.S7.Plc(StaticData.PlcDic[2].CPU, StaticData.PlcDic[2].IP, StaticData.PlcDic[2].Port, StaticData.PlcDic[2].Rack, StaticData.PlcDic[2].Slot); StaticData.PlcDic[2].Open(); - isOver = true; } catch (Exception ex2) { errorCount++; - isOver = false; _logger.Error("Plc短线重连失败" + ex2.Message); } } @@ -368,7 +364,6 @@ namespace Khd.Core.Wcs.Wcs BasePlcpoint HeartBeat30 = StaticData.BasePlcpointList.First(t => t.plcpointNo == "HeartBeat30"); bool heartBeatCount = false; int errorCount = 0; - bool isOver = false; while (true) { try @@ -401,7 +396,7 @@ namespace Khd.Core.Wcs.Wcs } heartBeatCount = !heartBeatCount; StaticData.PlcDic[0].WriteToPoint(HeartBeat30.plcpointAddress, heartBeatCount, HeartBeat30.plcpointLength?.ToString()); - if (errorCount > 0 && isOver) + if (errorCount > 0) { dbContext.ChangeTracker.Entries().ToList().ForEach(e => e.Reload()); var dmsRecordAlarmTime = dbContext.DmsRecordAlarmTime.Where(t => t.CreateBy == "WCS" && t.DeviceId == 13).FirstOrDefault(); @@ -426,12 +421,10 @@ namespace Khd.Core.Wcs.Wcs { StaticData.PlcDic[0] = new Plc.S7.Plc(StaticData.PlcDic[0].CPU, StaticData.PlcDic[0].IP, StaticData.PlcDic[0].Port, StaticData.PlcDic[0].Rack, StaticData.PlcDic[0].Slot); StaticData.PlcDic[0].Open(); - isOver = true; } catch (Exception ex2) { errorCount++; - isOver = false; _logger.Error("Plc短线重连失败" + ex2.Message); } } @@ -449,7 +442,6 @@ namespace Khd.Core.Wcs.Wcs BasePlcpoint HeartBeat31 = StaticData.BasePlcpointList.First(t => t.plcpointNo == "CTUHeart"); bool heartBeatCount = false; int errorCount = 0; - bool isOver = false; while (true) { try @@ -481,7 +473,7 @@ namespace Khd.Core.Wcs.Wcs } heartBeatCount = !heartBeatCount; StaticData.PlcDic[1].WriteToPoint(HeartBeat31.plcpointAddress, heartBeatCount, HeartBeat31.plcpointLength?.ToString()); - if (errorCount > 0 && isOver) + if (errorCount > 0) { dbContext.ChangeTracker.Entries().ToList().ForEach(e => e.Reload()); var dmsRecordAlarmTime = dbContext.DmsRecordAlarmTime.Where(t => t.CreateBy == "WCS" && t.DeviceId == 14).FirstOrDefault(); @@ -508,12 +500,10 @@ namespace Khd.Core.Wcs.Wcs { StaticData.PlcDic[1] = new Plc.S7.Plc(StaticData.PlcDic[1].CPU, StaticData.PlcDic[1].IP, StaticData.PlcDic[1].Port, StaticData.PlcDic[1].Rack, StaticData.PlcDic[1].Slot); StaticData.PlcDic[1].Open(); - isOver = true; } catch (Exception ex2) { errorCount++; - isOver = false; _logger.Error("Plc短线重连失败" + ex2.Message); } } @@ -750,14 +740,22 @@ namespace Khd.Core.Wcs.Wcs StaticData.PlcDic[2].WriteToPoint(Ylc.Address, cardStatus.PosY.ToString(), Ylc.type); #region 经过走廊区域报警 - if (int.Parse(cardStatus.PosX) >= 53040 && int.Parse(cardStatus.PosX) <= 58090 && (int.Parse(cardStatus.PosY) >= 53520 && int.Parse(cardStatus.PosY) <= 64590)) + var Agv3FLED = StaticData.BasePlcpointList.First(t => t.id == 76); + if(Agv3FLED != null) { - Console.WriteLine("=======>3F走廊区域预警"); - } - else - { - // Console.WriteLine("3F走廊区域正常"); + if (int.Parse(cardStatus.PosX) >= 53040 && int.Parse(cardStatus.PosX) <= 58090 && (int.Parse(cardStatus.PosY) >= 53520 && int.Parse(cardStatus.PosY) <= 64590)) + { + // Console.WriteLine("=======>3F走廊区域预警"); + + StaticData.PlcDic[0].WriteToPoint(Agv3FLED.plcpointAddress, true, Agv3FLED.plcpointLength.ToString()); + } + else + { + // Console.WriteLine("3F走廊区域正常"); + StaticData.PlcDic[0].WriteToPoint(Agv3FLED.plcpointAddress, false, Agv3FLED.plcpointLength.ToString()); + } } + #endregion } } @@ -800,14 +798,22 @@ namespace Khd.Core.Wcs.Wcs StaticData.PlcDic[2].WriteToPoint(Ylc.Address, cardStatus.PosY.ToString(), Ylc.type); #region 经过走廊区域报警 - if (int.Parse(cardStatus.PosX) >= 119000 && int.Parse(cardStatus.PosX) <= 122800 && (int.Parse(cardStatus.PosY) >= 124100 && int.Parse(cardStatus.PosY) <= 134435)) + var Agv2FLED = StaticData.BasePlcpointList.First(t => t.id == 75); + if (Agv2FLED != null) { - Console.WriteLine("=======>2F走廊区域预警"); - } - else - { - // Console.WriteLine("2F走廊区域正常"); + if (int.Parse(cardStatus.PosX) >= 119000 && int.Parse(cardStatus.PosX) <= 122800 && (int.Parse(cardStatus.PosY) >= 124100 && int.Parse(cardStatus.PosY) <= 134435)) + { + // Console.WriteLine("=======>2F走廊区域预警"); + + StaticData.PlcDic[0].WriteToPoint(Agv2FLED.plcpointAddress, true, Agv2FLED.plcpointLength.ToString()); + } + else + { + // Console.WriteLine("2F走廊区域正常"); + StaticData.PlcDic[0].WriteToPoint(Agv2FLED.plcpointAddress, false, Agv2FLED.plcpointLength.ToString()); + } } + #endregion } diff --git a/src/Khd.Core.Wpf/Form/FormBoardT.xaml.cs b/src/Khd.Core.Wpf/Form/FormBoardT.xaml.cs index df1db73..4171ff5 100644 --- a/src/Khd.Core.Wpf/Form/FormBoardT.xaml.cs +++ b/src/Khd.Core.Wpf/Form/FormBoardT.xaml.cs @@ -124,6 +124,7 @@ namespace Khd.Core.Wpf.Form private void FormBoard_Loaded(object sender, RoutedEventArgs e) { InitializeData(1); + QueryPositionCombox.SelectedIndex = 0; // 设置默认选择为 "南侧" try { @@ -253,6 +254,16 @@ namespace Khd.Core.Wpf.Form Thread.Sleep(3000); } }); + + + try + { + GetPersonCallMaterialData(); + }catch(Exception ex) + { + Console.WriteLine(ex.Message); + } + //加载dategrid信息 //LoadMaterial_GetMessage(""); //连接PLC判断 @@ -1554,7 +1565,7 @@ namespace Khd.Core.Wpf.Form if (selectedTabItem != null && selectedTabItem.Name == "CallPersonManager") { //人工叫料界面 CallSelectedItem.Clear(); - await GetPersonCallMaterialData(); + //await GetPersonCallMaterialData(); } else if (selectedTabItem != null && selectedTabItem.Name == "InventoryManager") { //盘库界面