Update Modbus tcp creation file and cleane the program.cs code
This commit is contained in:
parent
51b8dada6c
commit
97055b1749
|
|
@ -32,7 +32,7 @@ namespace InnovEnergy.App.GrowattCommunication;
|
||||||
|
|
||||||
public static class Program
|
public static class Program
|
||||||
{
|
{
|
||||||
private static readonly TimeSpan UpdateInterval = TimeSpan.FromSeconds(6);
|
private static readonly TimeSpan UpdateInterval = TimeSpan.FromSeconds(10);
|
||||||
private const UInt16 NbrOfFileToConcatenate = 15; // add this to config file
|
private const UInt16 NbrOfFileToConcatenate = 15; // add this to config file
|
||||||
private static UInt16 _fileCounter = 0;
|
private static UInt16 _fileCounter = 0;
|
||||||
//
|
//
|
||||||
|
|
@ -165,6 +165,10 @@ public static class Program
|
||||||
statusrecord.InverterRecord.BatteryOperatingMode.WriteLine(" = BatteryOperatingMode");
|
statusrecord.InverterRecord.BatteryOperatingMode.WriteLine(" = BatteryOperatingMode");
|
||||||
statusrecord.InverterRecord.OperatingMode.WriteLine(" = OperatingPriority"); // 30408 this the duration
|
statusrecord.InverterRecord.OperatingMode.WriteLine(" = OperatingPriority"); // 30408 this the duration
|
||||||
|
|
||||||
|
statusrecord.InverterRecord.ExportLimitationEnabled.WriteLine(" = ExportLimitationEnabled");
|
||||||
|
statusrecord.InverterRecord.ExportLimitationPowerRate.WriteLine(" = ExportLimitationPowerRate"); // 30408 this the duration
|
||||||
|
|
||||||
|
|
||||||
statusrecord.InverterRecord.FaultMainCode.WriteLine(" = FaultMainCode"); // 30408 this the duration
|
statusrecord.InverterRecord.FaultMainCode.WriteLine(" = FaultMainCode"); // 30408 this the duration
|
||||||
statusrecord.InverterRecord.FaultSubCode.WriteLine(" = FaultSubCode"); // 30408 this the duration
|
statusrecord.InverterRecord.FaultSubCode.WriteLine(" = FaultSubCode"); // 30408 this the duration
|
||||||
statusrecord.InverterRecord.WarningMainCode.WriteLine(" = WarningMainCode"); // 30408 this the duration
|
statusrecord.InverterRecord.WarningMainCode.WriteLine(" = WarningMainCode"); // 30408 this the duration
|
||||||
|
|
@ -352,12 +356,7 @@ public static class Program
|
||||||
var stateChanged = currentSalimaxState.Status != _prevSodiohomeAlarmState;
|
var stateChanged = currentSalimaxState.Status != _prevSodiohomeAlarmState;
|
||||||
var contentChanged = HasErrorsOrWarningsChanged(currentSalimaxState);
|
var contentChanged = HasErrorsOrWarningsChanged(currentSalimaxState);
|
||||||
var needsHeartbeat = (DateTime.Now - _lastHeartbeatTime).TotalSeconds >= HeartbeatIntervalSeconds;
|
var needsHeartbeat = (DateTime.Now - _lastHeartbeatTime).TotalSeconds >= HeartbeatIntervalSeconds;
|
||||||
Console.WriteLine($"subscribedNow={subscribedNow}");
|
|
||||||
Console.WriteLine($"_subscribedToQueue={_subscribedToQueue}");
|
|
||||||
Console.WriteLine($"stateChanged={stateChanged}");
|
|
||||||
Console.WriteLine($"contentChanged={contentChanged}");
|
|
||||||
Console.WriteLine($"needsHeartbeat={needsHeartbeat}");
|
|
||||||
Console.WriteLine($"s3Bucket null? {s3Bucket == null}");
|
|
||||||
|
|
||||||
if (s3Bucket == null)
|
if (s3Bucket == null)
|
||||||
{
|
{
|
||||||
|
|
@ -423,7 +422,7 @@ public static class Program
|
||||||
st.InverterRecord.EnableEmsCommunicationFailureTime = false;
|
st.InverterRecord.EnableEmsCommunicationFailureTime = false;
|
||||||
st.InverterRecord.EnableCommand = true;
|
st.InverterRecord.EnableCommand = true;
|
||||||
st.InverterRecord.ControlPermission = st.Config.ControlPermission;;
|
st.InverterRecord.ControlPermission = st.Config.ControlPermission;;
|
||||||
st.InverterRecord.MaxSoc = 100; //st.Config.MaxSoc;
|
// st.InverterRecord.MaxSoc = 100; //st.Config.MaxSoc;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static Dictionary<String, UInt16> ConvertToModbusRegisters(Object value, String outputType,
|
private static Dictionary<String, UInt16> ConvertToModbusRegisters(Object value, String outputType,
|
||||||
|
|
@ -488,12 +487,10 @@ public static class Program
|
||||||
var modbusData = new Dictionary<String, UInt16>();
|
var modbusData = new Dictionary<String, UInt16>();
|
||||||
|
|
||||||
// SYSTEM DATA
|
// SYSTEM DATA
|
||||||
var result1 =
|
var result1 = ConvertToModbusRegisters((status.Config.ModbusProtcolNumber * 10), "UInt16", 30001); // this to be updated to modbusTCP version
|
||||||
ConvertToModbusRegisters((status.Config.ModbusProtcolNumber * 10), "UInt16",
|
|
||||||
30001); // this to be updated to modbusTCP version
|
|
||||||
var result2 = ConvertToModbusRegisters(status.InverterRecord.SystemDateTime.ToUnixTime(), "UInt32", 30002);
|
var result2 = ConvertToModbusRegisters(status.InverterRecord.SystemDateTime.ToUnixTime(), "UInt32", 30002);
|
||||||
var result3 = ConvertToModbusRegisters(status.InverterRecord.SystemOperatingMode, "UInt16", 30004);
|
//var result3 = ConvertToModbusRegisters(status.InverterRecord.SystemOperatingMode, "UInt16", 30005);
|
||||||
var result17 = ConvertToModbusRegisters(status.InverterRecord.OperatingMode, "UInt16", 30005);
|
var result17 = ConvertToModbusRegisters(status.InverterRecord.OperatingMode, "UInt16", 30004);
|
||||||
|
|
||||||
// BATTERY SUMMARY (assuming single battery [0]) // this to be improved
|
// BATTERY SUMMARY (assuming single battery [0]) // this to be improved
|
||||||
|
|
||||||
|
|
@ -505,24 +502,29 @@ public static class Program
|
||||||
var result5 = ConvertToModbusRegisters((status.InverterRecord.Battery1Power.Value * 10), "Int32", 31006);
|
var result5 = ConvertToModbusRegisters((status.InverterRecord.Battery1Power.Value * 10), "Int32", 31006);
|
||||||
|
|
||||||
var result7 = ConvertToModbusRegisters((status.InverterRecord.MinSoc * 100), "UInt16", 31008);
|
var result7 = ConvertToModbusRegisters((status.InverterRecord.MinSoc * 100), "UInt16", 31008);
|
||||||
var result20 = ConvertToModbusRegisters((status.InverterRecord.ChargeCutoffSocVoltage * 100), "UInt16", 31009);
|
var result20 = ConvertToModbusRegisters((status.InverterRecord.MaxSoc * 100), "UInt16", 31009);
|
||||||
var result15 =
|
var result15 = ConvertToModbusRegisters((status.InverterRecord.Battery1Soh * 100), "UInt16", 31010);
|
||||||
ConvertToModbusRegisters((status.InverterRecord.Battery1Soh * 100), "UInt16", 310010);
|
|
||||||
var result16 = ConvertToModbusRegisters((status.InverterRecord.Battery1AmbientTemperature.Value * 100), "UInt16", 31011);
|
var result16 = ConvertToModbusRegisters((status.InverterRecord.Battery1AmbientTemperature.Value * 100), "UInt16", 31011);
|
||||||
var result21 = ConvertToModbusRegisters((status.InverterRecord.BatteryMaxChargingCurrent * 10), "UInt16", 31012);
|
var result21 = ConvertToModbusRegisters((status.InverterRecord.BatteryMaxChargingCurrent * 10), "UInt16", 31012);
|
||||||
var result22 = ConvertToModbusRegisters((status.InverterRecord.BatteryMaxDischargingCurrent * 10), "UInt16", 31013);
|
var result22 = ConvertToModbusRegisters((status.InverterRecord.BatteryMaxDischargingCurrent * 10), "UInt16", 31013);
|
||||||
var result23 = ConvertToModbusRegisters((status.InverterRecord.MaxSoc * 10), "UInt16", 31014);
|
|
||||||
|
var result23 = ConvertToModbusRegisters((status.InverterRecord.ChargeCutoffSocVoltage * 10), "UInt16", 31014);
|
||||||
var result18 = ConvertToModbusRegisters((status.InverterRecord.PvPower.Value * 10), "UInt32", 32000);
|
var result18 = ConvertToModbusRegisters((status.InverterRecord.PvPower.Value * 10), "UInt32", 32000);
|
||||||
var result19 = ConvertToModbusRegisters((status.InverterRecord.GridPower * 10), "Int32", 33000);
|
var result19 = ConvertToModbusRegisters((status.InverterRecord.GridPower * 10), "Int32", 33000);
|
||||||
|
var result3 = ConvertToModbusRegisters((status.InverterRecord.Frequency * 10), "Int32", 33002);
|
||||||
|
|
||||||
|
var result24 = ConvertToModbusRegisters((status.InverterRecord.OperatingMode ), "UInt16", 34000);
|
||||||
|
var result25 = ConvertToModbusRegisters((status.InverterRecord.InverterActivePower * 10), "Int32", 34001);
|
||||||
|
var result26 = ConvertToModbusRegisters((status.Config.GridSetPoint * 10), "Int32", 35000);
|
||||||
|
var result27 = ConvertToModbusRegisters((status.InverterRecord.ExportLimitationEnabled * 10), "Int32", 35002);
|
||||||
|
var result28 = ConvertToModbusRegisters((status.InverterRecord.ExportLimitationPowerRate * 10), "Int32", 35003);
|
||||||
|
|
||||||
// Merge all results into one dictionary
|
// Merge all results into one dictionary
|
||||||
var allResults = new[]
|
var allResults = new[]
|
||||||
{
|
{
|
||||||
result1, result2, result3, result17, result4, result5, result7, result8,
|
result1, result2, result3, result17, result4, result5, result7, result8,
|
||||||
result12, result13, result14, result15, result16, result18, result19, result20,
|
result12, result13, result14, result15, result16, result18, result19, result20,
|
||||||
result21, result22, result23
|
result21, result22, result23, result24, result25, result26, result27, result28,
|
||||||
};
|
};
|
||||||
|
|
||||||
foreach (var result in allResults)
|
foreach (var result in allResults)
|
||||||
|
|
@ -717,24 +719,7 @@ public static class Program
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* private static void Heartbit()
|
|
||||||
{
|
|
||||||
var s3Bucket = Config.Load().S3?.Bucket;
|
|
||||||
var tryParse = int.TryParse(s3Bucket?.Split("-")[0], out var installationId);
|
|
||||||
|
|
||||||
if (tryParse)
|
|
||||||
{
|
|
||||||
var returnedStatus = new StatusMessage
|
|
||||||
{
|
|
||||||
InstallationId = installationId,
|
|
||||||
Product = 2,
|
|
||||||
Status = _sodiohomeAlarmState,
|
|
||||||
Type = MessageType.Heartbit,
|
|
||||||
};
|
|
||||||
if (s3Bucket != null)
|
|
||||||
RabbitMqManager.InformMiddleware(returnedStatus);
|
|
||||||
}
|
|
||||||
}*/
|
|
||||||
|
|
||||||
private static async Task SaveToLocalCompressedFallback(Byte[] compressedData, String fileNameWithoutExtension)
|
private static async Task SaveToLocalCompressedFallback(Byte[] compressedData, String fileNameWithoutExtension)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue