From 31e3b11154a745fcd1478a3ce90c6575012f1ceb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8C=83?= <15095123350@163.com> Date: Wed, 9 Oct 2024 08:38:14 +0800 Subject: [PATCH] 1 --- src/Khd.Core.Wcs/Wcs/SystemTimer.cs | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/src/Khd.Core.Wcs/Wcs/SystemTimer.cs b/src/Khd.Core.Wcs/Wcs/SystemTimer.cs index 953560e..6c52a24 100644 --- a/src/Khd.Core.Wcs/Wcs/SystemTimer.cs +++ b/src/Khd.Core.Wcs/Wcs/SystemTimer.cs @@ -6,6 +6,7 @@ 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; @@ -288,6 +289,7 @@ 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 @@ -343,10 +345,12 @@ 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); } } @@ -364,6 +368,7 @@ 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 @@ -396,7 +401,7 @@ namespace Khd.Core.Wcs.Wcs } heartBeatCount = !heartBeatCount; StaticData.PlcDic[0].WriteToPoint(HeartBeat30.plcpointAddress, heartBeatCount, HeartBeat30.plcpointLength?.ToString()); - if (errorCount > 0) + if (errorCount > 0 && isOver) { dbContext.ChangeTracker.Entries().ToList().ForEach(e => e.Reload()); var dmsRecordAlarmTime = dbContext.DmsRecordAlarmTime.Where(t => t.CreateBy == "WCS" && t.DeviceId == 13).FirstOrDefault(); @@ -421,10 +426,12 @@ 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); } } @@ -442,6 +449,7 @@ 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 @@ -473,7 +481,7 @@ namespace Khd.Core.Wcs.Wcs } heartBeatCount = !heartBeatCount; StaticData.PlcDic[1].WriteToPoint(HeartBeat31.plcpointAddress, heartBeatCount, HeartBeat31.plcpointLength?.ToString()); - if (errorCount > 0) + if (errorCount > 0 && isOver) { dbContext.ChangeTracker.Entries().ToList().ForEach(e => e.Reload()); var dmsRecordAlarmTime = dbContext.DmsRecordAlarmTime.Where(t => t.CreateBy == "WCS" && t.DeviceId == 14).FirstOrDefault(); @@ -500,10 +508,12 @@ 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); } } @@ -746,7 +756,7 @@ namespace Khd.Core.Wcs.Wcs } else { - // Console.WriteLine("3F走廊区域正常"); + // Console.WriteLine("3F走廊区域正常"); } #endregion } @@ -796,7 +806,7 @@ namespace Khd.Core.Wcs.Wcs } else { - // Console.WriteLine("2F走廊区域正常"); + // Console.WriteLine("2F走廊区域正常"); } #endregion }