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 ++++++++++++++++++++++++++++++--------- Admin.NET/WCS.Application/Util/HttpService.cs | 1 Admin.NET/WCS.Application/Util/LedDll.cs | 9 ++- Admin.NET/WCS.Application/PLC/PLCCommon.cs | 14 ++-- Admin.NET/WCS.Application/PLC/PLCTaskAction.cs | 14 +--- 5 files changed, 109 insertions(+), 47 deletions(-) diff --git a/Admin.NET/WCS.Application/PLC/PLCCommon.cs b/Admin.NET/WCS.Application/PLC/PLCCommon.cs index aef594d..1fe2a42 100644 --- a/Admin.NET/WCS.Application/PLC/PLCCommon.cs +++ b/Admin.NET/WCS.Application/PLC/PLCCommon.cs @@ -1,4 +1,5 @@ 锘縰sing Elastic.Clients.Elasticsearch.Tasks; +using Furion.Logging; using Microsoft.AspNetCore.SignalR; using RazorEngine.Compilation.ImpromptuInterface.Dynamic; using System; @@ -812,11 +813,11 @@ /// <summary> - /// 鏍规嵁鍌ㄤ綅鎺掕幏鍙栬泛鏈哄搴旂殑鍦板潃鎺� + /// 鏍规嵁鍌ㄤ綅鎺掕幏鍙栬泛鏈哄搴旂殑鍦板潃鎺�03010302 /// </summary> - /// <param name="road">鎺�</param> - /// <param name="pai">鎺�</param> - /// <param name="dept">娣卞害</param> + /// <param name="road">鎺�02</param> + /// <param name="pai">鎺�03</param> + /// <param name="dept">娣卞害02</param> /// <returns></returns> public static int GetDjAdress(string road, string pai, string dept) { @@ -844,11 +845,11 @@ { if (deptNum == 1) { - paiVal = 1; + paiVal = 2; } else { - paiVal = 2; + paiVal = 1; } } @@ -883,6 +884,7 @@ } if (paiVal == 0) { + Log.Error("鎺掕浆鎹㈠け璐�!"); throw new Exception("鎺掕浆鎹㈠け璐�"); } return paiVal; 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 diff --git a/Admin.NET/WCS.Application/PLC/PLCTaskAction.cs b/Admin.NET/WCS.Application/PLC/PLCTaskAction.cs index a60b447..83cf816 100644 --- a/Admin.NET/WCS.Application/PLC/PLCTaskAction.cs +++ b/Admin.NET/WCS.Application/PLC/PLCTaskAction.cs @@ -2,7 +2,9 @@ using DocumentFormat.OpenXml.Drawing; using Furion.Logging; using Microsoft.AspNetCore.SignalR; +using OfficeOpenXml.FormulaParsing.Excel.Functions.Text; using System; +//using WCS.Application.Util; namespace WCS.Application; public static class PLCTaskAction @@ -428,7 +430,7 @@ { var bl = false; int value = Convert.ToInt32(item.Value); - if (value == 0) + if (value <= 30) { bl = false; } @@ -444,16 +446,6 @@ HubUtil.PublicPosition(modInfo); UpdatePosition(modInfo); } - // liudl 娉ㄩ噴锛氬拰鐢垫皵宸ョ▼甯堢‘璁ら〉闈㈠睍绀轰氦浜掑瓧鍚庡惎鐢ㄣ�� - //var value = Convert.ToBoolean(item.Value); - //if (!value == modDevice.BoHaveItem) - //{ - // modDevice.BoHaveItem = value; - // //涓嬪彂鐘舵�� - // var modInfo = new PlcPositionInfo() { Type = modPlc.Type, StationNum = modDevice.StationNum.PadLeft(3,'0'), BoHaveItem = value }; - // HubUtil.PublicPosition(modInfo); - // UpdatePosition(modInfo); - //} } break; default: diff --git a/Admin.NET/WCS.Application/Util/HttpService.cs b/Admin.NET/WCS.Application/Util/HttpService.cs index 254908b..b471dc6 100644 --- a/Admin.NET/WCS.Application/Util/HttpService.cs +++ b/Admin.NET/WCS.Application/Util/HttpService.cs @@ -60,6 +60,7 @@ StartLocate = startLocat, PalletNo = palletNo, TaskNo = result.TaskList.TaskNo, + Levels = 999, EndLocate = result.TaskList.EndLocate, EndRoadway = result.TaskList.EndRoadway }; diff --git a/Admin.NET/WCS.Application/Util/LedDll.cs b/Admin.NET/WCS.Application/Util/LedDll.cs index 372a9fa..75ce53f 100644 --- a/Admin.NET/WCS.Application/Util/LedDll.cs +++ b/Admin.NET/WCS.Application/Util/LedDll.cs @@ -1030,25 +1030,28 @@ AreaRect.left = 0; AreaRect.top = 0; AreaRect.width = m_ledWidth; - AreaRect.height = 106; + AreaRect.height = m_ledHeight; + LedDll.LV_AddImageTextArea(hProgram, 0, 2, ref AreaRect, 1); // 鍖哄煙瀛椾綋鍙橀噺 鍙傛暟璁惧畾 LedDll.FONTPROP FontProp = new LedDll.FONTPROP();//鏂囧瓧灞炴�� FontProp.FontName = "瀹嬩綋"; - FontProp.FontSize = 20; + FontProp.FontSize = 16; FontProp.FontColor = LedDll.COLOR_RED; FontProp.FontBold = 1; + // 鍖哄煙瀛椾綋杩愯閫熷害 甯﹀叆鏂瑰紡 LedDll.PLAYPROP PlayProp = new LedDll.PLAYPROP(); PlayProp.InStyle = 0; PlayProp.DelayTime = 3; PlayProp.Speed = 2; + // 澶氭枃鏈尯鍩� 鐢ㄤ簬鏄剧ず鎵樼洏淇℃伅 - nResult = LedDll.LV_AddMultiLineTextToImageTextArea(hProgram, 0, 2, LedDll.ADDTYPE_STRING, m_text, ref FontProp, ref PlayProp, 0, 0); + nResult = LedDll.LV_AddMultiLineTextToImageTextArea(hProgram, 0, 2, LedDll.ADDTYPE_STRING, m_text, ref FontProp, ref PlayProp, 0, 1); // 鍙戦�佸埌LED灞忓箷 nResult = LedDll.LV_Send(ref CommunicationInfo, hProgram); -- Gitblit v1.8.0