feat - 报警上报完善,配方更变上报逻辑添加

master
SoulStar 4 days ago
parent 40d952657f
commit 8925201faf

@ -18,6 +18,7 @@ namespace Sln.Iot.Business
private RFID05Business _rfid05; private RFID05Business _rfid05;
private RFID06Business _rfid06; private RFID06Business _rfid06;
private ErrorAnalyseBusiness _errorAnalyse; private ErrorAnalyseBusiness _errorAnalyse;
private RecipeBusiness _recipeBusiness;
public BusinessStart() public BusinessStart()
{ {
_rfid01 = new RFID01Business(); _rfid01 = new RFID01Business();
@ -27,6 +28,7 @@ namespace Sln.Iot.Business
_rfid05 = new RFID05Business(); _rfid05 = new RFID05Business();
_rfid06 = new RFID06Business(); _rfid06 = new RFID06Business();
_errorAnalyse = new ErrorAnalyseBusiness(); _errorAnalyse = new ErrorAnalyseBusiness();
_recipeBusiness = new RecipeBusiness();
} }
} }
} }

@ -15,6 +15,7 @@ using Sln.Iot.CFX.Event;
using CFX; using CFX;
using CFX.Structures; using CFX.Structures;
using Sln.Iot.Serilog; using Sln.Iot.Serilog;
using Amqp;
namespace Sln.Iot.Business namespace Sln.Iot.Business
{ {
@ -109,7 +110,7 @@ namespace Sln.Iot.Business
{ {
Guid transID = Guid.Parse(trayBindingService.TidGet()); Guid transID = Guid.Parse(trayBindingService.TidGet());
Guid logGuid = Guid.NewGuid(); Guid logGuid = Guid.NewGuid();
errorService.InsertVacuum1Error(logGuid.ToString(), errorMessage.ENAlarmMessage); 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($"报警发生 内容:{errorMessage.CNAlarmMessage}");
} }
@ -146,7 +147,7 @@ namespace Sln.Iot.Business
{ {
Guid transID = Guid.Parse(trayBindingService.TidGet()); Guid transID = Guid.Parse(trayBindingService.TidGet());
Guid logGuid = Guid.NewGuid(); Guid logGuid = Guid.NewGuid();
errorService.InsertVacuum2Error(logGuid.ToString(), errorMessage.ENAlarmMessage); 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($"报警发生 内容:{errorMessage.CNAlarmMessage}");
} }
@ -183,7 +184,7 @@ namespace Sln.Iot.Business
{ {
Guid transID = Guid.Parse(trayBindingService.TidGet()); Guid transID = Guid.Parse(trayBindingService.TidGet());
Guid logGuid = Guid.NewGuid(); Guid logGuid = Guid.NewGuid();
errorService.InsertLiftError(logGuid.ToString(), errorMessage.ENAlarmMessage); 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}");
} }
@ -220,7 +221,7 @@ namespace Sln.Iot.Business
{ {
Guid transID = Guid.Parse(trayBindingService.TidGet()); Guid transID = Guid.Parse(trayBindingService.TidGet());
Guid logGuid = Guid.NewGuid(); Guid logGuid = Guid.NewGuid();
errorService.InsertOvenError(logGuid.ToString(), errorMessage.ENAlarmMessage); 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}");
} }

