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);
///