|
|
|
@ -16,6 +16,7 @@ using CFX;
|
|
|
|
using CFX.Structures;
|
|
|
|
using CFX.Structures;
|
|
|
|
using Sln.Iot.Serilog;
|
|
|
|
using Sln.Iot.Serilog;
|
|
|
|
using Amqp;
|
|
|
|
using Amqp;
|
|
|
|
|
|
|
|
using TouchSocket.Core;
|
|
|
|
|
|
|
|
|
|
|
|
namespace Sln.Iot.Business
|
|
|
|
namespace Sln.Iot.Business
|
|
|
|
{
|
|
|
|
{
|
|
|
|
@ -46,50 +47,57 @@ namespace Sln.Iot.Business
|
|
|
|
/// </summary>
|
|
|
|
/// </summary>
|
|
|
|
/// <param name="state"></param>
|
|
|
|
/// <param name="state"></param>
|
|
|
|
public void TimerCallback(object? state)
|
|
|
|
public void TimerCallback(object? state)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
try
|
|
|
|
{
|
|
|
|
{
|
|
|
|
byte[] errorBytes1 = new byte[1];
|
|
|
|
byte[] errorBytes1 = new byte[1];
|
|
|
|
|
|
|
|
|
|
|
|
//隧道烤箱报警
|
|
|
|
//隧道烤箱报警
|
|
|
|
var result20 = _plc.ReadBytes(_plc.DeltaInstance0, "D100", 1);
|
|
|
|
var result20 = _plc.ReadBytes(_plc.DeltaInstance0, "D100", 1);
|
|
|
|
//真空箱1报警
|
|
|
|
//真空箱1报警
|
|
|
|
var result21 = _plc.ReadBytes(_plc.DeltaInstance1, "D80", 10);
|
|
|
|
var result21 = _plc.ReadBytes(_plc.DeltaInstance1, "D80", 11);
|
|
|
|
//真空箱2报警
|
|
|
|
//真空箱2报警
|
|
|
|
var result22 = _plc.ReadBytes(_plc.DeltaInstance2, "D80", 10);
|
|
|
|
var result22 = _plc.ReadBytes(_plc.DeltaInstance2, "D80", 11);
|
|
|
|
//提升机报警
|
|
|
|
//提升机报警
|
|
|
|
var result23 = _plc.ReadBytes(_plc.DeltaInstance3, "D100", 1);
|
|
|
|
var result23 = _plc.ReadBytes(_plc.DeltaInstance3, "D100", 1);
|
|
|
|
|
|
|
|
|
|
|
|
if (result20.IsSuccess)
|
|
|
|
if (result20.IsSuccess && result20.Content != null)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
BitArray bits20 = new BitArray(result20.Content);
|
|
|
|
BitArray bits20 = new BitArray(ToolBusiness.SwapAdjacentBytes(result20.Content));
|
|
|
|
bool[] bools20 = new bool[bits20.Count];
|
|
|
|
bool[] bools20 = new bool[bits20.Count];
|
|
|
|
bits20.CopyTo(bools20, 0);
|
|
|
|
bits20.CopyTo(bools20, 0);
|
|
|
|
OvenAlarmAnalyse(bools20);
|
|
|
|
OvenAlarmAnalyse(bools20);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (result20.IsSuccess)
|
|
|
|
if (result21.IsSuccess && result21.Content != null)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
BitArray bits21 = new BitArray(result21.Content);
|
|
|
|
BitArray bits21 = new BitArray(ToolBusiness.SwapAdjacentBytes(result21.Content));
|
|
|
|
bool[] bools21 = new bool[bits21.Count];
|
|
|
|
bool[] bools21 = new bool[bits21.Count];
|
|
|
|
bits21.CopyTo(bools21, 0);
|
|
|
|
bits21.CopyTo(bools21, 0);
|
|
|
|
VacuumAlarm1Analyse(bools21);
|
|
|
|
VacuumAlarm1Analyse(bools21);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (result20.IsSuccess)
|
|
|
|
if (result22.IsSuccess && result22.Content != null)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
BitArray bits22 = new BitArray(result22.Content);
|
|
|
|
BitArray bits22 = new BitArray(ToolBusiness.SwapAdjacentBytes(result22.Content));
|
|
|
|
bool[] bools22 = new bool[bits22.Count];
|
|
|
|
bool[] bools22 = new bool[bits22.Count];
|
|
|
|
bits22.CopyTo(bools22, 0);
|
|
|
|
bits22.CopyTo(bools22, 0);
|
|
|
|
VacuumAlarm2Analyse(bools22);
|
|
|
|
VacuumAlarm2Analyse(bools22);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (result20.IsSuccess)
|
|
|
|
if (result23.IsSuccess && result23.Content != null)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
BitArray bits23 = new BitArray(result23.Content);
|
|
|
|
BitArray bits23 = new BitArray(ToolBusiness.SwapAdjacentBytes(result23.Content));
|
|
|
|
bool[] bools23 = new bool[bits23.Count];
|
|
|
|
bool[] bools23 = new bool[bits23.Count];
|
|
|
|
bits23.CopyTo(bools23, 0);
|
|
|
|
bits23.CopyTo(bools23, 0);
|
|
|
|
LiftAlarmAnalyse(bools23);
|
|
|
|
LiftAlarmAnalyse(bools23);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
_log.Error("报警信息处理发生错误", ex);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
/// <summary>
|
|
|
|
@ -108,11 +116,11 @@ namespace Sln.Iot.Business
|
|
|
|
//如果原来没有 现在有 添加错误
|
|
|
|
//如果原来没有 现在有 添加错误
|
|
|
|
if (errorList.Where(x => x.ErrorName == errorMessage.ENAlarmMessage).Count() == 0)
|
|
|
|
if (errorList.Where(x => x.ErrorName == errorMessage.ENAlarmMessage).Count() == 0)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
Guid transID = Guid.Parse(trayBindingService.TidGet());
|
|
|
|
Guid.TryParse(trayBindingService.TidGet(), out Guid transID);
|
|
|
|
Guid logGuid = Guid.NewGuid();
|
|
|
|
Guid logGuid = Guid.NewGuid();
|
|
|
|
errorService.InsertVacuum1Error(logGuid.ToString(), errorMessage.ENAlarmMessage, errorMessage.CNAlarmMessage, errorMessage.ErrorCode);
|
|
|
|
errorService.InsertVacuum1Error(logGuid.ToString(), errorMessage.ENAlarmMessage, errorMessage.CNAlarmMessage, errorMessage.ErrorCode);
|
|
|
|
connect1.PublishEvent(new CFXEnvelope(faultOccurredEvent.Handle(errorMessage.ErrorCode, LevelTrans(errorMessage.AlarmDegarde), logGuid, errorMessage.ENAlarmMessage + "-Vacuum1", transID)));
|
|
|
|
connect1.PublishEvent(new CFXEnvelope(faultOccurredEvent.Handle(errorMessage.ErrorCode, LevelTrans(errorMessage.AlarmDegarde), logGuid, errorMessage.ENAlarmMessage + "-Vacuum1", transID)));
|
|
|
|
_log.Info($"报警发生 内容:{errorMessage.CNAlarmMessage}");
|
|
|
|
_log.Info($"真空箱1报警发生 内容:{errorMessage.CNAlarmMessage} 级别:{errorMessage.AlarmDegarde.GetDescription()}");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
else
|
|
|
|
else
|
|
|
|
@ -122,8 +130,9 @@ namespace Sln.Iot.Business
|
|
|
|
{
|
|
|
|
{
|
|
|
|
//删除错误
|
|
|
|
//删除错误
|
|
|
|
string delGuid = errorService.DeleteVacuum2Error(errorMessage.ENAlarmMessage);
|
|
|
|
string delGuid = errorService.DeleteVacuum2Error(errorMessage.ENAlarmMessage);
|
|
|
|
connect1.PublishEvent(new CFXEnvelope(faultClearedEvent.Handle(Guid.Parse(delGuid))));
|
|
|
|
Guid.TryParse(delGuid, out Guid guidRes);
|
|
|
|
_log.Info($"报警消除 内容:{errorMessage.CNAlarmMessage}");
|
|
|
|
connect1.PublishEvent(new CFXEnvelope(faultClearedEvent.Handle(guidRes)));
|
|
|
|
|
|
|
|
_log.Info($"真空箱1报警消除 内容:{errorMessage.CNAlarmMessage} 级别:{errorMessage.AlarmDegarde.GetDescription()}");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
@ -145,11 +154,11 @@ namespace Sln.Iot.Business
|
|
|
|
//如果原来没有 现在有 添加错误
|
|
|
|
//如果原来没有 现在有 添加错误
|
|
|
|
if (errorList.Where(x => x.ErrorName == errorMessage.ENAlarmMessage).Count() == 0)
|
|
|
|
if (errorList.Where(x => x.ErrorName == errorMessage.ENAlarmMessage).Count() == 0)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
Guid transID = Guid.Parse(trayBindingService.TidGet());
|
|
|
|
Guid.TryParse(trayBindingService.TidGet(), out Guid transID);
|
|
|
|
Guid logGuid = Guid.NewGuid();
|
|
|
|
Guid logGuid = Guid.NewGuid();
|
|
|
|
errorService.InsertVacuum2Error(logGuid.ToString(), errorMessage.ENAlarmMessage, errorMessage.CNAlarmMessage, errorMessage.ErrorCode);
|
|
|
|
errorService.InsertVacuum2Error(logGuid.ToString(), errorMessage.ENAlarmMessage, errorMessage.CNAlarmMessage, errorMessage.ErrorCode);
|
|
|
|
connect1.PublishEvent(new CFXEnvelope(faultOccurredEvent.Handle(errorMessage.ErrorCode, LevelTrans(errorMessage.AlarmDegarde), logGuid, errorMessage.ENAlarmMessage + "-Vacuum2", transID)));
|
|
|
|
connect1.PublishEvent(new CFXEnvelope(faultOccurredEvent.Handle(errorMessage.ErrorCode, LevelTrans(errorMessage.AlarmDegarde), logGuid, errorMessage.ENAlarmMessage + "-Vacuum2", transID)));
|
|
|
|
_log.Info($"报警发生 内容:{errorMessage.CNAlarmMessage}");
|
|
|
|
_log.Info($"真空箱2报警发生 内容:{errorMessage.CNAlarmMessage} 级别:{errorMessage.AlarmDegarde.GetDescription()}");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
else
|
|
|
|
else
|
|
|
|
@ -159,8 +168,9 @@ namespace Sln.Iot.Business
|
|
|
|
{
|
|
|
|
{
|
|
|
|
//删除错误
|
|
|
|
//删除错误
|
|
|
|
string delGuid = errorService.DeleteVacuum2Error(errorMessage.ENAlarmMessage);
|
|
|
|
string delGuid = errorService.DeleteVacuum2Error(errorMessage.ENAlarmMessage);
|
|
|
|
connect1.PublishEvent(new CFXEnvelope(faultClearedEvent.Handle(Guid.Parse(delGuid))));
|
|
|
|
Guid.TryParse(delGuid, out Guid guidRes);
|
|
|
|
_log.Info($"报警消除 内容:{errorMessage.CNAlarmMessage}");
|
|
|
|
connect1.PublishEvent(new CFXEnvelope(faultClearedEvent.Handle(guidRes)));
|
|
|
|
|
|
|
|
_log.Info($"真空箱2报警消除 内容:{errorMessage.CNAlarmMessage} 级别:{errorMessage.AlarmDegarde.GetDescription()}");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
@ -182,11 +192,11 @@ namespace Sln.Iot.Business
|
|
|
|
//如果原来没有 现在有 添加错误
|
|
|
|
//如果原来没有 现在有 添加错误
|
|
|
|
if (errorList.Where(x => x.ErrorName == errorMessage.ENAlarmMessage).Count() == 0)
|
|
|
|
if (errorList.Where(x => x.ErrorName == errorMessage.ENAlarmMessage).Count() == 0)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
Guid transID = Guid.Parse(trayBindingService.TidGet());
|
|
|
|
Guid.TryParse(trayBindingService.TidGet(), out Guid transID);
|
|
|
|
Guid logGuid = Guid.NewGuid();
|
|
|
|
Guid logGuid = Guid.NewGuid();
|
|
|
|
errorService.InsertLiftError(logGuid.ToString(), errorMessage.ENAlarmMessage, errorMessage.CNAlarmMessage, errorMessage.ErrorCode);
|
|
|
|
errorService.InsertLiftError(logGuid.ToString(), errorMessage.ENAlarmMessage, errorMessage.CNAlarmMessage, errorMessage.ErrorCode);
|
|
|
|
connect2.PublishEvent(new CFXEnvelope(faultOccurredEvent.Handle(errorMessage.ErrorCode, LevelTrans(errorMessage.AlarmDegarde), logGuid, errorMessage.ENAlarmMessage, transID)));
|
|
|
|
connect2.PublishEvent(new CFXEnvelope(faultOccurredEvent.Handle(errorMessage.ErrorCode, LevelTrans(errorMessage.AlarmDegarde), logGuid, errorMessage.ENAlarmMessage, transID)));
|
|
|
|
_log.Info($"报警发生 内容:{errorMessage.CNAlarmMessage}");
|
|
|
|
_log.Info($"提升机报警发生 内容:{errorMessage.CNAlarmMessage} 级别:{errorMessage.AlarmDegarde.GetDescription()}");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
else
|
|
|
|
else
|
|
|
|
@ -196,8 +206,9 @@ namespace Sln.Iot.Business
|
|
|
|
{
|
|
|
|
{
|
|
|
|
//删除错误
|
|
|
|
//删除错误
|
|
|
|
string delGuid = errorService.DeleteliftError(errorMessage.ENAlarmMessage);
|
|
|
|
string delGuid = errorService.DeleteliftError(errorMessage.ENAlarmMessage);
|
|
|
|
connect2.PublishEvent(new CFXEnvelope(faultClearedEvent.Handle(Guid.Parse(delGuid))));
|
|
|
|
Guid.TryParse(delGuid, out Guid guidRes);
|
|
|
|
_log.Info($"报警消除 内容:{errorMessage.CNAlarmMessage}");
|
|
|
|
connect2.PublishEvent(new CFXEnvelope(faultClearedEvent.Handle(guidRes)));
|
|
|
|
|
|
|
|
_log.Info($"提升机报警消除 内容:{errorMessage.CNAlarmMessage} 级别:{errorMessage.AlarmDegarde.GetDescription()}");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
@ -219,11 +230,11 @@ namespace Sln.Iot.Business
|
|
|
|
//如果原来没有 现在有 添加错误
|
|
|
|
//如果原来没有 现在有 添加错误
|
|
|
|
if (errorList.Where(x => x.ErrorName == errorMessage.ENAlarmMessage).Count() == 0)
|
|
|
|
if (errorList.Where(x => x.ErrorName == errorMessage.ENAlarmMessage).Count() == 0)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
Guid transID = Guid.Parse(trayBindingService.TidGet());
|
|
|
|
Guid.TryParse(trayBindingService.TidGet(), out Guid transID);
|
|
|
|
Guid logGuid = Guid.NewGuid();
|
|
|
|
Guid logGuid = Guid.NewGuid();
|
|
|
|
errorService.InsertOvenError(logGuid.ToString(), errorMessage.ENAlarmMessage, errorMessage.CNAlarmMessage, errorMessage.ErrorCode);
|
|
|
|
errorService.InsertOvenError(logGuid.ToString(), errorMessage.ENAlarmMessage, errorMessage.CNAlarmMessage, errorMessage.ErrorCode);
|
|
|
|
connect3.PublishEvent(new CFXEnvelope(faultOccurredEvent.Handle(errorMessage.ErrorCode, LevelTrans(errorMessage.AlarmDegarde), logGuid, errorMessage.ENAlarmMessage, transID)));
|
|
|
|
connect3.PublishEvent(new CFXEnvelope(faultOccurredEvent.Handle(errorMessage.ErrorCode, LevelTrans(errorMessage.AlarmDegarde), logGuid, errorMessage.ENAlarmMessage, transID)));
|
|
|
|
_log.Info($"报警发生 内容:{errorMessage.CNAlarmMessage}");
|
|
|
|
_log.Info($"烤箱报警发生 内容:{errorMessage.CNAlarmMessage} 级别:{errorMessage.AlarmDegarde.GetDescription()}");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
else
|
|
|
|
else
|
|
|
|
@ -233,8 +244,9 @@ namespace Sln.Iot.Business
|
|
|
|
{
|
|
|
|
{
|
|
|
|
//删除错误
|
|
|
|
//删除错误
|
|
|
|
string delGuid = errorService.DeleteOvenError(errorMessage.ENAlarmMessage);
|
|
|
|
string delGuid = errorService.DeleteOvenError(errorMessage.ENAlarmMessage);
|
|
|
|
connect3.PublishEvent(new CFXEnvelope(faultClearedEvent.Handle(Guid.Parse(delGuid))));
|
|
|
|
Guid.TryParse(delGuid, out Guid guidRes);
|
|
|
|
_log.Info($"报警消除 内容:{errorMessage.CNAlarmMessage}");
|
|
|
|
connect3.PublishEvent(new CFXEnvelope(faultClearedEvent.Handle(guidRes)));
|
|
|
|
|
|
|
|
_log.Info($"烤箱报警消除 内容:{errorMessage.CNAlarmMessage} 级别:{errorMessage.AlarmDegarde.GetDescription()}");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|