From d5f506ef2f7a9e8feb73e62f57086b5458ffbcbd Mon Sep 17 00:00:00 2001 From: hwh <332078369@qq.com> Date: 星期三, 18 九月 2024 13:26:31 +0800 Subject: [PATCH] 自刷新功能 --- Admin.NET/WCS.Application/PLC/PLCService.cs | 127 +++++++++++++------------------ Admin.NET/WCS.Application/Hub/HubUtil.cs | 88 ++++++++++++++++++++++ Admin.NET/WCS.Application/PLC/PLCTaskAction.cs | 13 +- Admin.NET/WCS.Application/Hub/PlcDeviceHub.cs | 3 Admin.NET/WCS.Application/WCS.Application.csproj | 2 5 files changed, 149 insertions(+), 84 deletions(-) diff --git a/Admin.NET/WCS.Application/Hub/HubUtil.cs b/Admin.NET/WCS.Application/Hub/HubUtil.cs new file mode 100644 index 0000000..988aab8 --- /dev/null +++ b/Admin.NET/WCS.Application/Hub/HubUtil.cs @@ -0,0 +1,88 @@ +锘縰sing Microsoft.AspNetCore.SignalR; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace WCS.Application; +public static class HubUtil +{ + private static readonly IHubContext<PlcHub, IPlcHub> _plcHubContext = App.GetService<IHubContext<PlcHub, IPlcHub>>(); + private static readonly IHubContext<PlcDeviceHub, IPlcDeviceHub> _plcDeviceHubContext = App.GetService<IHubContext<PlcDeviceHub, IPlcDeviceHub>>(); + private static readonly IHubContext<TaskLogHub, ITaskLogHub> _taskLogHubContext = App.GetService<IHubContext<TaskLogHub, ITaskLogHub>>(); + + /// <summary> + /// 涓嬪彂PLC杩炴帴鐘舵�� + /// </summary> + /// <param name="context"></param> + /// <returns></returns> + public static async Task PublicPlcConn(WcsPlc context) + { + if (PLCTaskAction.boRefresh) + await _plcHubContext.Clients.All.PublicPlcConn(context); + } + + /// <summary> + /// 涓嬪彂鎶ヨ淇℃伅 + /// </summary> + /// <param name="context"></param> + /// <returns></returns> + public static async Task PublicAlarm(List<WcsAlarmInfo> context) + { + if (PLCTaskAction.boRefresh) + await _plcHubContext.Clients.All.PublicAlarm(context); + } + + /// <summary> + /// 淇敼鏈嶅姟鐘舵�� + /// </summary> + /// <param name="context"></param> + public static async Task UpdateService(PLCServiceModel context) + { + if (PLCTaskAction.boRefresh) + await _plcHubContext.Clients.All.UpdateService(context); + } + + /// <summary> + /// 涓嬪彂鎺у埗鍙颁綅缃俊鎭� + /// </summary> + /// <param name="context"></param> + /// <returns></returns> + public static async Task PublicPosition(PlcPositionInfo context) + { + if (PLCTaskAction.boRefresh) + await _plcHubContext.Clients.All.PublicPosition(context); + } + + /// <summary> + /// 涓嬪彂浠诲姟 + /// </summary> + /// <returns></returns> + public static async Task PublicTask(WcsTaskOutput context) + { + if (PLCTaskAction.boRefresh) + await _taskLogHubContext.Clients.All.PublicTask(context); + } + + /// <summary> + /// 涓嬪彂浠诲姟鏄庣粏 + /// </summary> + /// <returns></returns> + public static async Task PublicTaskMonitor(WcsTaskMonitorOutput context) + { + if (PLCTaskAction.boRefresh) + await _taskLogHubContext.Clients.All.PublicTaskMonitor(context); + } + + /// <summary> + /// 涓嬪彂璁惧淇℃伅 + /// </summary> + /// <param name="context"></param> + /// <returns></returns> + public static async Task PublicPlcDevice(WcsDeviceOutput context) + { + if (PLCTaskAction.boRefresh) + await _plcDeviceHubContext.Clients.All.PublicPlcDevice(context); + } +} diff --git a/Admin.NET/WCS.Application/Hub/PlcDeviceHub.cs b/Admin.NET/WCS.Application/Hub/PlcDeviceHub.cs index fdff08a..7a2c8ff 100644 --- a/Admin.NET/WCS.Application/Hub/PlcDeviceHub.cs +++ b/Admin.NET/WCS.Application/Hub/PlcDeviceHub.cs @@ -16,7 +16,6 @@ [MapHub("/hubs/PlcDevice")] public class PlcDeviceHub : Hub<IPlcDeviceHub> { - private static readonly IHubContext<PlcDeviceHub, IPlcDeviceHub> _plcDeviceHubContext = App.GetService<IHubContext<PlcDeviceHub, IPlcDeviceHub>>(); private static readonly SysCacheService _sysCacheService = App.GetRequiredService<SysCacheService>(); private static bool boRunningState = false; private static CancellationTokenSource cts;//鍙栨秷绾跨▼鏍囪瘑 @@ -219,7 +218,7 @@ modDevice.PickStorey != initialState.PickStorey))) { // 閫氱煡鐢ㄦ埛鍙樻洿 - _plcDeviceHubContext.Clients.All.PublicPlcDevice(modDevice); + HubUtil.PublicPlcDevice(modDevice); } } initialStates[modDevice.Id] = modDevice.Adapt<WcsDeviceOutput>(); diff --git a/Admin.NET/WCS.Application/PLC/PLCService.cs b/Admin.NET/WCS.Application/PLC/PLCService.cs index aefbb9f..87b4c3c 100644 --- a/Admin.NET/WCS.Application/PLC/PLCService.cs +++ b/Admin.NET/WCS.Application/PLC/PLCService.cs @@ -15,12 +15,6 @@ public static class PLCService { private static readonly ISqlSugarClient _db = SqlSugarSetup.ITenant.GetConnectionScope(SqlSugarConst.MainConfigId); - private static readonly IHubContext<TaskLogHub, ITaskLogHub> _taskLogHubContext; - - static PLCService() - { - _taskLogHubContext = App.GetService<IHubContext<TaskLogHub, ITaskLogHub>>(); - } public static void OnChangeEvent(object sender, EventArgs e) { @@ -148,7 +142,7 @@ .SetColumns(s => s.Status == TaskStatusEnum.Doing) .Where(s => s.Id == modTask.Id) .ExecuteCommand(); - _taskLogHubContext.Clients.All.PublicTask(modTask.Adapt<WcsTaskOutput>()); + HubUtil.PublicTask(modTask.Adapt<WcsTaskOutput>()); WcsTaskMonitor modInsertTaskMonitor; if (string.IsNullOrEmpty(taskInfo.EndStation)) { @@ -184,7 +178,7 @@ // 鎻掑叆浜や簰鏃ュ織 _db.Insertable(modInsertTaskMonitor).ExecuteCommand(); //涓嬪彂浠诲姟鏃ュ織 - _taskLogHubContext.Clients.All.PublicTaskMonitor(modInsertTaskMonitor.Adapt<WcsTaskMonitorOutput>()); + HubUtil.PublicTaskMonitor(modInsertTaskMonitor.Adapt<WcsTaskMonitorOutput>()); //淇敼led灞忎俊鎭� //LedDisplay(modDevice.LedIP, "宸ヤ綅:" + modTask.EndLocate, "鍑哄簱涓� " + $"鍌ㄤ綅鍦板潃锛歿modTask.StartLocate}", "鎵樼洏鍙�:" + modTask.PalletNo); } @@ -251,7 +245,7 @@ // 鎻掑叆浜や簰鏃ュ織 _db.Insertable(modInsertTaskMonitor).ExecuteCommand(); //涓嬪彂浠诲姟鏃ュ織 - _taskLogHubContext.Clients.All.PublicTaskMonitor(modInsertTaskMonitor.Adapt<WcsTaskMonitorOutput>()); + HubUtil.PublicTaskMonitor(modInsertTaskMonitor.Adapt<WcsTaskMonitorOutput>()); break; } @@ -259,7 +253,7 @@ // 鎻掑叆浜や簰鏃ュ織 _db.Insertable(modcTaskMonitor).ExecuteCommand(); //涓嬪彂浠诲姟鏃ュ織 - _taskLogHubContext.Clients.All.PublicTaskMonitor(modcTaskMonitor.Adapt<WcsTaskMonitorOutput>()); + HubUtil.PublicTaskMonitor(modInsertTaskMonitor.Adapt<WcsTaskMonitorOutput>()); } // 鍐欏叆娴佺▼鎺у埗瀛� @@ -274,7 +268,7 @@ // 鎻掑叆浜や簰鏃ュ織 _db.Insertable(modInsertTaskMonitor).ExecuteCommand(); //涓嬪彂浠诲姟鏃ュ織 - _taskLogHubContext.Clients.All.PublicTaskMonitor(modInsertTaskMonitor.Adapt<WcsTaskMonitorOutput>()); + HubUtil.PublicTaskMonitor(modInsertTaskMonitor.Adapt<WcsTaskMonitorOutput>()); } } else if (modTask.TaskType == TaskTypeEnum.Out) @@ -306,7 +300,7 @@ // 鎻掑叆浜や簰鏃ュ織 _db.Insertable(modInsertTaskMonitor).ExecuteCommand(); //涓嬪彂浠诲姟鏃ュ織 - _taskLogHubContext.Clients.All.PublicTaskMonitor(modInsertTaskMonitor.Adapt<WcsTaskMonitorOutput>()); + HubUtil.PublicTaskMonitor(modInsertTaskMonitor.Adapt<WcsTaskMonitorOutput>()); //淇敼led灞忎俊鎭� //LedDisplay(modDevice.LedIP, "宸ヤ綅:" + modTask.EndLocate, "鍑哄簱涓� " + $"鍌ㄤ綅鍦板潃锛歿modTask.StartLocate}", "鎵樼洏鍙�:" + modTask.PalletNo); } @@ -343,8 +337,8 @@ modTask.Status = TaskStatusEnum.Complete; modTask.FinishDate = DateTime.Now; _db.Updateable(modTask).ExecuteCommand(); - _taskLogHubContext.Clients.All.PublicTask(modTask.Adapt<WcsTaskOutput>()); - var modcTaskMonitor = new WcsTaskMonitor() + HubUtil.PublicTask(modTask.Adapt<WcsTaskOutput>()); + var modTaskMonitor = new WcsTaskMonitor() { TaskNo = modTask.TaskNo, PlcId = modDevice.Id, @@ -369,13 +363,13 @@ var modResponseTask = httpService.RequestTask(requestMode).Result; if (modResponseTask.StatusCode == "0") { - modcTaskMonitor.InteractiveMsg = "浠诲姟瀹屾垚锛岃繑鍥炵粰WMS浠诲姟瀹屾垚"; + modTaskMonitor.InteractiveMsg = "浠诲姟瀹屾垚锛岃繑鍥炵粰WMS浠诲姟瀹屾垚"; } } // 鎻掑叆浜や簰鏃ュ織 - _db.Insertable(modcTaskMonitor).ExecuteCommand(); + _db.Insertable(modTaskMonitor).ExecuteCommand(); //涓嬪彂浠诲姟鏃ュ織 - _taskLogHubContext.Clients.All.PublicTaskMonitor(modcTaskMonitor.Adapt<WcsTaskMonitorOutput>()); + HubUtil.PublicTaskMonitor(modTaskMonitor.Adapt<WcsTaskMonitorOutput>()); // 姝ゅ娣诲姞涓嶇┖璺戜笟鍔� } @@ -440,7 +434,7 @@ // 鎻掑叆浜や簰鏃ュ織 _db.Insertable(modcTaskMonitor).ExecuteCommand(); //涓嬪彂浠诲姟鏃ュ織 - _taskLogHubContext.Clients.All.PublicTaskMonitor(modcTaskMonitor.Adapt<WcsTaskMonitorOutput>()); + HubUtil.PublicTaskMonitor(modcTaskMonitor.Adapt<WcsTaskMonitorOutput>()); break; } } @@ -469,8 +463,7 @@ modTask.FinishDate = DateTime.Now; _db.Updateable(modTask).ExecuteCommand(); //涓嬪彂浠诲姟鏃ュ織 - _taskLogHubContext.Clients.All.PublicTask(modTask.Adapt<WcsTaskOutput>()); - + HubUtil.PublicTask(modTask.Adapt<WcsTaskOutput>()); var modcTaskMonitor = new WcsTaskMonitor() { TaskNo = modTask.TaskNo, @@ -504,7 +497,7 @@ // 鎻掑叆浜や簰鏃ュ織 _db.Insertable(modcTaskMonitor).ExecuteCommand(); //涓嬪彂浠诲姟鏃ュ織 - _taskLogHubContext.Clients.All.PublicTaskMonitor(modcTaskMonitor.Adapt<WcsTaskMonitorOutput>()); + HubUtil.PublicTaskMonitor(modcTaskMonitor.Adapt<WcsTaskMonitorOutput>()); // 姝ゅ娣诲姞涓嶇┖璺戜笟鍔� } @@ -538,7 +531,7 @@ break; modTask.Status = TaskStatusEnum.Exception; _db.Updateable(modTask).UpdateColumns(s => s.Status).ExecuteCommand(); - _taskLogHubContext.Clients.All.PublicTask(modTask.Adapt<WcsTaskOutput>()); + HubUtil.PublicTask(modTask.Adapt<WcsTaskOutput>()); Log.Information($"銆愬爢鍨涙満銆憌cs浠诲姟鍙樻洿绌哄彇寮傚父锛屼换鍔″彿锛歿modTask.TaskNo}"); var modTaskRequest = modTask.Adapt<TaskRequest>(); HttpService httpService = new HttpService(); @@ -549,7 +542,7 @@ modTask.IsSuccess = TaskSuccessEnum.Success; _db.Updateable(modTask).UpdateColumns(s => s.IsSuccess).ExecuteCommand(); //涓嬪彂浠诲姟鏃ュ織 - _taskLogHubContext.Clients.All.PublicTask(modTask.Adapt<WcsTaskOutput>()); + HubUtil.PublicTask(modTask.Adapt<WcsTaskOutput>()); } else { @@ -557,7 +550,7 @@ modTask.IsSuccess = TaskSuccessEnum.Fail; modTask.Information = modResponseTask.Message; _db.Updateable(modTask).UpdateColumns(s => new { s.IsSuccess, s.Information }).ExecuteCommand(); - _taskLogHubContext.Clients.All.PublicTask(modTask.Adapt<WcsTaskOutput>()); + HubUtil.PublicTask(modTask.Adapt<WcsTaskOutput>()); } } break; @@ -578,7 +571,7 @@ } modTask.Status = TaskStatusEnum.Exception; _db.Updateable(modTask).UpdateColumns(s => s.Status).ExecuteCommand(); - _taskLogHubContext.Clients.All.PublicTask(modTask.Adapt<WcsTaskOutput>()); + HubUtil.PublicTask(modTask.Adapt<WcsTaskOutput>()); Log.Information($"銆愬爢鍨涙満銆憌cs浠诲姟鍙樻洿婊″彇寮傚父锛屼换鍔″彿锛歿modTask.TaskNo}"); var modTaskRequest = modTask.Adapt<TaskRequest>(); HttpService httpService = new HttpService(); @@ -632,7 +625,7 @@ // 鎻掑叆浜や簰鏃ュ織 _db.Insertable(modcTaskMonitor).ExecuteCommand(); //涓嬪彂浠诲姟鏃ュ織 - _taskLogHubContext.Clients.All.PublicTaskMonitor(modcTaskMonitor.Adapt<WcsTaskMonitorOutput>()); + HubUtil.PublicTaskMonitor(modcTaskMonitor.Adapt<WcsTaskMonitorOutput>()); } } @@ -680,12 +673,12 @@ var http = new HttpService(); string TaskNo = "", EndLocate = ""; strMsg = http.RequestRoadWay(palletVal, modDevice.StationNum, taskModel, louCeng, ref EndLocate, ref TaskNo); - + if (!strMsg.Contains("-1")) { // 鍐欏叆330 var ret = plcConn.SetPlcDBValue(modDevice.PosType, modDevice.DbNumber, modDevice.WcsPos, "330"); - + if (ret.IsSucceed) { // 鎻掑叆浠诲姟鏄庣粏 @@ -700,15 +693,12 @@ StartLocat = modDevice.StationNum, EndLocat = EndLocate, }; - + // 鎻掑叆浜や簰鏃ュ織 _db.Insertable(modInsertTaskMonitor).ExecuteCommand(); // 閫氱煡浠诲姟鐣岄潰浠诲姟宸插瓨鍦ㄦ洿鏂� 璇锋洿鏂扮晫闈� - if (PLCTaskAction.boRefresh) - { - _taskLogHubContext.Clients.All.PublicTaskMonitor(modInsertTaskMonitor.Adapt<WcsTaskMonitorOutput>()); - } + HubUtil.PublicTaskMonitor(modInsertTaskMonitor.Adapt<WcsTaskMonitorOutput>()); // led鏇存柊鍐呭 //DataRow ConveyorsRow10 = PlcInfoDt.Select($"Level = '2' and StationNum = '{EndLocat}'")[0]; //LedDisplay(ConveyorsRow10["LedIP"].ToString(), "宸ヤ綅:" + EndLocat, "鍑哄簱涓� " + $"鍌ㄤ綅鍦板潃锛歿StartLocat}", "鎵樼洏鍙�:" + PalletNo); @@ -718,7 +708,7 @@ else { // 鐢宠宸烽亾澶辫触锛丩ED鏄剧ず - Log.Error(string.Format($"鐢宠宸烽亾澶辫触:{ strMsg },璇诲啓plc閿欒")); + Log.Error(string.Format($"鐢宠宸烽亾澶辫触:{strMsg},璇诲啓plc閿欒")); } } break; @@ -741,7 +731,7 @@ // 姝ゆ墭鐩樻病鏈夊搴旂殑杞Щ浠诲姟 led鏄剧ず break; } - + // 鑾峰彇宸烽亾鍙e叆搴撳伐浣� string endLocatVlue = PLCCommon.RoadwayToStationNum(modTask.EndRoadway, louCeng); // 缁橮LC鍐欏叆浠诲姟鏁版嵁 @@ -759,7 +749,7 @@ listResult.Add(plcConn.SetPlcDBValue(modPosStrLocat.PosType, modDevice.DbNumber, modPosStrLocat.PlcPos, modDevice.StationNum)); var modPosEndLocat = modDevice.listStation.FirstOrDefault(s => s.Text == "鐩殑宸ヤ綅"); listResult.Add(plcConn.SetPlcDBValue(modPosEndLocat.PosType, modDevice.DbNumber, modPosEndLocat.PlcPos, endLocatVlue)); - + if (listResult.All(s => s.IsSucceed)) { @@ -769,10 +759,10 @@ .Where(s => s.Id == modTask.Id) .ExecuteCommand(); // 鍐欏叆娴佺▼瀛� 330 340 - + var ret = plcConn.SetPlcDBValue(modDevice.PosType, modDevice.DbNumber, modDevice.WcsPos, "340"); - - + + if (ret.IsSucceed) { // 鎻掑叆浠诲姟鏄庣粏 @@ -792,10 +782,7 @@ _db.Insertable(modInsertTaskMonitor).ExecuteCommand(); // 閫氱煡浠诲姟鐣岄潰浠诲姟宸插瓨鍦ㄦ洿鏂� 璇锋洿鏂扮晫闈� - if (PLCTaskAction.boRefresh) - { - _taskLogHubContext.Clients.All.PublicTaskMonitor(modInsertTaskMonitor.Adapt<WcsTaskMonitorOutput>()); - } + HubUtil.PublicTaskMonitor(modInsertTaskMonitor.Adapt<WcsTaskMonitorOutput>()); // led鏇存柊鍐呭 //LedDisplay(modDevice.LedIP, "宸ヤ綅:" + modTask.EndLocate, "鍑哄簱涓� " + $"鍌ㄤ綅鍦板潃锛歿modTask.StartLocate}", "鎵樼洏鍙�:" + modTask.PalletNo); @@ -807,7 +794,7 @@ case "620": { // 鐢宠鍌ㄤ綅 鏇存柊鍏ュ簱浠诲姟(鍌ㄤ綅鍦板潃) 630 - + var strMsg = ""; var taskModel = ""; // 鍒ゆ柇鏄惁婕旂ず妯″紡 @@ -857,10 +844,7 @@ _db.Insertable(modInsertTaskMonitor).ExecuteCommand(); // 閫氱煡浠诲姟鐣岄潰浠诲姟宸插瓨鍦ㄦ洿鏂� 璇锋洿鏂扮晫闈� - if (PLCTaskAction.boRefresh) - { - _taskLogHubContext.Clients.All.PublicTaskMonitor(modInsertTaskMonitor.Adapt<WcsTaskMonitorOutput>()); - } + HubUtil.PublicTaskMonitor(modInsertTaskMonitor.Adapt<WcsTaskMonitorOutput>()); // led鏇存柊鍐呭 //DataRow ConveyorsRow10 = PlcInfoDt.Select($"Level = '2' and StationNum = '{EndLocat}'")[0]; //LedDisplay(ConveyorsRow10["LedIP"].ToString(), "宸ヤ綅:" + EndLocat, "鍑哄簱涓� " + $"鍌ㄤ綅鍦板潃锛歿StartLocat}", "鎵樼洏鍙�:" + PalletNo); @@ -871,7 +855,7 @@ // 鐢宠鍌ㄤ綅澶辫触锛丩ED鏄剧ず Log.Error(string.Format($"鐢宠鍌ㄤ綅澶辫触:{strMsg},璇诲啓plc閿欒")); } - + } break; case "630": @@ -884,7 +868,7 @@ // 鑾峰彇宸ヤ綅浠诲姟鍙蜂俊鎭� var modPosTaskNo = modDevice.listStation.FirstOrDefault(m => m.Text == "浠诲姟鍙�"); var (taskRes, taskNoVal) = plcConn.GetPlcDBValue(PLCDataTypeEnum.String, modDevice.DbNumber, modPosTaskNo.PlcPos); - if (!res.IsSucceed || !taskRes.IsSucceed ) + if (!res.IsSucceed || !taskRes.IsSucceed) { break; } @@ -897,13 +881,13 @@ // 姝ゆ墭鐩樻病鏈夊搴旂殑杞Щ浠诲姟 led鏄剧ず break; } - + var sInfo = PLCCommon.GetStokePlc(modTask.EndRoadway, louCeng); if (string.IsNullOrWhiteSpace(sInfo.Ip)) { //闇�鍔犱笂LED鏄剧ず Log.Error(string.Format($"鏍规嵁宸烽亾鑾峰彇璺烘満IP澶辫触锛岃鑱旂郴绠$悊鍛�")); - break; + break; } // 璺烘満杩炴帴 var plcStackeConn = PLCTaskAction.listPlcConn.First(m => m.PlcIP == sInfo.Ip); @@ -929,7 +913,7 @@ // 鑾峰彇璺烘満褰撳墠鐘舵�� var (djRes, djVal) = plcStackeConn.GetPlcDBValue(djMod.PosType, djMod.DbNumber, djMod.PlcPos); - + if (!djRes.IsSucceed || djVal != "820") { // 璺烘満闈炵┖闂茬瓑寰� @@ -946,7 +930,7 @@ listResult.Add(plcStackeConn.SetPlcDBValue(modPosTaskType.PosType, djMod.DbNumber, modPosTaskType.PlcPos, taskTypeStr.ToString())); var modPosPalletNo = djInfos.FirstOrDefault(s => s.Text == "鎵樼洏鍙�"); listResult.Add(plcStackeConn.SetPlcDBValue(modPosPalletNo.PosType, djMod.DbNumber, modPosPalletNo.PlcPos, modTask.PalletNo)); - + //璧峰宸ヤ綅 var modPosStrStationNum = djInfos.FirstOrDefault(s => s.Text == "璧峰宸ヤ綅"); listResult.Add(plcStackeConn.SetPlcDBValue(modPosStrStationNum.PosType, djMod.DbNumber, modPosStrStationNum.PlcPos, modDevice.StationNum)); @@ -988,7 +972,7 @@ // 鎻掑叆浜や簰鏃ュ織 _db.Insertable(modInsertTaskMonitor).ExecuteCommand(); //涓嬪彂浠诲姟鏃ュ織 - _taskLogHubContext.Clients.All.PublicTaskMonitor(modInsertTaskMonitor.Adapt<WcsTaskMonitorOutput>()); + HubUtil.PublicTaskMonitor(modInsertTaskMonitor.Adapt<WcsTaskMonitorOutput>()); break; } @@ -996,17 +980,18 @@ // 鎻掑叆浜や簰鏃ュ織 _db.Insertable(modInsertTaskMonitor).ExecuteCommand(); if (PLCTaskAction.boRefresh) - { //涓嬪彂浠诲姟鏃ュ織 - _taskLogHubContext.Clients.All.PublicTaskMonitor(modInsertTaskMonitor.Adapt<WcsTaskMonitorOutput>()); + { + //涓嬪彂浠诲姟鏃ュ織 + HubUtil.PublicTaskMonitor(modInsertTaskMonitor.Adapt<WcsTaskMonitorOutput>()); } - - } - - - + } + + + + } - + #endregion } break; @@ -1019,7 +1004,7 @@ // led鏄剧ず鎵樼洏淇℃伅 // 鍐欏叆430 var ret = plcConn.SetPlcDBValue(modDevice.PosType, modDevice.DbNumber, modDevice.WcsPos, "430"); - + if (ret.IsSucceed) { var modPosTask = modDevice.listStation.FirstOrDefault(m => m.Text == "浠诲姟鍙�"); @@ -1045,11 +1030,8 @@ _db.Insertable(modInsertTaskMonitor).ExecuteCommand(); // 閫氱煡浠诲姟鐣岄潰浠诲姟宸插瓨鍦ㄦ洿鏂� 璇锋洿鏂扮晫闈� - if (PLCTaskAction.boRefresh) - { - _taskLogHubContext.Clients.All.PublicTaskMonitor(modInsertTaskMonitor.Adapt<WcsTaskMonitorOutput>()); - } - + HubUtil.PublicTaskMonitor(modInsertTaskMonitor.Adapt<WcsTaskMonitorOutput>()); + // led鏇存柊鍐呭 //DataRow ConveyorsRow10 = PlcInfoDt.Select($"Level = '2' and StationNum = '{EndLocat}'")[0]; //LedDisplay(ConveyorsRow10["LedIP"].ToString(), "宸ヤ綅:" + EndLocat, "鍑哄簱涓� " + $"鍌ㄤ綅鍦板潃锛歿StartLocat}", "鎵樼洏鍙�:" + PalletNo); @@ -1093,10 +1075,7 @@ _db.Insertable(modInsertTaskMonitor).ExecuteCommand(); // 閫氱煡浠诲姟鐣岄潰浠诲姟宸插瓨鍦ㄦ洿鏂� 璇锋洿鏂扮晫闈� - if (PLCTaskAction.boRefresh) - { - _taskLogHubContext.Clients.All.PublicTaskMonitor(modInsertTaskMonitor.Adapt<WcsTaskMonitorOutput>()); - } + HubUtil.PublicTaskMonitor(modInsertTaskMonitor.Adapt<WcsTaskMonitorOutput>()); // led鏇存柊鍐呭 //DataRow ConveyorsRow10 = PlcInfoDt.Select($"Level = '2' and StationNum = '{EndLocat}'")[0]; //LedDisplay(ConveyorsRow10["LedIP"].ToString(), "宸ヤ綅:" + EndLocat, "鍑哄簱涓� " + $"鍌ㄤ綅鍦板潃锛歿StartLocat}", "鎵樼洏鍙�:" + PalletNo); @@ -1132,7 +1111,7 @@ /// 鎷嗗灈鏈哄櫒浜轰笟鍔″鐞� /// </summary> /// <param name="modDevice"></param> - private static void StackingRobot(WcsDeviceDto modDevice) + private static void StackingRobot(WcsDeviceDto modDevice) { var plcConn = modDevice.PLCUtil; switch (modDevice.Value.ToString()) diff --git a/Admin.NET/WCS.Application/PLC/PLCTaskAction.cs b/Admin.NET/WCS.Application/PLC/PLCTaskAction.cs index 2137784..f2a77a3 100644 --- a/Admin.NET/WCS.Application/PLC/PLCTaskAction.cs +++ b/Admin.NET/WCS.Application/PLC/PLCTaskAction.cs @@ -20,7 +20,6 @@ private static readonly ISqlSugarClient _db = SqlSugarSetup.ITenant.GetConnectionScope(SqlSugarConst.MainConfigId); private static readonly SysCacheService sysCacheService = App.GetRequiredService<SysCacheService>(); - private static readonly IHubContext<PlcHub, IPlcHub> _plcHubContext = App.GetService<IHubContext<PlcHub, IPlcHub>>(); private static readonly SysConfigService _sysConfigService = App.GetService<SysConfigService>(); private static List<WcsPlc> listPlc = new List<WcsPlc>(); @@ -79,7 +78,7 @@ var plc = new PLCUtil(modPlc); listPlcUtil.Add(plc); } - _plcHubContext.Clients.All.UpdateService(new PLCServiceModel() + HubUtil.UpdateService(new PLCServiceModel() { BoRunningState = boRunningState, BoOffline = boOffline, @@ -225,14 +224,14 @@ { //杩炴帴鐘舵�佸彉鏇� 閫氱煡鍓嶇 Console.WriteLine($"閫氱煡鍓嶇鍙樻洿{modPlc.Text} {modPlc.IsConn}"); - _plcHubContext.Clients.All.PublicPlcConn(modPlc); + HubUtil.PublicPlcConn(modPlc); } sysCacheService.Set("PLCCONN:" + modPlc.Id, modPlc); } else { sysCacheService.Set("PLCCONN:" + modPlc.Id, modPlc); - _plcHubContext.Clients.All.PublicPlcConn(modPlc); + HubUtil.PublicPlcConn(modPlc); } } Thread.Sleep(1000); @@ -331,7 +330,7 @@ listLog.Add(modLog); } _db.Insertable(listLog).ExecuteCommand(); - _plcHubContext.Clients.All.PublicAlarm(listPulish); + HubUtil.PublicAlarm(listPulish); } } catch (Exception ex) @@ -407,7 +406,7 @@ StationNum = modDevice.StationNum, BoxHeight = modDevice.BoxHeight }; - _plcHubContext.Clients.All.PublicPosition(modInfo); + HubUtil.PublicPosition(modInfo); UpdatePosition(modInfo); } } @@ -420,7 +419,7 @@ modDevice.BoHaveItem = value; //涓嬪彂鐘舵�� var modInfo = new PlcPositionInfo() { Type = modPlc.Type, StationNum = modDevice.StationNum, BoHaveItem = value }; - _plcHubContext.Clients.All.PublicPosition(modInfo); + HubUtil.PublicPosition(modInfo); UpdatePosition(modInfo); } } diff --git a/Admin.NET/WCS.Application/WCS.Application.csproj b/Admin.NET/WCS.Application/WCS.Application.csproj index 3da5784..0275db2 100644 --- a/Admin.NET/WCS.Application/WCS.Application.csproj +++ b/Admin.NET/WCS.Application/WCS.Application.csproj @@ -2,7 +2,7 @@ <PropertyGroup> <TargetFrameworks>net6.0;net8.0</TargetFrameworks> - <NoWarn>1701;1702;1591;8632</NoWarn> + <NoWarn>1701;1702;1591;8632;4014</NoWarn> <DocumentationFile></DocumentationFile> <ImplicitUsings>enable</ImplicitUsings> <GenerateDocumentationFile>True</GenerateDocumentationFile> -- Gitblit v1.8.0