From d37d5a268555d0fb09719a8631bdbd0bad2318f8 Mon Sep 17 00:00:00 2001
From: hwh <332078369@qq.com>
Date: 星期四, 19 九月 2024 11:11:14 +0800
Subject: [PATCH] 工作台绑定结束工位
---
Admin.NET/WCS.Application/PLC/PLCService.cs | 127 +++++++++++++++++------------------------
1 files changed, 53 insertions(+), 74 deletions(-)
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())
--
Gitblit v1.8.0