Innovenergy_trunk/csharp/Lib/Devices/Trumpf/TruConvertAc/TruConvertAcControl.cs

84 lines
7.9 KiB
C#

using InnovEnergy.Lib.Devices.Trumpf.TruConvert;
namespace InnovEnergy.Lib.Devices.Trumpf.TruConvertAc;
public record TruConvertAcControl
{
private static readonly TimeSpan DefaultCommunicationTimeOut = TimeSpan.FromSeconds(10);
public UInt32 Date { get; init;}
public UInt32 Time { get; init;}
public UInt32 IpAddress { get; init;} //= 0x C0A80102;
public UInt32 Subnet { get; init;} //= 0x FFFFFF00;
public UInt32 Gateway { get; init;} //= 0x C0A80102;
public Boolean ResetParamToDefault { get; init;} = false ; // Coil
public TimeSpan CommunicationTimeout { get; init;} = DefaultCommunicationTimeOut;
public Boolean FactoryResetParameters { get; init;} = false;
public SystemConfig ConnectedSystemConfig { get; init;} = 0;
public UInt16 UpdateSwTrigger { get; init;} = 0;
public UInt16 AutomaticSwUpdate { get; init;} = 0;
public UInt16 CustomerValuesSaveReset { get; init;} = 0;
public UInt16 SerialNumberSystemControl { get; init;} = 0;
public UInt16 SerialNumberAcDc { get; init;} = 0;
public UInt16 IntegrationLevel { get; init;} = 0;
public UInt16 IlBuildnumber { get; init;} = 0;
public Boolean PowerStageEnable { get; init;} = true;
public SymmetricAcOperationMode SetValueConfig { get; init;} = 0;
public Boolean ResetsAlarmAndWarning { get; init;} = false;
public PreChargeDcLinkConfig PreChargeDcLinkConfig { get; init;} = (PreChargeDcLinkConfig)0;
public PowerFactorConvention PowerFactorConvention { get; init;} = 0; //0 = producer
public UInt16 SlaveAddress { get; init;} = Slave.Broadcast;
public AcErrorPolicy ErrorHandlingPolicy { get; init;} = 0;
public AcDcGridType GridType { get; init;} = 0;
public UInt16 SubSlaveAddress { get; init;} = 0;
public Boolean UseModbusSlaveIdForAddressing { get; init;} = false;
public UInt16 SubSlaveErrorPolicy { get; init;} = 0; // must be an enum
public Decimal SignedPowerNominalValue { get; init;} = 0; // resolution 0.001 and Unit kva,
public Decimal SignedPowerSetValueL1 { get; init;} = 0; // resolution 0.001 and Unit kva,
public Decimal SignedPowerSetValueL2 { get; init;} = 0; // resolution 0.001 and Unit kva,
public Decimal SignedPowerSetValueL3 { get; init;} = 0; // resolution 0.001 and Unit kva,
public Decimal PowerSetValue { get; init;} = 0; // resolution 0.001 and Unit kva,
public Decimal PowerSetValueL1 { get; init;} = 0; // resolution 0.001 and Unit kva,
public Decimal PowerSetValueL2 { get; init;} = 0; // resolution 0.001 and Unit kva,
public Decimal PowerSetValueL3 { get; init;} = 0; // resolution 0.001 and Unit kva,
public Decimal MaximumGridCurrentRmsL1 { get; init;} = 0; // resolution : 0.01
public Decimal MaximumGridCurrentRmsL2 { get; init;} = 0; // resolution : 0.01
public Decimal MaximumGridCurrentRmsL3 { get; init;} = 0; // resolution : 0.01
public Decimal CosPhiSetValueL1 { get; init;} = 0; // resolution : 0.01
public Decimal CosPhiSetValueL2 { get; init;} = 0; // resolution : 0.01
public Decimal CosPhiSetValueL3 { get; init;} = 0; // resolution : 0.01
public Boolean PhaseL1IsCapacitive { get; init;} = true; // True = Capacitive, false = Inductive
public Boolean PhaseL2IsCapacitive { get; init;} = true; // True = Capacitive, false = Inductive
public Boolean PhaseL3IsCapacitive { get; init;} = true; // True = Capacitive, false = Inductive
public Boolean PhasesAreCapacitive { get; init;} = true; // True = Capacitive, false = Inductive
public Double SetPointCosPhi { get; init;} = 0; // resolution 0.01
public Double SetPointSinPhi { get; init;} = 0; // resolution 0.01
public Double SetPointSinPhiL1 { get; init;} = 0; // resolution 0.01
public Double SetPointSinPhiL2 { get; init;} = 0; // resolution 0.01
public Double SetPointSinPhiL3 { get; init;} = 0; // resolution 0.01
public Decimal FrequencyOffsetIm { get; init;} = 0; // resolution 0.01
public UInt16 VoltageAdjustmentFactorIm { get; init;} = 0;
public UInt16 PreChargeDcLinkVoltage { get; init;} = 0;
public Decimal MaxPeakCurrentVoltageControlL1 { get; init;} = 0; // resolution 0.01
public Decimal MaxPeakCurrentVoltageControlL2 { get; init;} = 0; // resolution 0.01
public Decimal MaxPeakCurrentVoltageControlL3 { get; init;} = 0; // resolution 0.01
public UInt16 GridFormingMode { get; init;} = 1; // 0 = not grid-forming (grid-tied) ,1 = grid-forming
public UInt16 DcLinkRefVoltage { get; init;} = 800;
public UInt16 DcLinkMinVoltage { get; init;} = 780;
public UInt16 DcLinkMaxVoltage { get; init;} = 820;
public UInt16 DcVoltageRefUs { get; init;} = 900;
public UInt16 DcMinVoltageUs { get; init;} = 880;
public UInt16 DcMaxVoltageUs { get; init;} = 920;
// Need to discuss this with Ivo
// public UInt16 FrequencySlopeIslandMode { get; init;} = 200; // resolution 0.01
// public UInt16 VoltageSlopeIslandMode { get; init;} = 500; // resolution 0.01
public UInt16 AcDcGcBypassMode { get; init;} = 0;
public UInt16 AcDcGcPMaxThresholdPercent { get; init;} = 0; // resolution 0.01
public UInt16 AcDcGcStartupRampEnable { get; init;} = 0;
public DcStageConfiguration DcConfigModule { get; init;} = 0; // this must be an enum
public UInt16 DcDcPowerDistribution { get; init;} = 0; // 0.1 resolution
public AcDcDistributionMode AcDcDistributionMode { get; init;} = 0;
}