ControlConfigView 控制参数使能的问题

This commit is contained in:
2026-04-17 17:49:58 +08:00
parent 57385cba9d
commit 0d2f47fe0e

View File

@@ -732,6 +732,10 @@ namespace OrpaonEMS.App.Services
Task.Run(() =>
{
double? lastSlaveNightTargetSoc = null;
bool? lastSlaveShouldCharge = null;
bool? lastSlaveInWeekendTime = null;
//判断状态是否正确
while (CurESChargInfo == ESChargInfo.Night_Slave)
{
@@ -759,7 +763,34 @@ namespace OrpaonEMS.App.Services
// OpenSolar();
//}
if (!IsInWeekendTime())
bool inWeekendTime = IsInWeekendTime();
var slaveNightTargetSoc = Math.Min(NightSlave_ToSlaveFullSoc, ConfigDataService.energyStorageRunConfig.BMSSocUpSignLimitValue);
bool shouldCharge = !inWeekendTime && SlaveClient.ClientInfo!.SOC < slaveNightTargetSoc;
if (lastSlaveNightTargetSoc == null
|| Math.Abs(lastSlaveNightTargetSoc.Value - slaveNightTargetSoc) > 0.0001
|| lastSlaveInWeekendTime == null
|| lastSlaveInWeekendTime.Value != inWeekendTime)
{
LogService.Info($"时间:{DateTime.Now}-【夜间充电目标】-模式:Night_Slave从储能SOC:{SlaveClient.ClientInfo!.SOC:0.##}配置目标SOC:{NightSlave_ToSlaveFullSoc:0.##}BMS上限:{ConfigDataService.energyStorageRunConfig.BMSSocUpSignLimitValue:0.##}采用目标SOC:{slaveNightTargetSoc:0.##},是否周末禁充:{inWeekendTime}");
lastSlaveNightTargetSoc = slaveNightTargetSoc;
lastSlaveInWeekendTime = inWeekendTime;
}
if (lastSlaveShouldCharge == null || lastSlaveShouldCharge.Value != shouldCharge)
{
if (shouldCharge)
{
LogService.Info($"时间:{DateTime.Now}-【夜间充电开始】-模式:Night_Slave从储能SOC:{SlaveClient.ClientInfo!.SOC:0.##}目标SOC:{slaveNightTargetSoc:0.##}");
}
else
{
LogService.Info($"时间:{DateTime.Now}-【夜间充电停止】-模式:Night_Slave从储能SOC:{SlaveClient.ClientInfo!.SOC:0.##}目标SOC:{slaveNightTargetSoc:0.##},是否周末禁充:{inWeekendTime}");
}
lastSlaveShouldCharge = shouldCharge;
}
if (!inWeekendTime)
{
//展示用
ManageRealPw = EsEleMeter4.AvePw - EsEleMeter1.AvePw;
@@ -767,7 +798,7 @@ namespace OrpaonEMS.App.Services
//循环执行方法
//从储能箱充满为止
if (SlaveClient.ClientInfo!.SOC < 90)
if (SlaveClient.ClientInfo!.SOC < slaveNightTargetSoc)
{
//主储能箱充电
SlaveClient.ServerCmd.CmdType = "Charg";
@@ -841,6 +872,10 @@ namespace OrpaonEMS.App.Services
Task.Run(() =>
{
double? lastMasterNightTargetSoc = null;
bool? lastMasterShouldCharge = null;
bool? lastMasterInWeekendTime = null;
//判断状态是否正确
while (CurESChargInfo == ESChargInfo.Night_Master)
{
@@ -868,7 +903,34 @@ namespace OrpaonEMS.App.Services
// OpenSolar();
//}
if (!IsInWeekendTime())
bool inWeekendTime = IsInWeekendTime();
var masterNightTargetSoc = Math.Min(NightMaster_ToMasterFullSoc, ConfigDataService.energyStorageRunConfig.BMSSocUpSignLimitValue);
bool shouldCharge = !inWeekendTime && MasterClient.ClientInfo!.SOC < masterNightTargetSoc;
if (lastMasterNightTargetSoc == null
|| Math.Abs(lastMasterNightTargetSoc.Value - masterNightTargetSoc) > 0.0001
|| lastMasterInWeekendTime == null
|| lastMasterInWeekendTime.Value != inWeekendTime)
{
LogService.Info($"时间:{DateTime.Now}-【夜间充电目标】-模式:Night_Master主储能SOC:{MasterClient.ClientInfo!.SOC:0.##}配置目标SOC:{NightMaster_ToMasterFullSoc:0.##}BMS上限:{ConfigDataService.energyStorageRunConfig.BMSSocUpSignLimitValue:0.##}采用目标SOC:{masterNightTargetSoc:0.##},是否周末禁充:{inWeekendTime}");
lastMasterNightTargetSoc = masterNightTargetSoc;
lastMasterInWeekendTime = inWeekendTime;
}
if (lastMasterShouldCharge == null || lastMasterShouldCharge.Value != shouldCharge)
{
if (shouldCharge)
{
LogService.Info($"时间:{DateTime.Now}-【夜间充电开始】-模式:Night_Master主储能SOC:{MasterClient.ClientInfo!.SOC:0.##}目标SOC:{masterNightTargetSoc:0.##}");
}
else
{
LogService.Info($"时间:{DateTime.Now}-【夜间充电停止】-模式:Night_Master主储能SOC:{MasterClient.ClientInfo!.SOC:0.##}目标SOC:{masterNightTargetSoc:0.##},是否周末禁充:{inWeekendTime}");
}
lastMasterShouldCharge = shouldCharge;
}
if (!inWeekendTime)
{
//展示用
ManageRealPw = EsEleMeter4.AvePw - EsEleMeter1.AvePw;
@@ -876,7 +938,7 @@ namespace OrpaonEMS.App.Services
//循环执行方法
//主储能箱充满为止
if (MasterClient.ClientInfo!.SOC < ConfigDataService.energyStorageRunConfig.BMSSocUpSignLimitValue)
if (MasterClient.ClientInfo!.SOC < masterNightTargetSoc)
{
//主储能箱充电
MasterClient.ServerCmd.CmdType = "Charg";
@@ -2838,7 +2900,8 @@ namespace OrpaonEMS.App.Services
//SetControlModel(ESChargInfo.Night_Master);
//主储能箱充满为止
if (MasterClient.ClientInfo!.SOC < ConfigDataService.energyStorageRunConfig.BMSSocUpSignLimitValue)
var masterNightTargetSoc = Math.Min(NightMaster_ToMasterFullSoc, ConfigDataService.energyStorageRunConfig.BMSSocUpSignLimitValue);
if (MasterClient.ClientInfo!.SOC < masterNightTargetSoc)
{
//主储能箱充电
MasterClient.ServerCmd.CmdType = "Charg";