@ -0,0 +1,102 @@
using CFX;
using CFX.Structures.UVCuring;
using Sln.Iot.CFX.CFXConnect;
using Sln.Iot.CFX.Event;
using Sln.Iot.PLC;
using Sln.Iot.Serilog;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Sln.Iot.Business
{
/// <summary>
/// 配方支持类
/// </summary>
public class RecipeBusiness
{
private Timer _timer;
private readonly PLCConnect _plc = PLCConnect.Instance;
private readonly SerilogHelper _log = SerilogHelper.Instance;
private readonly RecipeActivatedEvent recipeActivatedEvent = new RecipeActivatedEvent();
private readonly RecipeModifiedEvent recipeModifiedEvent = new RecipeModifiedEvent();
private readonly CFXConnect1 connect1 = CFXConnect1.Instance;
public RecipeBusiness()
{
_timer = new Timer(TimerCallback, null, 0, 1500);
}
/// <summary>
/// 检测配方变化
/// </summary>
/// <param name="state"></param>
public void TimerCallback(object? state)
{
string recipeName = "recipeName";
var changeResult1 = _plc.ReadBool(_plc.DeltaInstance1, "M281");
var changeResult2 = _plc.ReadBool(_plc.DeltaInstance2, "M281");
var activeResult1 = _plc.ReadBool(_plc.DeltaInstance1, "M280");
var activeResult2 = _plc.ReadBool(_plc.DeltaInstance2, "M280");
if(changeResult1.Content || changeResult2.Content || activeResult1.Content || activeResult2.Content)
{
//获取现在激活的配方
var res = _plc.ReadBytes(_plc.DeltaInstance1, "D600", 10);
if (res.IsSuccess)
{
recipeName = Encoding.ASCII.GetString(res.Content);
}
}
if (changeResult1.IsSuccess)
{
if (changeResult1.Content)
{
//发布消息
connect1.PublishEvent(new CFXEnvelope(recipeModifiedEvent.Handle(recipeName)));
_log.Info($"真空箱1配方修改{recipeName}");
}
}
if (changeResult2.IsSuccess)
{
if (changeResult2.Content)
{
//发布消息
connect1.PublishEvent(new CFXEnvelope(recipeModifiedEvent.Handle(recipeName)));
_log.Info($"真空箱2配方修改{recipeName}");
}
}
if (activeResult1.IsSuccess)
{
if (activeResult1.Content)
{
//发布消息
connect1.PublishEvent(new CFXEnvelope(recipeActivatedEvent.Handle(recipeName, "VacuumInjection1", 1)));
_log.Info($"真空箱1配方激活{recipeName}");
}
}
if (activeResult2.IsSuccess)
{
if (activeResult2.Content)
{
//发布消息
connect1.PublishEvent(new CFXEnvelope(recipeActivatedEvent.Handle(recipeName, "VacuumInjection2", 2)));
_log.Info($"真空箱2配方激活{recipeName}");
}
}
}
}
}

@ -37,5 +37,10 @@ namespace Sln.Iot.CFX.CFXBusiness
} }
return units; return units;
} }
public List<Fault> FaultsTrans()
{
}
} }
} }

