2023-02-16 12:57:06 +00:00
|
|
|
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;
|
2023-02-23 12:45:09 +00:00
|
|
|
public Boolean UseModbusSlaveIdForAddressing { get; init;} = false;
|
2023-02-16 12:57:06 +00:00
|
|
|
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
|
2023-02-23 12:45:09 +00:00
|
|
|
public UInt16 DcLinkRefVoltage { get; init;} = 800;
|
|
|
|
public UInt16 DcLinkMinVoltage { get; init;} = 780;
|
|
|
|
public UInt16 DcLinkMaxVoltage { get; init;} = 820;
|
2023-02-16 12:57:06 +00:00
|
|
|
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;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|