From f040136ab8029cc207a8111d21c78bbf315a6dbd Mon Sep 17 00:00:00 2001 From: IPC-610 <IPC-610@DESKTOP-6LEOOS3> Date: 星期一, 21 十月 2024 18:54:19 +0800 Subject: [PATCH] 修改问题 --- Admin.NET/WCS.Application/PLC/PLCService.cs | 118 +++++++++++++++++++++++++++++++++++++++++++++------------- 1 files changed, 91 insertions(+), 27 deletions(-) diff --git a/Admin.NET/WCS.Application/PLC/PLCService.cs b/Admin.NET/WCS.Application/PLC/PLCService.cs index 31c9009..c946757 100644 --- a/Admin.NET/WCS.Application/PLC/PLCService.cs +++ b/Admin.NET/WCS.Application/PLC/PLCService.cs @@ -1,6 +1,7 @@ 锘� using Dm.filter; using DocumentFormat.OpenXml.Bibliography; +using DocumentFormat.OpenXml.Drawing.Charts; using Elastic.Clients.Elasticsearch.Tasks; using Furion.Logging; using IoTClient; @@ -13,10 +14,13 @@ using System.Reflection.Emit; using WCS.Application.Entity; using WCS.Application.Util; +using static SKIT.FlurlHttpClient.Wechat.Api.Models.CgibinExpressIntracityUpdateStoreRequest.Types; +using static SKIT.FlurlHttpClient.Wechat.Api.Models.NontaxInsertBillRequest.Types.CardExtra.Types.BillCard.Types; namespace WCS.Application; public static class PLCService { + private static readonly ISqlSugarClient _db = SqlSugarSetup.ITenant.GetConnectionScope(SqlSugarConst.MainConfigId); public static void OnChangeEvent(object sender, EventArgs e) @@ -58,6 +62,7 @@ private static void StackingMachine(WcsDeviceDto modDevice) { var plcConn = modDevice.PLCUtil; + string ledText = ""; switch (modDevice.Value.ToString()) { case "820": @@ -203,8 +208,15 @@ _db.Insertable(modInsertTaskMonitor).ExecuteCommand(); //涓嬪彂浠诲姟鏃ュ織 HubUtil.PublicTaskMonitor(modInsertTaskMonitor.Adapt<WcsTaskMonitorOutput>()); + //淇敼led灞忎俊鎭� - //LedDisplay(modDevice.LedIP, "宸ヤ綅:" + modTask.EndLocate, "鍑哄簱涓� " + $"鍌ㄤ綅鍦板潃锛歿modTask.StartLocate}", "鎵樼洏鍙�:" + modTask.PalletNo); + var ledDevice = PLCTaskAction.plcDevices.First(m => m.StationNum == taskInfo.EndStation && m.IsDelete == false && m.DeviceType == DeviceTypeEnum.Business); + ledText += $"浠诲姟绫诲瀷:{modTask.TaskType.GetDescription()}\n\n"; + ledText += $"浠诲姟鍙�:{modTask.TaskNo}\n"; + ledText += $"鎵樼洏鍙�:{modTask.PalletNo}\n\n"; + ledText += $"璧峰浣�:{modTask.StartRoadway + " " + modTask.StartLocate}\n"; + ledText += $"鐩爣浣�:{modTask.EndRoadway + " " + modTask.EndLocate}"; + LedDisplay(ledDevice.LedIP, ledText); } } break; @@ -356,8 +368,6 @@ HubUtil.PublicTaskMonitor(modInsertTaskMonitor.Adapt<WcsTaskMonitorOutput>()); } - //淇敼led灞忎俊鎭� - //LedDisplay(modDevice.LedIP, "宸ヤ綅:" + modTask.EndLocate, "鍑哄簱涓� " + $"鍌ㄤ綅鍦板潃锛歿modTask.StartLocate}", "鎵樼洏鍙�:" + modTask.PalletNo); } } break; @@ -371,7 +381,7 @@ { string tasknoVal = val.ToString(); var modTask = _db.Queryable<WcsTask>().First(m => m.Status == TaskStatusEnum.Doing && m.TaskNo == tasknoVal && m.IsDelete == false); - if (modTask == null) + if (modTask == null) { Log.Error(string.Format("璺烘満鎺у埗瀛�860:鏈壘鍒板搴旂殑浠诲姟銆�")); break; @@ -434,8 +444,16 @@ HubUtil.PublicTaskMonitor(modTaskMonitor.Adapt<WcsTaskMonitorOutput>()); // led鏄剧ず鍐呭 - LedDisplay(modDevice.LedIP, "宸ヤ綅:" + modTask.StartLocate, "鍏ュ簱瀹屾垚 " + $"浠诲姟瀹屾垚:{modTask.TaskNo}", "鎵樼洏鍙�:" + modTask.PalletNo); + var ledDevice = PLCTaskAction.plcDevices.First(m => m.StationNum == modTask.StartLocate && m.IsDelete == false && m.DeviceType == DeviceTypeEnum.Business); + ledText += $"鍏ュ簱瀹屾垚\n\n"; + ledText += $"浠诲姟鍙�:{modTask.TaskNo}\n"; + ledText += $"鎵樼洏鍙�:{modTask.PalletNo}\n\n"; + + ledText += $"璧峰浣�:{modTask.StartRoadway + " " + modTask.StartLocate}\n"; + ledText += $"鐩爣浣�:{modTask.EndRoadway + " " + modTask.EndLocate}"; + + LedDisplay(ledDevice.LedIP, ledText); // 姝ゅ娣诲姞涓嶇┖璺戜笟鍔� } break; @@ -500,13 +518,6 @@ _db.Insertable(modcTaskMonitor).ExecuteCommand(); //涓嬪彂浠诲姟鏃ュ織 HubUtil.PublicTaskMonitor(modcTaskMonitor.Adapt<WcsTaskMonitorOutput>()); - - // 鏍规嵁浠诲姟鍙疯幏鍙栬捣濮嬪伐浣嶅湴鍧�锛屾牴鎹捣濮嬪伐浣嶅湴鍧�鑾峰彇LEDIP 鎺ㄩ�佸埌LED灞忓箷銆� - var taskModel = _db.Queryable<WcsTask>().First(w => w.TaskNo == modTask.TaskNo); - modDevice.LedIP = _db.Queryable<WcsDevice>().Where(w => w.StationNum == taskModel.EndLocate).Select(s => s.LedIP).First(); - - // led鏄剧ず鍐呭 - LedDisplay(modDevice.LedIP, "宸ヤ綅:" + modDevice.StationNum, "鍑哄簱涓� ", "鎵樼洏鍙�:" + modTask.PalletNo); break; } @@ -890,6 +901,7 @@ { return; } + var ledText = ""; switch (modDevice.Value.ToString()) { case "320": @@ -914,7 +926,10 @@ var (res350, palletVal350) = plcConn.GetPlcDBValue(PLCDataTypeEnum.String, modDevice.DbNumber, modPosPallet.PlcPos); if (res350.IsSucceed && palletVal350 != "350") { - LedDisplay(modDevice.LedIP, "宸ヤ綅:" + modDevice.StationNum, "鐢宠鍏ュ簱 " + $"鍏ュ簱浠诲姟宸查攣瀹氾紝璇疯В閿佸悗閲嶈瘯", "鎵樼洏鍙�:" + palletVal); + ledText += $"鐢宠鍏ュ簱澶辫触\n\n"; + ledText += $"鎵樼洏鍙�:{palletVal}\n"; + ledText += $"鍏ュ簱浠诲姟宸查攣瀹氾紝璇疯В閿佸悗閲嶈瘯!\n"; + LedDisplay(modDevice.LedIP, ledText); } // 鍐欏叆杈撻�佺嚎閫�鍥炴寚浠� @@ -932,7 +947,10 @@ var (res350, palletVal350) = plcConn.GetPlcDBValue(PLCDataTypeEnum.String, modDevice.DbNumber, modPosPallet.PlcPos); if (res350.IsSucceed && palletVal350 != "350") { - LedDisplay(modDevice.LedIP, "宸ヤ綅:" + modDevice.StationNum, "鐢宠鍏ュ簱 " + $"鎵弿鎵樼洏鍙峰け璐�!", "鎵樼洏鍙�:" + palletVal); + ledText += $"鐢宠鍏ュ簱澶辫触\n\n"; + ledText += $"鎵樼洏鍙�:{palletVal}\n"; + ledText += $"鎵弿鎵樼洏鍙峰け璐�!\n"; + LedDisplay(modDevice.LedIP, ledText); } // 鍐欏叆杈撻�佺嚎閫�鍥炴寚浠� @@ -981,7 +999,15 @@ // led鏄剧ず鍐呭 try { - LedDisplay(modDevice.LedIP, "宸ヤ綅:" + modDevice.StationNum, "鐢宠鍏ュ簱 " + $"鐩爣宸烽亾锛歿taskInfo.EndRoadway}鍙栬揣宸ヤ綅锛歿EndLocate}", "鎵樼洏鍙�:" + palletVal); + ledText += $"浠诲姟绫诲瀷:{taskInfo.TaskType.GetDescription()}\n\n"; + + ledText += $"浠诲姟鍙�:{taskInfo.TaskNo}\n"; + ledText += $"鎵樼洏鍙�:{taskInfo.PalletNo}\n\n"; + + ledText += $"璧峰浣�:{taskInfo.StartRoadway + " " + taskInfo.StartLocate}\n"; + ledText += $"鐩爣浣�:{taskInfo.EndRoadway + " " + taskInfo.EndLocate}"; + LedDisplay(modDevice.LedIP, ledText); + } catch (Exception ex) { @@ -996,7 +1022,10 @@ var (res350, palletVal350) = plcConn.GetPlcDBValue(PLCDataTypeEnum.String, modDevice.DbNumber, modPosPallet.PlcPos); if (res350.IsSucceed && palletVal350 != "350") { - LedDisplay(modDevice.LedIP, "宸ヤ綅:" + modDevice.StationNum, "鐢宠鍏ュ簱 " + $"鐢宠宸烽亾澶辫触锛歿strMsg}", "鎵樼洏鍙�:" + palletVal); + ledText += $"鐢宠鍏ュ簱澶辫触\n\n"; + ledText += $"鎵樼洏鍙�:{palletVal}\n"; + ledText += $"{strMsg}\n"; + LedDisplay(modDevice.LedIP, ledText); } // 鍐欏叆杈撻�佺嚎閫�鍥炴寚浠� @@ -1005,9 +1034,6 @@ { plcConn.SetPlcDBValue(modDevice.PosType, modDevice.DbNumber, modDevice.WcsPos, "350"); } - - // 鐢宠宸烽亾澶辫触锛� - Log.Error(string.Format($"鐢宠宸烽亾澶辫触:{strMsg},璇诲啓plc閿欒")); } } break; @@ -1090,8 +1116,6 @@ // 閫氱煡浠诲姟鐣岄潰浠诲姟宸插瓨鍦ㄦ洿鏂� 璇锋洿鏂扮晫闈� HubUtil.PublicTaskMonitor(modInsertTaskMonitor.Adapt<WcsTaskMonitorOutput>()); - // led鏄剧ず鍐呭 - LedDisplay(modDevice.LedIP, "宸ヤ綅:" + modDevice.StationNum, "鐢宠鍏ュ簱 " + $"鐩爣宸烽亾锛歿modTask.EndRoadway}鍙栬揣宸ヤ綅锛歿endLocatVlue}", "鎵樼洏鍙�:" + palletVal); } } @@ -1156,14 +1180,25 @@ // 閫氱煡浠诲姟鐣岄潰浠诲姟宸插瓨鍦ㄦ洿鏂� 璇锋洿鏂扮晫闈� HubUtil.PublicTaskMonitor(modInsertTaskMonitor.Adapt<WcsTaskMonitorOutput>()); - // led鏄剧ず鍐呭 - LedDisplay(modDevice.LedIP, "宸ヤ綅:" + modDevice.StationNum, "鍏ュ簱涓� " + $"鐢宠鍌ㄤ綅鍦板潃:{strMsg}", "鎵樼洏鍙�:" + palletVal); + + var ledDevice = PLCTaskAction.plcDevices.First(m => m.StationNum == modDevice.StationNum && m.IsDelete == false && m.DeviceType == DeviceTypeEnum.Business); + ledText += $"浠诲姟绫诲瀷:{taskInfo.TaskType.GetDescription()}\n\n"; + ledText += $"浠诲姟鍙�:{taskInfo.TaskNo}\n"; + ledText += $"鎵樼洏鍙�:{taskInfo.PalletNo}\n\n"; + ledText += $"璧峰浣�:{taskInfo.StartRoadway + " " + taskInfo.StartLocate}\n"; + ledText += $"鐩爣浣�:{taskInfo.EndRoadway + " " + taskInfo.EndLocate}"; + LedDisplay(modDevice.LedIP, ledText); } } else { // 鐢宠鍌ㄤ綅澶辫触锛丩ED鏄剧ず Log.Error(string.Format($"鐢宠鍌ㄤ綅澶辫触:{strMsg},璇诲啓plc閿欒")); + // led鏄剧ず鍐呭 + var ledDevice = PLCTaskAction.plcDevices.First(m => m.StationNum == modDevice.StationNum && m.IsDelete == false && m.DeviceType == DeviceTypeEnum.Business); + ledText += $"鐢宠鍏ュ簱澶辫触\n\n"; + ledText += $"{strMsg}\n"; + LedDisplay(modDevice.LedIP, ledText); } } @@ -1211,7 +1246,7 @@ break; } - // 杞崲鐩爣宸ヤ綅鎺掑垪灞� + // 杞崲鐩爣宸ヤ綅鎺掑垪灞� 03010301 var paiVal = PLCCommon.GetDjAdress(modTask.EndRoadway.Substring(1, 2), endLocate.Substring(0, 2), endLocate.Substring(6, 2)); string pai = paiVal.ToString(); string lie = int.Parse(endLocate.Substring(2, 2)).ToString(); @@ -1350,7 +1385,15 @@ modDevice.LedIP = _db.Queryable<WcsDevice>().Where(w => w.StationNum == taskInfo.EndLocate).Select(s => s.LedIP).First(); // led鏄剧ず鍐呭 - LedDisplay(modDevice.LedIP, "鍒拌揪宸ヤ綅:" + modDevice.StationNum, "鍑哄簱瀹屾垚 " + $"鍌ㄤ綅鍦板潃锛歿modInsertTaskMonitor.StartLocat}", "鎵樼洏鍙�:" + palletVal); + // 鏍规嵁鐩爣宸ヤ綅鍙疯幏鍙栧搴旂殑LEDIP鍦板潃 + var ledDevice = PLCTaskAction.plcDevices.First(m => m.StationNum == modDevice.StationNum && m.IsDelete == false && m.DeviceType == DeviceTypeEnum.Business && m.PlcId == modDevice.PlcId); + + ledText += $"鍑哄簱瀹屾垚\n\n"; + ledText += $"浠诲姟鍙�:{taskInfo.TaskNo}\n"; + ledText += $"鎵樼洏鍙�:{taskInfo.PalletNo}\n\n"; + ledText += $"璧峰浣�:{taskInfo.StartRoadway + " " + taskInfo.StartLocate}\n"; + ledText += $"鐩爣浣�:{taskInfo.EndRoadway + " " + taskInfo.EndLocate}"; + LedDisplay(ledDevice.LedIP, ledText); } // 鍙嶉WMS鍑哄簱瀹屾垚 //TaskReques taskReques = new TaskReques(); @@ -1428,8 +1471,14 @@ // 閫氱煡浠诲姟鐣岄潰浠诲姟宸插瓨鍦ㄦ洿鏂� 璇锋洿鏂扮晫闈� HubUtil.PublicTaskMonitor(modInsertTaskMonitor.Adapt<WcsTaskMonitorOutput>()); // led鏄剧ず鍐呭 - modDevice.LedIP = _db.Queryable<WcsDevice>().Where(w => w.StationNum == modTask.EndLocate).Select(s => s.LedIP).First(); - LedDisplay(modDevice.LedIP, "宸ヤ綅:" + modTask.StartLocate, $"鎷i�夊畬鎴愶紝鎵樼洏绂诲紑宸ヤ綅", "鎵樼洏鍙�:" + modTask.PalletNo); + var ledDevice = PLCTaskAction.plcDevices.First(m => m.StationNum == modDevice.StationNum && m.IsDelete == false && m.DeviceType == DeviceTypeEnum.Business && m.PlcId == modDevice.PlcId); + + ledText += $"鎷i�夊畬鎴愶紝鎵樼洏绂诲紑宸ヤ綅\n\n"; + ledText += $"浠诲姟鍙�:{modTask.TaskNo}\n"; + ledText += $"鎵樼洏鍙�:{modTask.PalletNo}\n\n"; + ledText += $"璧峰浣�:{modTask.StartRoadway + " " + modTask.StartLocate}\n"; + ledText += $"鐩爣浣�:{modTask.EndRoadway + " " + modTask.EndLocate}"; + LedDisplay(ledDevice.LedIP, ledText); } #endregion } @@ -2026,6 +2075,21 @@ } } + private static void LedDisplay(string ip,string text) + { + try + { + LedDll Led = new LedDll(); + Led.ConsoleLeds(ip, text); + // 璁剧疆瀹炰緥 + //Led.ConsoleLeds("10.18.51.238", $"浠诲姟绫诲瀷:{TaskTypeEnum.Move.GetDescription()}\n\n浠诲姟鍙�:TK2024102100001\n鎵樼洏鍙�:LN000145\n\n璧峰浣�:033\n鐩爣浣�:R01-02010102"); + } + catch (Exception ex) + { + Log.Error(ex.Message); + } + } + private static void Test(WcsDeviceDto modDevice) { //鍐欐娴嬭瘯璇籹tring -- Gitblit v1.8.0