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