From f3d321e5443ccae614fbf23b44e026adf24f8d61 Mon Sep 17 00:00:00 2001 From: CZ Date: Sat, 14 Sep 2024 18:13:14 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E4=BA=8F=E7=94=B5=E7=94=B5?= =?UTF-8?q?=E6=B1=A0=E5=8C=85=E5=92=8C=E9=A3=8E=E6=89=87=E5=BC=80=E5=85=B3?= =?UTF-8?q?=E7=8A=B6=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Service/MyTask/FanChangeTask.cs | 32 ++++++++++--- Service/MyTask/UpdateDownBatteryInfoTask.cs | 53 ++++++++++++++++++--- Service/Plc/Client/PlcMgr.cs | 18 +++++++ Service/Plc/Msg/PlcToHost.cs | 6 ++- 4 files changed, 93 insertions(+), 16 deletions(-) diff --git a/Service/MyTask/FanChangeTask.cs b/Service/MyTask/FanChangeTask.cs index 82ba3be..c40c450 100644 --- a/Service/MyTask/FanChangeTask.cs +++ b/Service/MyTask/FanChangeTask.cs @@ -34,21 +34,39 @@ public class FanChangeTask : ITask return 1000 * 3; } - /// 0:无状态 - /// 1000:已全部打开 - /// 1010:已全部关闭 + + /// 1000:打开右侧,关闭左侧 + /// 1001:打开左侧,关闭右侧 + /// 1002:全部打开 + /// 1003:全部关闭 public void Handle() { try { - int count = _binInfoRepository.GetCount(i => i.ChargeStatus == 1); - if (count > 0) + int countL = _binInfoRepository.GetCount(i => + i.ChargeStatus == 1 && Convert.ToInt32(i.No) >= 1 && Convert.ToInt32(i.No) <= 8); + int countR = _binInfoRepository.GetCount(i => + i.ChargeStatus == 1 && Convert.ToInt32(i.No) >= 11 && Convert.ToInt32(i.No) <= 18); + + if (countL > 0 && countR <= 0) + { + if (PlcMgr.ExhaustFanStatusRadar() != 1000) + PlcMgr.AirBlowerControl(1000); + } + else if (countL <= 0 && countR > 0) + { + if (PlcMgr.ExhaustFanStatusRadar() != 1001) + PlcMgr.AirBlowerControl(1001); + } + else if (countL > 0 && countR > 0) { - PlcMgr.AirBlowerControl(1000); + if (PlcMgr.ExhaustFanStatusRadar() != 1002) + PlcMgr.AirBlowerControl(1002); } else { - PlcMgr.AirBlowerControl(1010); + if (PlcMgr.ExhaustFanStatusRadar() != 1003) + PlcMgr.AirBlowerControl(1003); } } catch (Exception e) diff --git a/Service/MyTask/UpdateDownBatteryInfoTask.cs b/Service/MyTask/UpdateDownBatteryInfoTask.cs index c0536c4..f978b35 100644 --- a/Service/MyTask/UpdateDownBatteryInfoTask.cs +++ b/Service/MyTask/UpdateDownBatteryInfoTask.cs @@ -42,18 +42,56 @@ public class UpdateDownBatteryInfoTask : ITask /// public void Handle() { - #region 更新换下电池 - + var listSwapOrderBattery = + _swapOrderBatteryRepository.QueryListByClause(i => i.DownBatteryNo == "-1" && i.DownBatterySoc == -1); + if (listSwapOrderBattery.Count > 0) + { + string SwapOrderSn = listSwapOrderBattery[listSwapOrderBattery.Count - 1].SwapOrderSn; + //查询两个仓位 + var SwapOrderBatteryInfo1 = listSwapOrderBattery[listSwapOrderBattery.Count - 1]; + var SwapOrderBatteryInfo2 = listSwapOrderBattery[listSwapOrderBattery.Count - 2]; + + var lstBinInfo = _BinInfoRepository.QueryListByClause(i => i.Exists == 1 + && + (i.No == SwapOrderBatteryInfo1.DownBatteryBinNo + .ToString() || + i.No == SwapOrderBatteryInfo2.DownBatteryBinNo + .ToString()) + && i.Soc > 0 + /*&& !string.IsNullOrEmpty(i.BatteryNo)*/ + &&i.BatteryNo!="-1"); + if (lstBinInfo.Count >= 2) //有换电电池包编码需要更新 + { + var BinInfo0 = lstBinInfo.Where(i => i.No == SwapOrderBatteryInfo1.DownBatteryBinNo.ToString()).ToList()[0]; + var BinInfo1 = lstBinInfo.Where(i => i.No == SwapOrderBatteryInfo2.DownBatteryBinNo.ToString()).ToList()[0]; + + + _swapOrderBatteryRepository.Update(i =>new SwapOrderBattery() + { + DownBatterySoc = BinInfo0.Soc, + DownBatteryNo = BinInfo0.BatteryNo + }, + i => i.SwapOrderSn.ToString() == SwapOrderBatteryInfo1.SwapOrderSn + &&i.DownBatteryBinNo==SwapOrderBatteryInfo1.DownBatteryBinNo); + + + _swapOrderBatteryRepository.Update(i => new SwapOrderBattery() + { + DownBatterySoc = BinInfo1.Soc, + DownBatteryNo = BinInfo1.BatteryNo + }, i => i.SwapOrderSn.ToString() == SwapOrderBatteryInfo2.SwapOrderSn&&i.DownBatteryBinNo==SwapOrderBatteryInfo2.DownBatteryBinNo); + } + } #endregion - - try + + /*try { List batterys = _swapOrderBatteryRepository.QueryListByClause( - i => (i.DownBatteryNo == null || i.DownBatterySoc<0) && i.DownBatteryBinNo != null); + i => (i.DownBatteryNo == null || i.DownBatterySoc < 0) && i.DownBatteryBinNo != null); if (batterys.Count <= 0) @@ -75,7 +113,8 @@ public class UpdateDownBatteryInfoTask : ITask { continue; } - if (info.Soc == null || info.Soc <=0) + + if (info.Soc == null || info.Soc <= 0) { continue; } @@ -96,7 +135,7 @@ public class UpdateDownBatteryInfoTask : ITask catch (Exception e) { Log.Error($" UpdateDownBatteryInfoTask err e={e}"); - } + }*/ } public bool Stoped() diff --git a/Service/Plc/Client/PlcMgr.cs b/Service/Plc/Client/PlcMgr.cs index f4a5231..f638fd6 100644 --- a/Service/Plc/Client/PlcMgr.cs +++ b/Service/Plc/Client/PlcMgr.cs @@ -446,4 +446,22 @@ public class PlcMgr return false; } } + /// + /// 1000:右侧打开,左侧关闭 + /// 1001:右侧关闭,左侧打开 + /// 1002:两侧全部打开 + /// 1003:两侧全部关闭 + /// + /// + public static ushort ExhaustFanStatusRadar() + { + if ((DateTime.Now - DataValidityTime).Seconds <= DataTimeSeconds) + { + return PlcToHostData.ExhaustFanStatus.Value; + } + else + { + return 0; + } + } } \ No newline at end of file diff --git a/Service/Plc/Msg/PlcToHost.cs b/Service/Plc/Msg/PlcToHost.cs index ca2b00a..c6e5170 100644 --- a/Service/Plc/Msg/PlcToHost.cs +++ b/Service/Plc/Msg/PlcToHost.cs @@ -52,8 +52,10 @@ namespace Service.Plc.Msg /// /// 排风扇状态 /// 0:无状态 - /// 1000:已全部打开 - /// 1010:已全部关闭 + /// 1000:右侧打开,左侧关闭 + /// 1001:右侧关闭,左侧打开 + /// 1002:两侧全部打开 + /// 1003:两侧全部关闭 /// public ModbusProperty ExhaustFanStatus { get; set; } = new(40209); ///