水冷机更改提交

master
CZ 2 months ago
parent bb6c49f185
commit 9d3d161a8d

@ -43,105 +43,159 @@ public class HeartManagementTask : ITask
{
if (waterCoolClient.Connected)
{
while (true)
if (string.IsNullOrWhiteSpace(waterCoolClient.ChargeSn))
{
if (string.IsNullOrWhiteSpace(waterCoolClient.ChargeSn))
{
var dictionary =
StaticStationInfo.RelationMap.Values.ToDictionary(i => i.WaterCoolerCode,
i => i.ChargeCode);
if(dictionary.Count!=0)
waterCoolClient.ChargeSn = dictionary[waterCoolClient.Sn];
}
var chargerClient = ClientMgr.GetBySn(waterCoolClient.ChargeSn);
if (chargerClient == null)
{
return;
}
var dictionary =
StaticStationInfo.RelationMap.Values.ToDictionary(i => i.WaterCoolerCode,
i => i.ChargeCode);
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)
{
//Tmin<=12℃且Tmean<=15℃
if (!waterCoolClient.HortStrategyFlag && chargerClient.BatteryPackDataVoltage
?.CellTemperatureMax <=
15
&& chargerClient.BatteryPackDataVoltage
?.CellTemperatureMin <=
12)
if (waterCoolClient.WaterCoolStatus.ComeBackTemperature>=10)
{
waterCoolClient.HortStrategyFlag = true;
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.HortStrategyFlag && (chargerClient.BatteryPackDataVoltage?.CellTemperatureMax >= 20
|| chargerClient.BatteryPackDataVoltage?.CellTemperatureMin >= 17))
if (waterCoolClient.WaterCoolStatus.ComeBackTemperature>=7&&waterCoolClient.WaterCoolStatus.ComeBackTemperature<=10)
{
waterCoolClient.HortStrategyFlag = false;
waterCoolClient.msg.SetTemperature = 0;
waterCoolClient.msg.Mode = 0;
//自循环
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
|| chargerClient.BatteryPackDataVoltage?.CellTemperatureMin >= 17))
{
waterCoolClient.HortStrategyFlag = false;
waterCoolClient.msg.SetTemperature = 0;
waterCoolClient.msg.Mode = 0;
}
//开启制冷策略
if (!waterCoolClient.ColdStrategyFlag && chargerClient.BatteryPackDataVoltage?.CellTemperatureMax >=
//开启制冷策略
if (!waterCoolClient.ColdStrategyFlag && chargerClient.BatteryPackDataVoltage?.CellTemperatureMax >=
28
&& chargerClient.BatteryPackDataVoltage?.CellTemperatureMin >=
24)
{
waterCoolClient.ColdStrategyFlag = true;
}
{
waterCoolClient.ColdStrategyFlag = true;
}
if (waterCoolClient.ColdStrategyFlag &&
(chargerClient.BatteryPackDataVoltage?.CellTemperatureMax <= 28
|| chargerClient.BatteryPackDataVoltage?.CellTemperatureMin <= 22))
{
waterCoolClient.msg.SetTemperature = 0;
waterCoolClient.msg.Mode = 0;
waterCoolClient.ColdStrategyFlag = false;
}
if (waterCoolClient.ColdStrategyFlag &&
(chargerClient.BatteryPackDataVoltage?.CellTemperatureMax <= 28
|| chargerClient.BatteryPackDataVoltage?.CellTemperatureMin <= 22))
{
waterCoolClient.msg.SetTemperature = 0;
waterCoolClient.msg.Mode = 0;
waterCoolClient.ColdStrategyFlag = false;
}
//加热模式
if (waterCoolClient.HortStrategyFlag)
{
waterCoolClient.msg.Mode = 2;
waterCoolClient.msg.SetTemperature = 45;
}
//加热模式
if (waterCoolClient.HortStrategyFlag)
{
waterCoolClient.msg.Mode = 2;
waterCoolClient.msg.SetTemperature = 45;
}
if (waterCoolClient.ColdStrategyFlag)
if (waterCoolClient.ColdStrategyFlag)
{
//若前一个模式为关机模式或制热模式或自循环模式则请求TMS进行自循环模式若前一个模式为制冷模式则请求TMS进行制冷模式
if (waterCoolClient.WaterCoolStatus?.ComeBackTemperature > 7 &&
waterCoolClient.WaterCoolStatus?.ComeBackTemperature < 10)
{
//若前一个模式为关机模式或制热模式或自循环模式则请求TMS进行自循环模式若前一个模式为制冷模式则请求TMS进行制冷模式
if (waterCoolClient.WaterCoolStatus?.ComeBackTemperature > 7 &&
waterCoolClient.WaterCoolStatus?.ComeBackTemperature < 10)
Log.Info("7< <10");
if (waterCoolClient.WaterCoolStatus?.TmsStatus != 1)
{
Log.Info("7< <10");
if (waterCoolClient.WaterCoolStatus?.TmsStatus != 1)
{
waterCoolClient.msg.Mode = 3;
}
else
{
waterCoolClient.msg.Mode = 1;
waterCoolClient.msg.SetTemperature = 10;
}
waterCoolClient.msg.Mode = 3;
}
else if (waterCoolClient.WaterCoolStatus?.ComeBackTemperature >= 10)
else
{
Log.Info(">= 10");
// 进水口温度>=10℃则请求 TMS进行冷却
waterCoolClient.msg.Mode = 1;
waterCoolClient.msg.SetTemperature = 10;
}
else if (waterCoolClient.WaterCoolStatus?.ComeBackTemperature <= 7)
{
Log.Info("<=7");
waterCoolClient.msg.Mode = 3;
}
}
}
else
{
//TODO:: 停止需要干什么事情
}
else if (waterCoolClient.WaterCoolStatus?.ComeBackTemperature >= 10)
{
Log.Info(">= 10");
// 进水口温度>=10℃则请求 TMS进行冷却
waterCoolClient.msg.Mode = 1;
waterCoolClient.msg.SetTemperature = 10;
}
else if (waterCoolClient.WaterCoolStatus?.ComeBackTemperature <= 7)
{
Log.Info("<=7");
waterCoolClient.msg.Mode = 3;
}
}*/
}
}
}

@ -34,31 +34,43 @@ 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()
@ -190,7 +202,7 @@ public class WaterCoolClient : TcpClient<IBaseHandler, Decoder, Encoder>
Thread.Sleep(300);
return IsClose;
}
/// <summary>
/// 高压请求
/// </summary>

@ -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