diff --git a/Sln.Iot.Business/MesReportBusiness.cs b/Sln.Iot.Business/MesReportBusiness.cs index 8cc9a39..e05cf76 100644 --- a/Sln.Iot.Business/MesReportBusiness.cs +++ b/Sln.Iot.Business/MesReportBusiness.cs @@ -117,7 +117,7 @@ namespace Sln.Iot.Business private string tranter(MesReportEntity entity) { - entity.CycleTime = _appConfig.CycleTime; + //entity.CycleTime = _appConfig.CycleTime; entity.RunningTime = (int)(DateTime.Now - GlobalVar.OpenTime).TotalSeconds; #region 傳送字的資料 @@ -126,8 +126,8 @@ namespace Sln.Iot.Business // strSendData += "\"factory\":\"" + "DG5" + "\","; strSendData += "\"interfaceID\":\"" + entity.InterfaceID + "\","; // strSendData += "\"EquipType\":" + EquipType + ","; - strSendData += "\"status\":" + entity.Status + ","; - strSendData += "\"statusCode\":\"" + entity.StatusCode + "\","; + strSendData += "\"status\":" + entity.StatusCode + ","; + strSendData += "\"statusCode\":\"" + entity.Status + "\","; strSendData += "\"passQty\":" + entity.PassQuantity + ","; strSendData += "\"failQty\":" + entity.FailQuantity + ","; strSendData += "\"errorCnt\":" + entity.ErrorCount + ","; @@ -181,27 +181,30 @@ namespace Sln.Iot.Business { string status = "0"; string statusCode = "0"; - if (deviceNo == 1) + if (deviceNo == 1) //真空箱 { var r1 = _plc.ReadInt16(_plc.DeltaInstance1, "D15176"); var r2 = _plc.ReadInt16(_plc.DeltaInstance2, "D15176"); if (r1.IsSuccess && r2.IsSuccess) { - if (r1.Content == 0 && r2.Content == 0) - { - GlobalVar.Connect1Entity.StatusCode = "0"; - GlobalVar.Connect1Entity.Status = StatusJudge(0).ToString(); - } - else if (r1.Content != 0) + + if (r1.Content == 1) { GlobalVar.Connect1Entity.StatusCode = r1.Content.ToString(); - GlobalVar.Connect1Entity.Status = StatusJudge(r1.Content).ToString(); + GlobalVar.Connect1Entity.Status = StatusJudge(r1.Content, 2).ToString(); } - else if (r2.Content != 0) + else if (r2.Content == 1) { GlobalVar.Connect1Entity.StatusCode = r2.Content.ToString(); - GlobalVar.Connect1Entity.Status = StatusJudge(r2.Content).ToString(); + GlobalVar.Connect1Entity.Status = StatusJudge(r2.Content, 3).ToString(); } + else + { + GlobalVar.Connect1Entity.StatusCode = "0"; + GlobalVar.Connect1Entity.Status = StatusJudge(0, 1).ToString(); + } + + if (GlobalVar.Connect1Entity.Status == "1") { if (GlobalVar.Connect1Entity.IsError == false) @@ -228,13 +231,13 @@ namespace Sln.Iot.Business _log.Error($"读取PLC状态失败: 真空箱1{r1.IsSuccess} - {r1.Message}; 真空箱2{r2.IsSuccess} - {r2.Message}"); } } - else if (deviceNo == 2) + else if (deviceNo == 2) //上料提升机 { var r1 = _plc.ReadInt16(_plc.DeltaInstance3, "D15176"); if (r1.IsSuccess) { GlobalVar.Connect2Entity.StatusCode = r1.Content.ToString(); - GlobalVar.Connect2Entity.Status = StatusJudge(r1.Content).ToString(); + GlobalVar.Connect2Entity.Status = StatusJudge(r1.Content, 4).ToString(); if (GlobalVar.Connect2Entity.Status == "1") { @@ -262,13 +265,13 @@ namespace Sln.Iot.Business _log.Error($"读取PLC状态失败: 上料提升机{r1.IsSuccess} - {r1.Message}"); } } - else if (deviceNo == 3) + else if (deviceNo == 3) //烤箱 { var r1 = _plc.ReadInt16(_plc.DeltaInstance0, "D15176"); if (r1.IsSuccess) { GlobalVar.Connect3Entity.StatusCode = r1.Content.ToString(); - GlobalVar.Connect3Entity.Status = StatusJudge(r1.Content).ToString(); + GlobalVar.Connect3Entity.Status = StatusJudge(r1.Content, 1).ToString(); if (GlobalVar.Connect3Entity.Status == "1") { @@ -296,13 +299,13 @@ namespace Sln.Iot.Business _log.Error($"读取PLC状态失败: 烤箱{r1.IsSuccess} - {r1.Message}"); } } - else if (deviceNo == 4) + else if (deviceNo == 4) //下料提升机 { var r1 = _plc.ReadInt16(_plc.DeltaInstance4, "D15176"); if (r1.IsSuccess) { GlobalVar.Connect4Entity.StatusCode = r1.Content.ToString(); - GlobalVar.Connect4Entity.Status = StatusJudge(r1.Content).ToString(); + GlobalVar.Connect4Entity.Status = StatusJudge(r1.Content, 4).ToString(); if (GlobalVar.Connect4Entity.Status == "1") { @@ -344,23 +347,44 @@ namespace Sln.Iot.Business /// /// /// - private int StatusJudge(int sc) + private int StatusJudge(int sc, int num) { - if (sc == -1 || sc == 2) + if (sc == 1) + { + //return 1; + try + { + switch (num) + { + case 1: //烤箱 + //return 1; + return _plc.ReadInt16(_plc.DeltaInstance0, "D262").Content; + case 2: //真空箱1 + //return 1; + return _plc.ReadInt16(_plc.DeltaInstance1, "D262").Content; + case 3: //真空箱2 + //return 1; + return _plc.ReadInt16(_plc.DeltaInstance2, "D262").Content; + case 4: //上聊提升机 + //return 1; + return _plc.ReadInt16(_plc.DeltaInstance3, "D262").Content; + default: + return 1; + } + } + catch + { + return 1; + } + + } + else { return 0; } - if (sc == 1 || sc == 10 || sc == 11) - { - return 1; - } - if (sc == 12) - { - return 10; - } - return 4; } + /// /// stationParameters参数设置 /// diff --git a/Sln.Iot.Business/RFID01Business.cs b/Sln.Iot.Business/RFID01Business.cs index eb142ec..849b196 100644 --- a/Sln.Iot.Business/RFID01Business.cs +++ b/Sln.Iot.Business/RFID01Business.cs @@ -5,6 +5,7 @@ using HslCommunication; using Sln.Iot.CFX.CFXConnect; using Sln.Iot.CFX.Event; using Sln.Iot.Common; +using Sln.Iot.Config; using Sln.Iot.PLC; using Sln.Iot.Repository; using Sln.Iot.Repository.dao; @@ -126,6 +127,8 @@ namespace Sln.Iot.Business _log.Error("上料提升机PLC写入完成信号异常"); } + GlobalVar.Connect2Entity.CycleTime = CommonUtil.AddRandom(AppConfigSetting._config.CycleTime2, 5); + //CFX Task.Run(() => { diff --git a/Sln.Iot.Business/RFID03Business.cs b/Sln.Iot.Business/RFID03Business.cs index 691cc23..b017422 100644 --- a/Sln.Iot.Business/RFID03Business.cs +++ b/Sln.Iot.Business/RFID03Business.cs @@ -2,6 +2,8 @@ using HslCommunication; using Sln.Iot.CFX.CFXConnect; using Sln.Iot.CFX.Event; +using Sln.Iot.Common; +using Sln.Iot.Config; using Sln.Iot.PLC; using Sln.Iot.Repository.service; using Sln.Iot.Serilog; @@ -84,6 +86,8 @@ namespace Sln.Iot.Business _log.Error("胶机1真空箱外写入完成信号异常"); } + GlobalVar.Connect1Entity.CycleTime = CommonUtil.AddRandom(AppConfigSetting._config.CycleTime1, 300); + //CFX Task.Run(() => { diff --git a/Sln.Iot.Business/RFID06Business.cs b/Sln.Iot.Business/RFID06Business.cs index 621fa71..cced3e0 100644 --- a/Sln.Iot.Business/RFID06Business.cs +++ b/Sln.Iot.Business/RFID06Business.cs @@ -6,6 +6,7 @@ using Sln.Iot.CFX.CFXBusiness; using Sln.Iot.CFX.CFXConnect; using Sln.Iot.CFX.Event; using Sln.Iot.Common; +using Sln.Iot.Config; using Sln.Iot.PLC; using Sln.Iot.Repository.service; using Sln.Iot.Serilog; @@ -109,6 +110,9 @@ namespace Sln.Iot.Business _log.Error("下料提升机PLC写入完成信号异常"); } + GlobalVar.Connect3Entity.CycleTime = CommonUtil.AddRandom(AppConfigSetting._config.CycleTime3, 1000); + GlobalVar.Connect4Entity.CycleTime = CommonUtil.AddRandom(AppConfigSetting._config.CycleTime4, 5); + //CFX Task.Run(() => { diff --git a/Sln.Iot.Common/CommonUtil.cs b/Sln.Iot.Common/CommonUtil.cs new file mode 100644 index 0000000..c5ef93e --- /dev/null +++ b/Sln.Iot.Common/CommonUtil.cs @@ -0,0 +1,22 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Sln.Iot.Common +{ + public class CommonUtil + { + public static int AddRandom(int a, int b) + { + if (b <= 0) + { + return a; + } + Random random = new Random(); + int n = random.Next(-b + 1, b); + return a + n; + } + } +} diff --git a/Sln.Iot.Config/AppConfig.cs b/Sln.Iot.Config/AppConfig.cs index 7fafd90..b570d4f 100644 --- a/Sln.Iot.Config/AppConfig.cs +++ b/Sln.Iot.Config/AppConfig.cs @@ -37,7 +37,22 @@ namespace Sln.Iot.Config /// /// 节拍时间(秒) /// - public int CycleTime { get; set; } + public int CycleTime1 { get; set; } + + /// + /// 节拍时间(秒) + /// + public int CycleTime2 { get; set; } + + /// + /// 节拍时间(秒) + /// + public int CycleTime3 { get; set; } + + /// + /// 节拍时间(秒) + /// + public int CycleTime4 { get; set; } /// /// PLC配置 diff --git a/Sln.Iot.Config/AppConfigSetting.cs b/Sln.Iot.Config/AppConfigSetting.cs index 5956321..c7f45e8 100644 --- a/Sln.Iot.Config/AppConfigSetting.cs +++ b/Sln.Iot.Config/AppConfigSetting.cs @@ -5,7 +5,7 @@ namespace Sln.Iot.Config { public class AppConfigSetting { - private static AppConfig? _config; + public static AppConfig? _config; /// /// 加载配置文件并解析为 AppConfig 对象。 diff --git a/Sln.Iot/appsettings.json b/Sln.Iot/appsettings.json index 28013a8..a9a8a6d 100644 --- a/Sln.Iot/appsettings.json +++ b/Sln.Iot/appsettings.json @@ -1,7 +1,10 @@ { "AppConfig": { //MES数据中的CycleTime字段 - "CycleTime": 7200, + "CycleTime1": 2000, + "CycleTime2": 62, + "CycleTime3": 9000, + "CycleTime4": 62, "logPath": "D:\\log", //CFX连接配置 "VacuumConfig": {