1 year ago
parent e67ecafc30
commit 31e3b11154

@ -6,6 +6,7 @@ using Khd.Core.Library.Mapper;
using Khd.Core.Plc.S7; using Khd.Core.Plc.S7;
using Khd.Core.Wcs.Global; using Khd.Core.Wcs.Global;
using Masuit.Tools; using Masuit.Tools;
using Microsoft.AspNetCore.Hosting.Server;
using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting; using Microsoft.Extensions.Hosting;
@ -288,6 +289,7 @@ namespace Khd.Core.Wcs.Wcs
using var dbContext = scope.ServiceProvider.GetRequiredService<DefaultDbContext>(); using var dbContext = scope.ServiceProvider.GetRequiredService<DefaultDbContext>();
BasePlcpoint HeartBeat30 = StaticData.BasePlcpointList.First(t => t.plcpointNo == "putTray"); BasePlcpoint HeartBeat30 = StaticData.BasePlcpointList.First(t => t.plcpointNo == "putTray");
int errorCount = 0; int errorCount = 0;
bool isOver = false;
while (true) while (true)
{ {
try 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] = 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(); StaticData.PlcDic[2].Open();
isOver = true;
} }
catch (Exception ex2) catch (Exception ex2)
{ {
errorCount++; errorCount++;
isOver = false;
_logger.Error("Plc短线重连失败" + ex2.Message); _logger.Error("Plc短线重连失败" + ex2.Message);
} }
} }
@ -364,6 +368,7 @@ namespace Khd.Core.Wcs.Wcs
BasePlcpoint HeartBeat30 = StaticData.BasePlcpointList.First(t => t.plcpointNo == "HeartBeat30"); BasePlcpoint HeartBeat30 = StaticData.BasePlcpointList.First(t => t.plcpointNo == "HeartBeat30");
bool heartBeatCount = false; bool heartBeatCount = false;
int errorCount = 0; int errorCount = 0;
bool isOver = false;
while (true) while (true)
{ {
try try
@ -396,7 +401,7 @@ namespace Khd.Core.Wcs.Wcs
} }
heartBeatCount = !heartBeatCount; heartBeatCount = !heartBeatCount;
StaticData.PlcDic[0].WriteToPoint(HeartBeat30.plcpointAddress, heartBeatCount, HeartBeat30.plcpointLength?.ToString()); 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()); dbContext.ChangeTracker.Entries().ToList().ForEach(e => e.Reload());
var dmsRecordAlarmTime = dbContext.DmsRecordAlarmTime.Where(t => t.CreateBy == "WCS" && t.DeviceId == 13).FirstOrDefault(); 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] = 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(); StaticData.PlcDic[0].Open();
isOver = true;
} }
catch (Exception ex2) catch (Exception ex2)
{ {
errorCount++; errorCount++;
isOver = false;
_logger.Error("Plc短线重连失败" + ex2.Message); _logger.Error("Plc短线重连失败" + ex2.Message);
} }
} }
@ -442,6 +449,7 @@ namespace Khd.Core.Wcs.Wcs
BasePlcpoint HeartBeat31 = StaticData.BasePlcpointList.First(t => t.plcpointNo == "CTUHeart"); BasePlcpoint HeartBeat31 = StaticData.BasePlcpointList.First(t => t.plcpointNo == "CTUHeart");
bool heartBeatCount = false; bool heartBeatCount = false;
int errorCount = 0; int errorCount = 0;
bool isOver = false;
while (true) while (true)
{ {
try try
@ -473,7 +481,7 @@ namespace Khd.Core.Wcs.Wcs
} }
heartBeatCount = !heartBeatCount; heartBeatCount = !heartBeatCount;
StaticData.PlcDic[1].WriteToPoint(HeartBeat31.plcpointAddress, heartBeatCount, HeartBeat31.plcpointLength?.ToString()); 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()); dbContext.ChangeTracker.Entries().ToList().ForEach(e => e.Reload());
var dmsRecordAlarmTime = dbContext.DmsRecordAlarmTime.Where(t => t.CreateBy == "WCS" && t.DeviceId == 14).FirstOrDefault(); 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] = 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(); StaticData.PlcDic[1].Open();
isOver = true;
} }
catch (Exception ex2) catch (Exception ex2)
{ {
errorCount++; errorCount++;
isOver = false;
_logger.Error("Plc短线重连失败" + ex2.Message); _logger.Error("Plc短线重连失败" + ex2.Message);
} }
} }

Loading…
Cancel
Save