diff --git a/src/Khd.Core.Wcs/Wcs/FirstFloor.cs b/src/Khd.Core.Wcs/Wcs/FirstFloor.cs index e50abd8..9e75a44 100644 --- a/src/Khd.Core.Wcs/Wcs/FirstFloor.cs +++ b/src/Khd.Core.Wcs/Wcs/FirstFloor.cs @@ -54,6 +54,10 @@ namespace Khd.Core.Wcs.Wcs /// private readonly BasePlcpoint reserialno06; /// + /// 提升机手自动状态 + /// + private readonly BasePlcpoint hoisterStatus; + /// /// 提升机到位信号 读 /// private readonly BasePlcpoint mesClose; @@ -80,7 +84,8 @@ namespace Khd.Core.Wcs.Wcs this.targetfloor06 = StaticData.BasePlcpointList.First(t => t.equipmentNo.Contains("Hoister") && t.plcpointNo.Contains("targetfloor06")); //一楼提升机到位信号 读 this.reserialno06 = StaticData.BasePlcpointList.First(t => t.equipmentNo.Contains("Hoister") && t.plcpointNo.Contains("reserialno06")); - + //提升机手自动状态 + this.hoisterStatus = StaticData.BasePlcpointList.First(t => t.equipmentNo.Contains("Hoister") && t.plcpointNo.Contains("hoisterStatus")); } /// @@ -300,7 +305,6 @@ namespace Khd.Core.Wcs.Wcs { if (StaticData.BigContainerCodes.Contains(RFID001Value)) { - continue; var newTask = new WcsTask() { objid = StaticData.SnowId.NextId(), @@ -495,7 +499,7 @@ namespace Khd.Core.Wcs.Wcs { using var scope = _host.Services.CreateScope(); using var dbContext = scope.ServiceProvider.GetRequiredService(); - + while (true) { using var transaction = dbContext.Database.BeginTransaction(); @@ -507,9 +511,10 @@ namespace Khd.Core.Wcs.Wcs var hoisterTrayIn06Value = StaticData.PlcDic[0].Read(this.hoistertrayin06.plcpointAddress); //提升机货物到位状态 读 var currentfloor06Value = StaticData.PlcDic[0].Read(this.currentfloor06.plcpointAddress); //提升机当前楼层 读 var targetfloor06Value = StaticData.PlcDic[0].Read(this.targetfloor06.plcpointAddress); //提升机目的楼层 写 + var hoisterStatusValue = StaticData.PlcDic[0].Read(this.hoisterStatus.plcpointAddress); //提升机目的楼层 写 var reserialno06 = StaticData.PlcDic[0].Read(this.reserialno06.plcpointAddress); //反馈流水号 - _logger.Info($"MES开启?{mesCloseValue},提升机流水号?{serialno06Value},提升机状态?{equipstate06Value},提升机货物到位状态?{hoisterTrayIn06Value},提升机当前楼层?{currentfloor06Value},提升机目的楼层?{targetfloor06Value},反馈流水号?{reserialno06}"); - if (mesCloseValue != null && Convert.ToInt32(mesCloseValue) == 0) + _logger.Info($"MES开启?{mesCloseValue},提升机自动状态?{hoisterStatusValue},提升机流水号?{serialno06Value},提升机状态?{equipstate06Value},提升机货物到位状态?{hoisterTrayIn06Value},提升机当前楼层?{currentfloor06Value},提升机目的楼层?{targetfloor06Value},反馈流水号?{reserialno06}"); + if (mesCloseValue != null && hoisterStatusValue != null && Convert.ToInt32(hoisterStatusValue) == 1 && Convert.ToInt32(mesCloseValue) == 0) { //正常读到plc值 if (targetfloor06Value != null && serialno06Value != null && equipstate06Value != null && currentfloor06Value != null && reserialno06 != null && hoisterTrayIn06Value != null) diff --git a/src/Khd.Core.Wcs/Wcs/SecondFloorLine.cs b/src/Khd.Core.Wcs/Wcs/SecondFloorLine.cs index 9692ba8..c5c343e 100644 --- a/src/Khd.Core.Wcs/Wcs/SecondFloorLine.cs +++ b/src/Khd.Core.Wcs/Wcs/SecondFloorLine.cs @@ -141,10 +141,11 @@ namespace Khd.Core.Wcs.Wcs BasePlcpoint basePlcpoint = StaticData.BasePlcpointList.First(t => t.plcpointNo == "someOut");//多个出 BasePlcpoint linesignal01 = StaticData.BasePlcpointList.First(t => t.plcpointNo == "linesignal01");//一楼接驳位到位 BasePlcpoint equipstate06 = StaticData.BasePlcpointList.First(t => t.plcpointNo == "equipstate06");//提升机状态 + BasePlcpoint trayStatusValue = StaticData.BasePlcpointList.First(t => t.plcpointNo == "trayStatus");//提升机状态 BaseEquip lineEquip = dbContext.BaseEquip.First(t => t.objid == 1);//一楼接驳位 var lineSignal01Value = StaticData.PlcDic[0].Read(linesignal01.plcpointAddress); var equipstate06Value = StaticData.PlcDic[0].Read(equipstate06.plcpointAddress); - if (FirstFloor.ReadEmptyLocation() && Convert.ToInt32(lineSignal01Value) == 0 && Convert.ToInt32(equipstate06Value) == 0) + if (FirstFloor.ReadEmptyLocation() && trayStatusValue != null && Convert.ToInt32(trayStatusValue) == 1 && Convert.ToInt32(lineSignal01Value) == 0 && Convert.ToInt32(equipstate06Value) == 0) { StaticData.PlcDic[0].WriteToPoint(basePlcpoint.plcpointAddress, "1", basePlcpoint.plcpointLength.ToString());//托盘库多个出 WcsTask wcsTaskManual = new WcsTask() @@ -180,10 +181,11 @@ namespace Khd.Core.Wcs.Wcs BasePlcpoint basePlcpoint = StaticData.BasePlcpointList.First(t => t.plcpointNo == "oneOut");//多个出 BasePlcpoint linesignal01 = StaticData.BasePlcpointList.First(t => t.plcpointNo == "linesignal01");//一楼接驳位到位 BasePlcpoint equipstate06 = StaticData.BasePlcpointList.First(t => t.plcpointNo == "equipstate06");//提升机状态 + BasePlcpoint trayStatusValue = StaticData.BasePlcpointList.First(t => t.plcpointNo == "trayStatus");//提升机状态 BaseEquip lineEquip = dbContext.BaseEquip.First(t => t.objid == 1);//一楼接驳位 var lineSignal01Value = StaticData.PlcDic[0].Read(linesignal01.plcpointAddress); var equipstate06Value = StaticData.PlcDic[0].Read(equipstate06.plcpointAddress); - if (FirstFloor.ReadEmptyLocation() && Convert.ToInt32(lineSignal01Value) == 0 && Convert.ToInt32(equipstate06Value) == 0) + if (FirstFloor.ReadEmptyLocation() && trayStatusValue != null && Convert.ToInt32(trayStatusValue) == 1 && Convert.ToInt32(lineSignal01Value) == 0 && Convert.ToInt32(equipstate06Value) == 0) { StaticData.PlcDic[0].WriteToPoint(basePlcpoint.plcpointAddress, "1", basePlcpoint.plcpointLength.ToString());//托盘库多个出 WcsTask wcsTaskManual = new WcsTask() diff --git a/src/Khd.Core.Wpf/Form/FormBoardT.xaml.cs b/src/Khd.Core.Wpf/Form/FormBoardT.xaml.cs index 9a1c8ca..9484a79 100644 --- a/src/Khd.Core.Wpf/Form/FormBoardT.xaml.cs +++ b/src/Khd.Core.Wpf/Form/FormBoardT.xaml.cs @@ -3105,6 +3105,13 @@ namespace Khd.Core.Wpf.Form { try { + BasePlcpoint trayStatus = SystemData.BasePlcpoints.First(t => t.plcpointNo == "trayStatus"); + var trayStatusValue = SystemData.PlcDic[0].Read(trayStatus.plcpointAddress); + if(trayStatusValue == null || Convert.ToInt32(trayStatusValue) == 0) + { + HandyControl.Controls.MessageBox.Error("托盘库开启自动状态!"); + return; + } BasePlcpoint lineSignal = SystemData.BasePlcpoints.First(t => t.plcpointNo == "linesignal01"); var lineSignalValue = SystemData.PlcDic[0].Read(lineSignal.plcpointAddress); if (lineSignalValue != null && Convert.ToInt32(lineSignalValue) == 1) @@ -3154,6 +3161,13 @@ namespace Khd.Core.Wpf.Form { try { + BasePlcpoint trayStatus = SystemData.BasePlcpoints.First(t => t.plcpointNo == "trayStatus"); + var trayStatusValue = SystemData.PlcDic[0].Read(trayStatus.plcpointAddress); + if (trayStatusValue == null || Convert.ToInt32(trayStatusValue) == 0) + { + HandyControl.Controls.MessageBox.Error("托盘库开启自动状态!"); + return; + } BasePlcpoint lineSignal = SystemData.BasePlcpoints.First(t => t.plcpointNo == "linesignal01"); var lineSignalValue = SystemData.PlcDic[0].Read(lineSignal.plcpointAddress); if (lineSignalValue != null && Convert.ToInt32(lineSignalValue) == 0) @@ -3203,6 +3217,13 @@ namespace Khd.Core.Wpf.Form { try { + BasePlcpoint trayStatus = SystemData.BasePlcpoints.First(t => t.plcpointNo == "trayStatus"); + var trayStatusValue = SystemData.PlcDic[0].Read(trayStatus.plcpointAddress); + if (trayStatusValue == null || Convert.ToInt32(trayStatusValue) == 0) + { + HandyControl.Controls.MessageBox.Error("托盘库开启自动状态!"); + return; + } //BasePlcpoint lineSignal = SystemData.BasePlcpoints.First(t => t.plcpointNo == "linesignal01"); //var lineSignalValue = SystemData.PlcDic[0].Read(lineSignal.plcpointAddress); //if (lineSignalValue != null && Convert.ToInt32(lineSignalValue) == 1) @@ -3258,6 +3279,13 @@ namespace Khd.Core.Wpf.Form { try { + BasePlcpoint trayStatus = SystemData.BasePlcpoints.First(t => t.plcpointNo == "trayStatus"); + var trayStatusValue = SystemData.PlcDic[0].Read(trayStatus.plcpointAddress); + if (trayStatusValue == null || Convert.ToInt32(trayStatusValue) == 0) + { + HandyControl.Controls.MessageBox.Error("托盘库开启自动状态!"); + return; + } if (!ReadEmptyLocation()) { HandyControl.Controls.MessageBox.Show("有任务正在执行");