From 696b87e0f494eff98e1646fbde133430f22b1543 Mon Sep 17 00:00:00 2001
From: IPC-610 <IPC-610@DESKTOP-6LEOOS3>
Date: 星期日, 20 十月 2024 18:48:44 +0800
Subject: [PATCH] bug修复
---
Admin.NET/WCS.Application/Hub/PlcHub.cs | 126 ++++++++++++++++++++++++++++++++++++++++--
1 files changed, 120 insertions(+), 6 deletions(-)
diff --git a/Admin.NET/WCS.Application/Hub/PlcHub.cs b/Admin.NET/WCS.Application/Hub/PlcHub.cs
index 1075892..a7caaa5 100644
--- a/Admin.NET/WCS.Application/Hub/PlcHub.cs
+++ b/Admin.NET/WCS.Application/Hub/PlcHub.cs
@@ -1,5 +1,6 @@
锘縰sing Furion.InstantMessaging;
using Microsoft.AspNetCore.SignalR;
+using WCS.Application.Entity;
namespace WCS.Application;
@@ -11,10 +12,12 @@
{
private readonly IHubContext<PlcHub, IPlcHub> _plcHubContext;
private readonly SysConfigService _sysConfigService;
- public PlcHub(IHubContext<PlcHub, IPlcHub> plcHubContext, SysConfigService sysConfigService)
+ private readonly SqlSugarRepository<WcsCheckTask> _wcsCheckTaskRep;
+ public PlcHub(IHubContext<PlcHub, IPlcHub> plcHubContext, SysConfigService sysConfigService, SqlSugarRepository<WcsCheckTask> wcsCheckTaskRep)
{
_plcHubContext = plcHubContext;
_sysConfigService = sysConfigService;
+ _wcsCheckTaskRep = wcsCheckTaskRep;
}
/// <summary>
/// 涓嬪彂PLC杩炴帴鐘舵��
@@ -68,6 +71,26 @@
{
PLCTaskAction.boDemo = context.BoDemo.Value;
+ if (PLCTaskAction.boDemo)
+ {
+ //鍒ゆ柇鍒嗘嫞鐮佸灈鏈夋病鏈夌粦瀹氫换鍔�
+ var checkTask = await _wcsCheckTaskRep.Context.Queryable<WcsCheckTask>().Where(w => w.Status == "1" && w.RoboatType == PLCTypeEnum.RobotPalletizer).ToListAsync();
+ if (checkTask.Count > 0)
+ {
+ PLCTaskAction.boDemo = false;
+ await _plcHubContext.Clients.All.UpdateService(
+ new PLCServiceModel()
+ {
+ BoRunningState = PLCTaskAction.boRunningState,
+ BoRefresh = PLCTaskAction.boRefresh,
+ BoOffline = PLCTaskAction.boOffline,
+ BoDemo = PLCTaskAction.boDemo,
+ BoDrumReversal = PLCTaskAction.boDrumReversal,
+ Error = "鍒嗘嫞鐮佸灈宸茬粦瀹氫换鍔★紝涓嶆敮鎸佸紑鍚紨绀烘ā寮忥紒"
+ });
+ return;
+ }
+ }
//PLC杩炴帴
var plcStackeConn = PLCTaskAction.listPlcConn.First(m => m.PlcIP == "10.18.51.120");
if (plcStackeConn.Connected)
@@ -76,16 +99,60 @@
var ret = plcStackeConn.SetPlcDBValue(PLCDataTypeEnum.Bit, "DB119", "0", PLCTaskAction.boDemo == true ? "1" : "0");
if (ret.IsSucceed)
{
- await _sysConfigService.UpdateConfigValue("sys_demo", context.BoDemo.Value);
+ if (PLCTaskAction.boDemo)
+ {
+ // 鍐欏叆plc鎶撶鍝佺
+ var rett = plcStackeConn.SetPlcDBValue(PLCDataTypeEnum.Short, "DB111", "0", "1");
+ if (rett.IsSucceed)
+ {
+ await _sysConfigService.UpdateConfigValue("sys_demo", context.BoDemo.Value);
+ }
+ }
+ else
+ {
+ var rett = plcStackeConn.SetPlcDBValue(PLCDataTypeEnum.Short, "DB111", "0", "0");
+ if (rett.IsSucceed)
+ {
+ await _sysConfigService.UpdateConfigValue("sys_demo", context.BoDemo.Value);
+ }
+ }
}
else
{
PLCTaskAction.boDemo = !PLCTaskAction.boDemo;
+
+ await _plcHubContext.Clients.All.UpdateService(
+ new PLCServiceModel()
+ {
+ BoRunningState = PLCTaskAction.boRunningState,
+ BoRefresh = PLCTaskAction.boRefresh,
+ BoOffline = PLCTaskAction.boOffline,
+ BoDemo = PLCTaskAction.boDemo,
+ BoDrumReversal = PLCTaskAction.boDrumReversal,
+ BoOutLock=PLCTaskAction.boOutLock,
+ BoEnterLock=PLCTaskAction.boEnterLock,
+ Error = "涓嶱CL浜や簰澶辫触锛屾搷浣滃け璐ワ紒"
+ });
+ return;
}
}
else
{
PLCTaskAction.boDemo = !PLCTaskAction.boDemo;
+
+ await _plcHubContext.Clients.All.UpdateService(
+ new PLCServiceModel()
+ {
+ BoRunningState = PLCTaskAction.boRunningState,
+ BoRefresh = PLCTaskAction.boRefresh,
+ BoOffline = PLCTaskAction.boOffline,
+ BoDemo = PLCTaskAction.boDemo,
+ BoDrumReversal = PLCTaskAction.boDrumReversal,
+ BoOutLock = PLCTaskAction.boOutLock,
+ BoEnterLock = PLCTaskAction.boEnterLock,
+ Error = "PCL鏈繛鎺ワ紝鎿嶄綔澶辫触锛�"
+ });
+ return;
}
}
//婊氱瓛鍙嶈浆
@@ -106,27 +173,74 @@
else
{
PLCTaskAction.boDrumReversal = !PLCTaskAction.boDrumReversal;
+
+ await _plcHubContext.Clients.All.UpdateService(
+ new PLCServiceModel()
+ {
+ BoRunningState = PLCTaskAction.boRunningState,
+ BoRefresh = PLCTaskAction.boRefresh,
+ BoOffline = PLCTaskAction.boOffline,
+ BoDemo = PLCTaskAction.boDemo,
+ BoDrumReversal = PLCTaskAction.boDrumReversal,
+ BoOutLock=PLCTaskAction.boOutLock,
+ BoEnterLock=PLCTaskAction.boEnterLock,
+ Error = "涓嶱CL浜や簰澶辫触锛屾搷浣滃け璐ワ紒"
+ });
+ return;
}
}
- else
+ else
{
PLCTaskAction.boDrumReversal = !PLCTaskAction.boDrumReversal;
+
+ await _plcHubContext.Clients.All.UpdateService(
+ new PLCServiceModel()
+ {
+ BoRunningState = PLCTaskAction.boRunningState,
+ BoRefresh = PLCTaskAction.boRefresh,
+ BoOffline = PLCTaskAction.boOffline,
+ BoDemo = PLCTaskAction.boDemo,
+ BoDrumReversal = PLCTaskAction.boDrumReversal,
+ BoOutLock = PLCTaskAction.boOutLock,
+ BoEnterLock = PLCTaskAction.boEnterLock,
+ Error = "PCL鏈繛鎺ワ紝鎿嶄綔澶辫触锛�"
+ });
+ return;
}
}
- await _plcHubContext.Clients.All.UpdateService(new PLCServiceModel() { BoRunningState = PLCTaskAction.boRunningState, BoRefresh = PLCTaskAction.boRefresh, BoOffline = PLCTaskAction.boOffline, BoDemo = PLCTaskAction.boDemo, BoDrumReversal = PLCTaskAction.boDrumReversal });
+ //鍑哄簱閿佸畾
+ if (context.BoOutLock.HasValue)
+ {
+ PLCTaskAction.boOutLock = context.BoOutLock.Value;
+ await _sysConfigService.UpdateConfigValue("sys_BoOutLock", context.BoOutLock.Value);
+ }
+ //鍏ュ簱閿佸畾
+ if (context.BoEnterLock.HasValue)
+ {
+ PLCTaskAction.boEnterLock = context.BoEnterLock.Value;
+ await _sysConfigService.UpdateConfigValue("sys_BoEnterLock", context.BoEnterLock.Value);
+ }
+ await _plcHubContext.Clients.All.UpdateService(new PLCServiceModel() { BoRunningState = PLCTaskAction.boRunningState, BoRefresh = PLCTaskAction.boRefresh, BoOffline = PLCTaskAction.boOffline, BoDemo = PLCTaskAction.boDemo, BoDrumReversal = PLCTaskAction.boDrumReversal, BoOutLock = PLCTaskAction.boOutLock, BoEnterLock = PLCTaskAction.boEnterLock });
}
}
public class PLCServiceModel
{
public bool? BoRunningState { get; set; }
-
public bool? BoOffline { get; set; }
-
public bool? BoRefresh { get; set; }
public bool? BoDemo { get; set; }
public bool? BoDrumReversal { get; set; }
+
+ public bool? BoOutLock { get; set; }
+
+ public bool? BoEnterLock { get; set; }
+
+ /// <summary>
+ /// 閿欒淇℃伅
+ /// </summary>
+ public string Error { get; set; }
}
\ No newline at end of file
--
Gitblit v1.8.0