Added inverter implementation
This commit is contained in:
@@ -44,69 +44,103 @@ VAR_GLOBAL
|
||||
|
||||
// Pressure posolyt segment inlet
|
||||
stConfigPosolytPressureSegmentInlet := (iAIMax := 32767, iAIMin := 0, rPVMax := 1500, rPVMin := -1000, sUnit := 'mbar'),
|
||||
stEWLPosolytPressureSegmentInlet := (rErrorMin := -500, rWarningMin := -400, rWarningMax := 600, rErrorMax := 700),
|
||||
stEWLPosolytPressureSegmentInlet := (rErrorMin := 170, rWarningMin := 200, rWarningMax := 600, rErrorMax := 700),
|
||||
stEWDPosolytPressureSegmentInlet :=
|
||||
(
|
||||
timHardwareSignalLevelOn := T#0S,
|
||||
timHardwareSignalLevelOff := T#5S,
|
||||
timErrorLowOn := T#1S,
|
||||
timErrorLowOn := T#2S,
|
||||
timErrorLowOff := T#5S,
|
||||
timWarningLowOn := T#1S,
|
||||
timWarningLowOn := T#2S,
|
||||
timWarningLowOff := T#5S,
|
||||
timWarningHighOn := T#1S,
|
||||
timWarningHighOn := T#2S,
|
||||
timWarningHighOff := T#5S,
|
||||
timErrorHighOn := T#1S,
|
||||
timErrorHighOn := T#2S,
|
||||
timErrorHighOff := T#5S
|
||||
),
|
||||
|
||||
// Pressure negolyt segment inlet
|
||||
stConfigNegolytPressureSegmentInlet := (iAIMax := 32767, iAIMin := 0, rPVMax := 1500, rPVMin := -1000, sUnit := 'mbar'),
|
||||
stEWLNegolytPressureSegmentInlet := (rErrorMin := -500, rWarningMin := -400, rWarningMax := 600, rErrorMax := 700),
|
||||
stEWLNegolytPressureSegmentInlet := (rErrorMin := 170, rWarningMin := 200, rWarningMax := 600, rErrorMax := 700),
|
||||
stEWDNegolytPressureSegmentInlet :=
|
||||
(
|
||||
timHardwareSignalLevelOn := T#0S,
|
||||
timHardwareSignalLevelOff := T#5S,
|
||||
timErrorLowOn := T#1S,
|
||||
timErrorLowOn := T#2S,
|
||||
timErrorLowOff := T#5S,
|
||||
timWarningLowOn := T#1S,
|
||||
timWarningLowOn := T#2S,
|
||||
timWarningLowOff := T#5S,
|
||||
timWarningHighOn := T#1S,
|
||||
timWarningHighOn := T#2S,
|
||||
timWarningHighOff := T#5S,
|
||||
timErrorHighOn := T#1S,
|
||||
timErrorHighOn := T#2S,
|
||||
timErrorHighOff := T#5S
|
||||
),
|
||||
|
||||
// Pressure posolyt tank inlet
|
||||
stConfigPosolytPressureTankInlet := (iAIMax := 32767, iAIMin := 0, rPVMax := 1500, rPVMin := -1000, sUnit := 'mbar'),
|
||||
stEWLPosolytPressureTankInlet := (rErrorMin := -100, rWarningMin := -50, rWarningMax := 100, rErrorMax := 120),
|
||||
stEWDPosolytPressureTankInlet :=
|
||||
(
|
||||
timHardwareSignalLevelOn := T#0S,
|
||||
timHardwareSignalLevelOff := T#5S,
|
||||
timErrorLowOn := T#2S,
|
||||
timErrorLowOff := T#5S,
|
||||
timWarningLowOn := T#2S,
|
||||
timWarningLowOff := T#5S,
|
||||
timWarningHighOn := T#2S,
|
||||
timWarningHighOff := T#5S,
|
||||
timErrorHighOn := T#2S,
|
||||
timErrorHighOff := T#5S
|
||||
),
|
||||
|
||||
// Pressure negolyt tank inlet
|
||||
stConfigNegolytPressureTankInlet := (iAIMax := 32767, iAIMin := 0, rPVMax := 1500, rPVMin := -1000, sUnit := 'mbar'),
|
||||
stEWLNegolytPressureTankInlet := (rErrorMin := -100, rWarningMin := -50, rWarningMax := 100, rErrorMax := 120),
|
||||
stEWDNegolytPressureTankInlet :=
|
||||
(
|
||||
timHardwareSignalLevelOn := T#0S,
|
||||
timHardwareSignalLevelOff := T#5S,
|
||||
timErrorLowOn := T#2S,
|
||||
timErrorLowOff := T#5S,
|
||||
timWarningLowOn := T#2S,
|
||||
timWarningLowOff := T#5S,
|
||||
timWarningHighOn := T#2S,
|
||||
timWarningHighOff := T#5S,
|
||||
timErrorHighOn := T#2S,
|
||||
timErrorHighOff := T#5S
|
||||
),
|
||||
|
||||
// Temperature sensor posolyt tank inlet
|
||||
stConfigPosolytTempTankInlet := (iAIMax := 32767, iAIMin := -32768, rPVMax := 3276.7, rPVMin := -3276.8, sUnit := '°C'),
|
||||
stEWLPosolytTempTankInlet := (rErrorMin := -10, rWarningMin := -5, rWarningMax := 45, rErrorMax := 60),
|
||||
stEWLPosolytTempTankInlet := (rErrorMin := -10, rWarningMin := -5, rWarningMax := 50, rErrorMax := 60),
|
||||
stEWDPosolytTempTankInlet :=
|
||||
(
|
||||
timHardwareSignalLevelOn := T#0S,
|
||||
timHardwareSignalLevelOff := T#5S,
|
||||
timErrorLowOn := T#5S,
|
||||
timErrorLowOn := T#2S,
|
||||
timErrorLowOff := T#5S,
|
||||
timWarningLowOn := T#5S,
|
||||
timWarningLowOn := T#2S,
|
||||
timWarningLowOff := T#5S,
|
||||
timWarningHighOn := T#5S,
|
||||
timWarningHighOn := T#2S,
|
||||
timWarningHighOff := T#5S,
|
||||
timErrorHighOn := T#5S,
|
||||
timErrorHighOn := T#2S,
|
||||
timErrorHighOff := T#5S
|
||||
),
|
||||
|
||||
// Temperature sensor negolyt tank inlet
|
||||
stConfigNegolytTempTankInlet := (iAIMax := 32767, iAIMin := -32768, rPVMax := 3276.7, rPVMin := -3276.8, sUnit := '°C'),
|
||||
stEWLNegolytTempTankInlet := (rErrorMin := -10, rWarningMin := -5, rWarningMax := 45, rErrorMax := 60),
|
||||
stEWLNegolytTempTankInlet := (rErrorMin := -10, rWarningMin := -5, rWarningMax := 50, rErrorMax := 60),
|
||||
stEWDNegolytTempTankInlet :=
|
||||
(
|
||||
timHardwareSignalLevelOn := T#0S,
|
||||
timHardwareSignalLevelOff := T#5S,
|
||||
timErrorLowOn := T#5S,
|
||||
timErrorLowOn := T#2S,
|
||||
timErrorLowOff := T#5S,
|
||||
timWarningLowOn := T#5S,
|
||||
timWarningLowOn := T#2S,
|
||||
timWarningLowOff := T#5S,
|
||||
timWarningHighOn := T#5S,
|
||||
timWarningHighOn := T#2S,
|
||||
timWarningHighOff := T#5S,
|
||||
timErrorHighOn := T#5S,
|
||||
timErrorHighOn := T#2S,
|
||||
timErrorHighOff := T#5S
|
||||
),
|
||||
|
||||
@@ -115,7 +149,7 @@ VAR_GLOBAL
|
||||
// Index 0x80n0:02 "Presentation" = Signed(0) -> Resolution 1/10°C
|
||||
// Index 0x80n0:19 "RTD Element" = PT100(0)
|
||||
stConfigVoltageSegment := (iAIMax := 32767, iAIMin := 0, rPVMax := 150, rPVMin := 0, sUnit := 'V'),
|
||||
stEWLVoltageSegment := (rErrorMin := 50, rWarningMin := 55, rWarningMax := 75, rErrorMax := 80),
|
||||
stEWLVoltageSegment := (rErrorMin := 50, rWarningMin := 55, rWarningMax := 75, rErrorMax := 79),
|
||||
stEWDVoltageSegment :=
|
||||
(
|
||||
timHardwareSignalLevelOn := T#0S,
|
||||
@@ -135,24 +169,51 @@ VAR_GLOBAL
|
||||
// General settings
|
||||
// ===========================
|
||||
|
||||
// Pump on power
|
||||
// Pump on power (%)
|
||||
rPumpPosolytOnPower : REAL := 70.0;
|
||||
rPumpNegolytOnPower : REAL := 70.0;
|
||||
|
||||
// Unit voltage pumps shutoff threshold
|
||||
rPumpshutoffThreshold : REAL := 25.0;
|
||||
// Unit voltage pumps shutoff threshold (Volt)
|
||||
rPumpshutoffThreshold : REAL := 15.0;
|
||||
|
||||
// Minimum unit voltage for startup
|
||||
// Minimum unit voltage required for inverter startup (Volt)
|
||||
rMinimumUnitVoltage : REAL := 49.0;
|
||||
|
||||
// Delta value to minimum unit voltage for shutdown discharge (Volt)
|
||||
rDeltaUnitVoltageShutdownDischarge : REAL := 5.0;
|
||||
|
||||
// Maximum absolute voltage difference
|
||||
// between units in the same module
|
||||
rMaxAbsDiffVoltageUnitsOnModule : REAL := 5.0;
|
||||
|
||||
// Maximum absolute voltage difference
|
||||
// between Modules
|
||||
// between Modules (Volt)
|
||||
rMaxAbsDiffVoltageModulesInString : REAL := 10.0;
|
||||
|
||||
// Minimum absolute power command to enable battery (Watt)
|
||||
diMinimumAbsPowerForEnable : DINT := 100;
|
||||
|
||||
// Maximum allowed charging power (Watt)
|
||||
diMaxStringChargingPower : DINT := -30_000;
|
||||
|
||||
// Maximum allowed discharging power (Watt)
|
||||
diMaxStringDischargePower : DINT := 30_000;
|
||||
|
||||
// Inverter ip address
|
||||
sInverterIp : STRING := '192.168.0.1';
|
||||
|
||||
// Absolute shutdown discharge power (Watt)
|
||||
rAbsShutdownDischargePower : REAL := 5_000;
|
||||
|
||||
// Allow inverter fast shutdown discharge
|
||||
xShutdownDischargeWithInverter : BOOL := TRUE;
|
||||
|
||||
// String fully charged voltage (Volt)
|
||||
rStringFullyChargedVoltage : REAL := 888.0;
|
||||
|
||||
// String empty voltage (Volt)
|
||||
rStringEmptyVoltage : REAL := 672.0;
|
||||
|
||||
END_VAR]]></Declaration>
|
||||
</GVL>
|
||||
</TcPlcObject>
|
||||
Reference in New Issue
Block a user