水冷机更改提交

master
CZ 2 months ago
parent bb6c49f185
commit 9d3d161a8d

@ -42,36 +42,97 @@ public class HeartManagementTask : ITask
foreach (var waterCoolClient in waterCoolClients.Values)
{
if (waterCoolClient.Connected)
{
while (true)
{
if (string.IsNullOrWhiteSpace(waterCoolClient.ChargeSn))
{
var dictionary =
StaticStationInfo.RelationMap.Values.ToDictionary(i => i.WaterCoolerCode,
i => i.ChargeCode);
if(dictionary.Count!=0)
if (dictionary.Count != 0)
waterCoolClient.ChargeSn = dictionary[waterCoolClient.Sn];
}
var chargerClient = ClientMgr.GetBySn(waterCoolClient.ChargeSn);
if (chargerClient == null)
{
return;
}
if (!waterCoolClient.StopFlag)
if (chargerClient.IsCharged)//充电状态
{
//充电冷却 Tmax>=28℃且Tmean>=24℃
if (chargerClient.BatteryPackDataVoltage?.CellTemperatureMax <= 28
&& chargerClient.BatteryPackDataVoltage?.CellTemperatureAverage >= 24)
{
if (waterCoolClient.WaterCoolStatus.ComeBackTemperature>=10)
{
waterCoolClient.ColdStrategyFlag = true;
waterCoolClient.HortStrategyFlag = false;
waterCoolClient.LoopStrategyFlag = false;
waterCoolClient.msg.BMSState = 1;
waterCoolClient.msg.ChargState = 1;
Thread.Sleep(3000);
waterCoolClient.msg.HighTension = 0;
Thread.Sleep(3000);
waterCoolClient.msg.Mode = 1;
}
if (waterCoolClient.WaterCoolStatus.ComeBackTemperature>=7&&waterCoolClient.WaterCoolStatus.ComeBackTemperature<=10)
{
//Tmin<=12℃且Tmean<=15℃
if (!waterCoolClient.HortStrategyFlag && chargerClient.BatteryPackDataVoltage
?.CellTemperatureMax <=
15
&& chargerClient.BatteryPackDataVoltage
?.CellTemperatureMin <=
12)
//自循环
if(waterCoolClient.msg.Mode ==0||waterCoolClient.msg.Mode==2||waterCoolClient.msg.Mode==3)
{
waterCoolClient.ColdStrategyFlag = false;
waterCoolClient.HortStrategyFlag = false;
waterCoolClient.LoopStrategyFlag = true;
waterCoolClient.msg.BMSState = 1;
waterCoolClient.msg.ChargState = 1;
Thread.Sleep(3000);
waterCoolClient.msg.HighTension = 0;
Thread.Sleep(3000);
waterCoolClient.msg.Mode = 1;
}
else //制冷模式
{
waterCoolClient.ColdStrategyFlag = true;
waterCoolClient.HortStrategyFlag = false;
waterCoolClient.LoopStrategyFlag = false;
waterCoolClient.msg.BMSState = 1;
waterCoolClient.msg.ChargState = 1;
Thread.Sleep(3000);
waterCoolClient.msg.HighTension = 0;
Thread.Sleep(3000);
waterCoolClient.msg.Mode = 1;
}
}
if (waterCoolClient.WaterCoolStatus.ComeBackTemperature<=7)
{
waterCoolClient.ColdStrategyFlag = false;
waterCoolClient.HortStrategyFlag = true;
waterCoolClient.LoopStrategyFlag = false;
waterCoolClient.msg.BMSState = 1;
waterCoolClient.msg.ChargState = 1;
Thread.Sleep(3000);
waterCoolClient.msg.HighTension = 0;
Thread.Sleep(3000);
waterCoolClient.msg.Mode = 2;
}
}
else//冷却停止
{
waterCoolClient.ColdStrategyFlag = false;
waterCoolClient.HortStrategyFlag = false;
waterCoolClient.LoopStrategyFlag = false;
waterCoolClient.msg.BMSState = 0;
waterCoolClient.msg.HighTension = 1;
waterCoolClient.msg.ChargState = 0;
Thread.Sleep(3000);
waterCoolClient.msg.Mode = 0;
}
if (waterCoolClient.HortStrategyFlag && (chargerClient.BatteryPackDataVoltage?.CellTemperatureMax >= 20
/*
if (waterCoolClient.HortStrategyFlag &&
(chargerClient.BatteryPackDataVoltage?.CellTemperatureMax >= 20
|| chargerClient.BatteryPackDataVoltage?.CellTemperatureMin >= 17))
{
waterCoolClient.HortStrategyFlag = false;
@ -134,14 +195,7 @@ public class HeartManagementTask : ITask
Log.Info("<=7");
waterCoolClient.msg.Mode = 3;
}
}
}
else
{
//TODO:: 停止需要干什么事情
}
}*/
}
}
}

@ -35,30 +35,42 @@ public class WaterCoolClient : TcpClient<IBaseHandler, Decoder, Encoder>
/// </summary>
public bool IsWaterCoolSend { get; set; } = true;
//上下电的时间
/// <summary>
///
/// 上下电的时间
/// </summary>
public DateTime? PowerChangeTime { get; set; }
//上下电的时间间隔(单位/s)
public int Interval = 15;
//停止标识
/// <summary>
/// 停止标识
/// </summary>
public bool StopFlag = true;
//制冷策略
/// <summary>
///制冷策略
/// </summary>
public bool ColdStrategyFlag = false;
//制热策略
/// <summary>
/// 制热策略
/// </summary>
public bool HortStrategyFlag = false;
/// <summary>
/// 自循环
/// </summary>
public bool LoopStrategyFlag = false;
/// <summary>
/// 消息
/// </summary>
public ModeMsg msg { get; set; } = new ModeMsg();
//水冷机sn
/// <summary>
/// 水冷机sn
/// </summary>
public string ChargeSn { get; set; }
private ILog Log()

@ -26,7 +26,6 @@ public class WaterCoolStatus : BaseMsg
/// 分辨率1 ℃/bit 偏移量40℃范围40℃~210℃ 类型测量255无效
/// </summary>
[Property(40, 8, PropertyReadConstant.Bit, 1, 0, 40)]
public sbyte GetOutTemperature { get; set; }
/// <summary>
@ -34,7 +33,6 @@ public class WaterCoolStatus : BaseMsg
/// 分辨率1 ℃/bit 偏移量40℃范围40℃~210℃ 类型测量255无效
/// </summary>
[Property(48, 8, PropertyReadConstant.Bit, 1, 0, 40)]
public sbyte ComeBackTemperature { get; set; }
/// <summary>

Loading…
Cancel
Save