@ -27,6 +27,7 @@ using CFX;
using CFX.ResourcePerformance; using CFX.ResourcePerformance;
using CFX.Structures; using CFX.Structures;
using Sln.Iot.CFX.RequestReceived; using Sln.Iot.CFX.RequestReceived;
using Sln.Iot.Repository.service;
using Sln.Iot.Serilog; using Sln.Iot.Serilog;
namespace Sln.Iot.CFX.CFXRequestes; namespace Sln.Iot.CFX.CFXRequestes;
@ -37,6 +38,7 @@ namespace Sln.Iot.CFX.CFXRequestes;
/// </summary> /// </summary>
public class GetActiveFaultsRequestReceived1 : BaseGetActiveFaultsRequestReceived public class GetActiveFaultsRequestReceived1 : BaseGetActiveFaultsRequestReceived
{ {
private readonly ErrorService errorService = ErrorService.Instance;
/// <summary> /// <summary>
/// 子类重写处理 /// 子类重写处理
@ -46,6 +48,27 @@ public class GetActiveFaultsRequestReceived1 : BaseGetActiveFaultsRequestReceive
public override CFXMessage SubHandle(GetActiveFaultsRequest request) public override CFXMessage SubHandle(GetActiveFaultsRequest request)
{ {
// 获取现在所有的错误 // 获取现在所有的错误
var errorList1 = errorService.GetV1List().ToList();
var errorList2 = errorService.GetV2List().ToList();
List<Fault> faults = new List<Fault>();
foreach (var fault in errorList1)
{
faults.Add(new Fault()
{
Description = fault.ErrorName,
FaultCode = fault.ErrorCode,
});
}
foreach (var fault in errorList2)
{
faults.Add(new Fault()
{
Description = fault.ErrorName,
FaultCode = fault.ErrorCode,
});
}
CFXMessage response = new GetActiveFaultsResponse() CFXMessage response = new GetActiveFaultsResponse()
{ {
@ -55,6 +78,7 @@ public class GetActiveFaultsRequestReceived1 : BaseGetActiveFaultsRequestReceive
ResultCode = 0, ResultCode = 0,
Message = "", Message = "",
}, },
//ActiveFaults = faults
ActiveFaults = new List<Fault>() ActiveFaults = new List<Fault>()
{ {
new Fault() new Fault()

@ -27,6 +27,7 @@ using CFX;
using CFX.ResourcePerformance; using CFX.ResourcePerformance;
using CFX.Structures; using CFX.Structures;
using Sln.Iot.CFX.RequestReceived; using Sln.Iot.CFX.RequestReceived;
using Sln.Iot.Repository.service;
using Sln.Iot.Serilog; using Sln.Iot.Serilog;
namespace Sln.Iot.CFX.CFXRequestes; namespace Sln.Iot.CFX.CFXRequestes;
@ -37,6 +38,7 @@ namespace Sln.Iot.CFX.CFXRequestes;
/// </summary> /// </summary>
public class GetActiveFaultsRequestReceived2 : BaseGetActiveFaultsRequestReceived public class GetActiveFaultsRequestReceived2 : BaseGetActiveFaultsRequestReceived
{ {
private readonly ErrorService errorService = ErrorService.Instance;
/// <summary> /// <summary>
/// 子类重写处理 /// 子类重写处理
@ -46,6 +48,18 @@ public class GetActiveFaultsRequestReceived2 : BaseGetActiveFaultsRequestReceive
public override CFXMessage SubHandle(GetActiveFaultsRequest request) public override CFXMessage SubHandle(GetActiveFaultsRequest request)
{ {
// 获取现在所有的错误 // 获取现在所有的错误
var errorList = errorService.GetLiftList().ToList();
List<Fault> faults = new List<Fault>();
foreach (var fault in errorList)
{
faults.Add(new Fault()
{
Description = fault.ErrorName,
FaultCode = fault.ErrorCode,
});
}
CFXMessage response = new GetActiveFaultsResponse() CFXMessage response = new GetActiveFaultsResponse()
{ {

@ -27,6 +27,7 @@ using CFX;
using CFX.ResourcePerformance; using CFX.ResourcePerformance;
using CFX.Structures; using CFX.Structures;
using Sln.Iot.CFX.RequestReceived; using Sln.Iot.CFX.RequestReceived;
using Sln.Iot.Repository.service;
using Sln.Iot.Serilog; using Sln.Iot.Serilog;
namespace Sln.Iot.CFX.CFXRequestes; namespace Sln.Iot.CFX.CFXRequestes;
@ -37,7 +38,7 @@ namespace Sln.Iot.CFX.CFXRequestes;
/// </summary> /// </summary>
public class GetActiveFaultsRequestReceived3 : BaseGetActiveFaultsRequestReceived public class GetActiveFaultsRequestReceived3 : BaseGetActiveFaultsRequestReceived
{ {
private readonly ErrorService errorService = ErrorService.Instance;
/// <summary> /// <summary>
/// 子类重写处理 /// 子类重写处理
@ -47,6 +48,18 @@ public class GetActiveFaultsRequestReceived3 : BaseGetActiveFaultsRequestReceive
public override CFXMessage SubHandle(GetActiveFaultsRequest request) public override CFXMessage SubHandle(GetActiveFaultsRequest request)
{ {
// 获取现在所有的错误 // 获取现在所有的错误
var errorList = errorService.GetOvenList().ToList();
List<Fault> faults = new List<Fault>();
foreach (var fault in errorList)
{
faults.Add(new Fault()
{
Description = fault.ErrorName,
FaultCode = fault.ErrorCode,
});
}
CFXMessage response = new GetActiveFaultsResponse() CFXMessage response = new GetActiveFaultsResponse()
{ {

@ -29,6 +29,8 @@ using CFX.Structures;
using Sln.Iot.CFX.RequestReceived; using Sln.Iot.CFX.RequestReceived;
using Sln.Iot.PLC; using Sln.Iot.PLC;
using Sln.Iot.Serilog; using Sln.Iot.Serilog;
using static System.Runtime.CompilerServices.RuntimeHelpers;
using System.Text;
namespace Sln.Iot.CFX.CFXRequestes; namespace Sln.Iot.CFX.CFXRequestes;
@ -48,12 +50,26 @@ public class GetActiveRecipeRequestReceived1 : BaseGetActiveRecipeRequestReceive
/// <returns></returns> /// <returns></returns>
public override CFXMessage SubHandle(GetActiveRecipeRequest request) public override CFXMessage SubHandle(GetActiveRecipeRequest request)
{ {
//获取现在激活的配方
//_plc. string restr1 = string.Empty;
string restr2 = string.Empty;
////获取现在激活的配方
//var res1 = _plc.ReadBytes(_plc.DeltaInstance1, "D600", 10);
//var res2 = _plc.ReadBytes(_plc.DeltaInstance2, "D600", 10);
//if (res1.IsSuccess)
//{
// restr1 = Encoding.ASCII.GetString(res1.Content);
//}
//if (res2.IsSuccess)
//{
// restr2 = Encoding.ASCII.GetString(res2.Content);
//}
CFXMessage response = new GetActiveRecipeResponse() CFXMessage response = new GetActiveRecipeResponse()
{ {
ActiveRecipeName = "配方A", ActiveRecipeName = $"Recipe1:[{restr1}];Recipe2:[{restr2}]",
ActiveRecipeRevision = "1.0", ActiveRecipeRevision = "1.0",
Result = new RequestResult() Result = new RequestResult()
{ {

@ -46,7 +46,7 @@ public class GetActiveRecipeRequestReceived2 : BaseGetActiveRecipeRequestReceive
{ {
CFXMessage response = new GetActiveRecipeResponse() CFXMessage response = new GetActiveRecipeResponse()
{ {
ActiveRecipeName = "配方A", ActiveRecipeName = "No Recipe Device",
ActiveRecipeRevision = "1.0", ActiveRecipeRevision = "1.0",
Result = new RequestResult() Result = new RequestResult()
{ {

@ -46,7 +46,7 @@ public class GetActiveRecipeRequestReceived3 : BaseGetActiveRecipeRequestReceive
{ {
CFXMessage response = new GetActiveRecipeResponse() CFXMessage response = new GetActiveRecipeResponse()
{ {
ActiveRecipeName = "配方A", ActiveRecipeName = "No Recipe Device",
ActiveRecipeRevision = "1.0", ActiveRecipeRevision = "1.0",
Result = new RequestResult() Result = new RequestResult()
{ {

@ -44,7 +44,7 @@ public class ModifyStationParametersRequestReceived2 : BaseModifyStationParamete
/// <returns></returns> /// <returns></returns>
public override CFXMessage SubHandle(ModifyStationParametersRequest request) public override CFXMessage SubHandle(ModifyStationParametersRequest request)
{ {
//配方修改 //参数修改
//同时主动上报StationParameterModified //同时主动上报StationParameterModified

@ -59,8 +59,8 @@ namespace Sln.Iot.CFX
_cfxHelper.PublishEvent(new CFXEnvelope(faultClearedEvent.Handle(testGuid))); _cfxHelper.PublishEvent(new CFXEnvelope(faultClearedEvent.Handle(testGuid)));
_cfxHelper.PublishEvent(new CFXEnvelope(stationStateChangedEvent.Handle(ResourceState.PRD))); _cfxHelper.PublishEvent(new CFXEnvelope(stationStateChangedEvent.Handle(ResourceState.PRD)));
_cfxHelper.PublishEvent(new CFXEnvelope(logEntryRecordedEvent.Handle())); _cfxHelper.PublishEvent(new CFXEnvelope(logEntryRecordedEvent.Handle()));
_cfxHelper.PublishEvent(new CFXEnvelope(recipeActivatedEvent.Handle())); _cfxHelper.PublishEvent(new CFXEnvelope(recipeActivatedEvent.Handle("RecipeA", "VacuumInjection1", 1)));
_cfxHelper.PublishEvent(new CFXEnvelope(recipeModifiedEvent.Handle())); _cfxHelper.PublishEvent(new CFXEnvelope(recipeModifiedEvent.Handle("RecipeA")));
_cfxHelper.PublishEvent(new CFXEnvelope(stationOfflineEvent.Handle())); _cfxHelper.PublishEvent(new CFXEnvelope(stationOfflineEvent.Handle()));
_cfxHelper.PublishEvent(new CFXEnvelope(stationOnlineEvent.Handle())); _cfxHelper.PublishEvent(new CFXEnvelope(stationOnlineEvent.Handle()));
@ -114,8 +114,8 @@ namespace Sln.Iot.CFX
_cfxHelper2.PublishEvent(new CFXEnvelope(faultClearedEvent.Handle(testGuid))); _cfxHelper2.PublishEvent(new CFXEnvelope(faultClearedEvent.Handle(testGuid)));
_cfxHelper2.PublishEvent(new CFXEnvelope(stationStateChangedEvent.Handle(ResourceState.PRD))); _cfxHelper2.PublishEvent(new CFXEnvelope(stationStateChangedEvent.Handle(ResourceState.PRD)));
_cfxHelper2.PublishEvent(new CFXEnvelope(logEntryRecordedEvent.Handle())); _cfxHelper2.PublishEvent(new CFXEnvelope(logEntryRecordedEvent.Handle()));
_cfxHelper2.PublishEvent(new CFXEnvelope(recipeActivatedEvent.Handle())); _cfxHelper2.PublishEvent(new CFXEnvelope(recipeActivatedEvent.Handle("RecipeA", "ConveyorIn", 1)));
_cfxHelper2.PublishEvent(new CFXEnvelope(recipeModifiedEvent.Handle())); _cfxHelper2.PublishEvent(new CFXEnvelope(recipeModifiedEvent.Handle("RecipeA")));
_cfxHelper2.PublishEvent(new CFXEnvelope(stationOfflineEvent.Handle())); _cfxHelper2.PublishEvent(new CFXEnvelope(stationOfflineEvent.Handle()));
_cfxHelper2.PublishEvent(new CFXEnvelope(stationOnlineEvent.Handle())); _cfxHelper2.PublishEvent(new CFXEnvelope(stationOnlineEvent.Handle()));
@ -169,8 +169,8 @@ namespace Sln.Iot.CFX
_cfxHelper3.PublishEvent(new CFXEnvelope(faultClearedEvent.Handle(testGuid))); _cfxHelper3.PublishEvent(new CFXEnvelope(faultClearedEvent.Handle(testGuid)));
_cfxHelper3.PublishEvent(new CFXEnvelope(stationStateChangedEvent.Handle(ResourceState.PRD))); _cfxHelper3.PublishEvent(new CFXEnvelope(stationStateChangedEvent.Handle(ResourceState.PRD)));
_cfxHelper3.PublishEvent(new CFXEnvelope(logEntryRecordedEvent.Handle())); _cfxHelper3.PublishEvent(new CFXEnvelope(logEntryRecordedEvent.Handle()));
_cfxHelper3.PublishEvent(new CFXEnvelope(recipeActivatedEvent.Handle())); _cfxHelper3.PublishEvent(new CFXEnvelope(recipeActivatedEvent.Handle("RecipeA", "Oven", 1)));
_cfxHelper3.PublishEvent(new CFXEnvelope(recipeModifiedEvent.Handle())); _cfxHelper3.PublishEvent(new CFXEnvelope(recipeModifiedEvent.Handle("RecipeA")));
_cfxHelper3.PublishEvent(new CFXEnvelope(stationOfflineEvent.Handle())); _cfxHelper3.PublishEvent(new CFXEnvelope(stationOfflineEvent.Handle()));
_cfxHelper3.PublishEvent(new CFXEnvelope(stationOnlineEvent.Handle())); _cfxHelper3.PublishEvent(new CFXEnvelope(stationOnlineEvent.Handle()));

@ -14,39 +14,25 @@ namespace Sln.Iot.CFX.Event
/// 数据封装处理 /// 数据封装处理
/// </summary> /// </summary>
/// <returns></returns> /// <returns></returns>
public CFXMessage Handle() public CFXMessage Handle(string recipeName, string stageName, int stageSequence)
{ {
CFXMessage eve = null; CFXMessage eve = null;
try try
{ {
eve = new RecipeActivated() eve = new RecipeActivated()
{ {
RecipeName = "配方A", RecipeName = recipeName,
Revision = "1.0",
Lane = 1, Lane = 1,
ExpectedCycleTime = 1200000,
ExpectedUnitsPerWorkTransaction = 6,
ExpectedWorkTime = 1200000,
NumberOfComponentsPerUnit = 6,
WorkOrderIdentifier = new WorkOrderIdentifier()
{
WorkOrderId = "WO-1000-1000",
Batch = "WO-1000-1000-B1",
},
TargetQuantity = 500,
RelevantSurface = Surface.Unspecified,
RecipeStagesInformation = new List<RecipeStageInformation>() RecipeStagesInformation = new List<RecipeStageInformation>()
{ {
new RecipeStageInformation() new RecipeStageInformation()
{ {
Stage = new Stage() Stage = new Stage()
{ {
StageSequence = 1, StageSequence = stageSequence,
StageName = "工段1", StageName = stageName,
StageType = StageType.Work StageType = StageType.Work
}, },
ExpectedCycleTime = 5000,
NumberOfComponentsPerUnit = 6,
}, },
} }
}; };

@ -14,25 +14,20 @@ namespace Sln.Iot.CFX.Event
/// 数据封装处理 /// 数据封装处理
/// </summary> /// </summary>
/// <returns></returns> /// <returns></returns>
public CFXMessage Handle() public CFXMessage Handle(string recipeName)
{ {
CFXMessage eve = null; CFXMessage eve = null;
try try
{ {
eve = new RecipeModified() eve = new RecipeModified()
{ {
RecipeName = "配方A", RecipeName = recipeName,
Revision = "1.0",
ModifiedBy = new Operator() ModifiedBy = new Operator()
{ {
ActorType = ActorType.Human, ActorType = ActorType.Human,
FirstName = "王",
LastName = "晟睿",
LoginName = "admin", LoginName = "admin",
OperatorIdentifier = "OP-1000"
}, },
Reason = RecipeModificationReason.UpdatedGeometry, Reason = RecipeModificationReason.UpdatedGeometry,
Notes = "修改了配方的几何信息",
}; };
} }
catch (Exception e) catch (Exception e)

@ -12,6 +12,7 @@
<ItemGroup> <ItemGroup>
<ProjectReference Include="..\Sln.Iot.PLC\Sln.Iot.PLC.csproj" /> <ProjectReference Include="..\Sln.Iot.PLC\Sln.Iot.PLC.csproj" />
<ProjectReference Include="..\Sln.Iot.Repository\Sln.Iot.Repository.csproj" />
<ProjectReference Include="..\Sln.Iot.Serilog\Sln.Iot.Serilog.csproj" /> <ProjectReference Include="..\Sln.Iot.Serilog\Sln.Iot.Serilog.csproj" />
</ItemGroup> </ItemGroup>
@ -19,6 +20,9 @@
<Reference Include="CFX.Structures.GenericEquipment"> <Reference Include="CFX.Structures.GenericEquipment">
<HintPath>..\DLL\CFX.Structures.GenericEquipment.dll</HintPath> <HintPath>..\DLL\CFX.Structures.GenericEquipment.dll</HintPath>
</Reference> </Reference>
<Reference Include="HslCommunication">
<HintPath>..\DLL\HslCommunication.dll</HintPath>
</Reference>
</ItemGroup> </ItemGroup>
</Project> </Project>

@ -22,5 +22,15 @@ namespace Sln.Iot.Repository.dao
/// 错误名称 /// 错误名称
/// </summary> /// </summary>
public string ErrorName { get; set; } public string ErrorName { get; set; }
/// <summary>
/// 错误名称(中文)
/// </summary>
public string CNErrorName { get; set; }
/// <summary>
/// 错误代码
/// </summary>
public string ErrorCode { get; set; }
} }
} }

@ -22,5 +22,15 @@ namespace Sln.Iot.Repository.dao
/// 错误名称 /// 错误名称
/// </summary> /// </summary>
public string ErrorName { get; set; } public string ErrorName { get; set; }
/// <summary>
/// 错误名称(中文)
/// </summary>
public string CNErrorName { get; set; }
/// <summary>
/// 错误代码
/// </summary>
public string ErrorCode { get; set; }
} }
} }

@ -22,5 +22,15 @@ namespace Sln.Iot.Repository.dao
/// 错误名称 /// 错误名称
/// </summary> /// </summary>
public string ErrorName { get; set; } public string ErrorName { get; set; }
/// <summary>
/// 错误名称(中文)
/// </summary>
public string CNErrorName { get; set; }
/// <summary>
/// 错误代码
/// </summary>
public string ErrorCode { get; set; }
} }
} }

@ -22,5 +22,15 @@ namespace Sln.Iot.Repository.dao
/// 错误名称 /// 错误名称
/// </summary> /// </summary>
public string ErrorName { get; set; } public string ErrorName { get; set; }
/// <summary>
/// 错误名称(中文)
/// </summary>
public string CNErrorName { get; set; }
/// <summary>
/// 错误代码
/// </summary>
public string ErrorCode { get; set; }
} }
} }

@ -34,7 +34,7 @@ namespace Sln.Iot.Repository.service
/// 插入报错真空1 /// 插入报错真空1
/// </summary> /// </summary>
/// <returns></returns> /// <returns></returns>
public bool InsertVacuum1Error(string Guid, string Message) public bool InsertVacuum1Error(string Guid, string Message, string CNMessage, string code)
{ {
try try
{ {
@ -42,6 +42,8 @@ namespace Sln.Iot.Repository.service
{ {
ErrorGuid = Guid, ErrorGuid = Guid,
ErrorName = Message, ErrorName = Message,
CNErrorName = CNMessage,
ErrorCode = code
}); });
return res == 0 ? false : true; return res == 0 ? false : true;
} }
@ -101,7 +103,7 @@ namespace Sln.Iot.Repository.service
/// 插入报错真空2 /// 插入报错真空2
/// </summary> /// </summary>
/// <returns></returns> /// <returns></returns>
public bool InsertVacuum2Error(string Guid, string Message) public bool InsertVacuum2Error(string Guid, string Message, string CNMessage, string code)
{ {
try try
{ {
@ -109,6 +111,8 @@ namespace Sln.Iot.Repository.service
{ {
ErrorGuid = Guid, ErrorGuid = Guid,
ErrorName = Message, ErrorName = Message,
CNErrorName = CNMessage,
ErrorCode = code
}); });
return res == 0 ? false : true; return res == 0 ? false : true;
} }
@ -168,7 +172,7 @@ namespace Sln.Iot.Repository.service
/// 插入报错提升机 /// 插入报错提升机
/// </summary> /// </summary>
/// <returns></returns> /// <returns></returns>
public bool InsertLiftError(string Guid, string Message) public bool InsertLiftError(string Guid, string Message, string CNMessage, string code)
{ {
try try
{ {
@ -176,6 +180,8 @@ namespace Sln.Iot.Repository.service
{ {
ErrorGuid = Guid, ErrorGuid = Guid,
ErrorName = Message, ErrorName = Message,
CNErrorName = CNMessage,
ErrorCode = code
}); });
return res == 0 ? false : true; return res == 0 ? false : true;
} }
@ -235,7 +241,7 @@ namespace Sln.Iot.Repository.service
/// 插入报错烤箱 /// 插入报错烤箱
/// </summary> /// </summary>
/// <returns></returns> /// <returns></returns>
public bool InsertOvenError(string Guid, string Message) public bool InsertOvenError(string Guid, string Message, string CNMessage, string code)
{ {
try try
{ {
@ -243,6 +249,8 @@ namespace Sln.Iot.Repository.service
{ {
ErrorGuid = Guid, ErrorGuid = Guid,
ErrorName = Message, ErrorName = Message,
CNErrorName = CNMessage,
ErrorCode = code
}); });
return res == 0 ? false : true; return res == 0 ? false : true;
} }

Loading…
Cancel
Save