Files
Uniper_PLC/PLC/GVLs/GVL_CONFIG.TcGVL
2024-01-04 15:15:26 +01:00

158 lines
5.3 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<TcPlcObject Version="1.1.0.1" ProductVersion="3.1.4024.12">
<GVL Name="GVL_CONFIG" Id="{0773bf51-0237-454d-a970-cfd896054edb}">
<Declaration><![CDATA[{attribute 'qualified_only'}
VAR_GLOBAL
// ===========================
// Unit hardware config
// ===========================
stUnitConfig : ST_UNIT_CONFIG :=
(
// Pump poslyt segment inlet
stConfigPosolytPump :=
(
rTargetMin := 0.0,
rTargetMax := 100.0,
timRampUpTime := T#5S,
timRampDownTime := T#5S,
stAnalogInputConfig := (iAIMax := 32767, iAIMin := 0, rPVMax := 100, rPVMin := 0, sUnit := '%'),
stAnalogOutputConfig := (iAIMax := 32767, iAIMin := 0, rPVMax := 100, rPVMin := 0),
xHasAnalogFeedback := TRUE,
xHasMCBFeedback := TRUE,
xHasRepairSwitchFeedback := FALSE
),
// Pump negolyt segment inlet
stConfigNegolytPump :=
(
rTargetMin := 0.0,
rTargetMax := 100.0,
timRampUpTime := T#5S,
timRampDownTime := T#5S,
stAnalogInputConfig := (iAIMax := 32767, iAIMin := 0, rPVMax := 100, rPVMin := 0, sUnit := '%'),
stAnalogOutputConfig := (iAIMax := 32767, iAIMin := 0, rPVMax := 100, rPVMin := 0),
xHasAnalogFeedback := TRUE,
xHasMCBFeedback := TRUE,
xHasRepairSwitchFeedback := FALSE
),
// Valve posolyt tank outlet
stConfigPosolytValve := (timTimeoutOpen := T#10S, timTimeoutClose := T#10S, xHasOpenFeedback := TRUE, xHasClosedFeedback := TRUE),
// Valve negolyt tank outlet
stConfigNegolytValve := (timTimeoutOpen := T#10S, timTimeoutClose := T#10S, xHasOpenFeedback := TRUE, xHasClosedFeedback := TRUE),
// Pressure posolyt segment inlet
stConfigPosolytPressureSegmentInlet := (iAIMax := 32767, iAIMin := 0, rPVMax := 1500, rPVMin := -1000, sUnit := 'mbar'),
stEWLPosolytPressureSegmentInlet := (rErrorMin := -500, rWarningMin := -400, rWarningMax := 600, rErrorMax := 700),
stEWDPosolytPressureSegmentInlet :=
(
timHardwareSignalLevelOn := T#0S,
timHardwareSignalLevelOff := T#5S,
timErrorLowOn := T#1S,
timErrorLowOff := T#5S,
timWarningLowOn := T#1S,
timWarningLowOff := T#5S,
timWarningHighOn := T#1S,
timWarningHighOff := T#5S,
timErrorHighOn := T#1S,
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),
stEWDNegolytPressureSegmentInlet :=
(
timHardwareSignalLevelOn := T#0S,
timHardwareSignalLevelOff := T#5S,
timErrorLowOn := T#1S,
timErrorLowOff := T#5S,
timWarningLowOn := T#1S,
timWarningLowOff := T#5S,
timWarningHighOn := T#1S,
timWarningHighOff := T#5S,
timErrorHighOn := T#1S,
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),
stEWDPosolytTempTankInlet :=
(
timHardwareSignalLevelOn := T#0S,
timHardwareSignalLevelOff := T#5S,
timErrorLowOn := T#5S,
timErrorLowOff := T#5S,
timWarningLowOn := T#5S,
timWarningLowOff := T#5S,
timWarningHighOn := T#5S,
timWarningHighOff := T#5S,
timErrorHighOn := T#5S,
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),
stEWDNegolytTempTankInlet :=
(
timHardwareSignalLevelOn := T#0S,
timHardwareSignalLevelOff := T#5S,
timErrorLowOn := T#5S,
timErrorLowOff := T#5S,
timWarningLowOn := T#5S,
timWarningLowOff := T#5S,
timWarningHighOn := T#5S,
timWarningHighOff := T#5S,
timErrorHighOn := T#5S,
timErrorHighOff := T#5S
),
// Voltage sensor segment
// EL3214-0090 CoE Verzeichnis
// 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),
stEWDVoltageSegment :=
(
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
)
);
// ===========================
// General settings
// ===========================
// Pump on power
rPumpPosolytOnPower : REAL := 70.0;
rPumpNegolytOnPower : REAL := 70.0;
// Unit voltage pumps shutoff threshold
rPumpshutoffThreshold : REAL := 25.0;
// Minimum unit voltage for startup
rMinimumUnitVoltage : REAL := 49.0;
// Maximum absolute voltage difference
// between units in the same module
rMaxAbsDiffVoltageUnitsOnModule : REAL := 5.0;
// Maximum absolute voltage difference
// between Modules
rMaxAbsDiffVoltageModulesInString : REAL := 10.0;
END_VAR]]></Declaration>
</GVL>
</TcPlcObject>