Added precharge mode

This commit is contained in:
Matthias Heisig
2025-06-04 19:37:25 +02:00
parent f12063e294
commit 38f44128d1
9 changed files with 451 additions and 277 deletions

View File

@@ -9,9 +9,6 @@ VAR_INPUT
// HMI interface
stHMIInterface : REFERENCE TO ST_UNIT_HMI_INTERFACE;
// Components shortage workaround
// xVoltageSensorIs1500V : BOOL;
// Start unit
xEnable : BOOL;
@@ -21,6 +18,9 @@ VAR_INPUT
// Unit in safety check mode
xInSafetyCheckMode : BOOL;
// String operation mode
eStringOperatingMode : E_STRING_OPERATING_MODE;
// Emergency stop ok
xEmergencyStopOk : BOOL;
@@ -1027,7 +1027,32 @@ CASE _iState OF
31: // Check if voltage limit can be reached
_tonVoltageCheckTimeput(IN := TRUE);
IF (NOT _xErrorActive) AND (NOT _xWarningActive) THEN
CASE eStringOperatingMode OF
E_STRING_OPERATING_MODE.SAFETY_CHECK:
_xEnableVoltageLimitChecks := TRUE;
_tonVoltageCheckTimeput(IN := FALSE);
xReady := TRUE;
stHMIInterface.eStatus := E_COMPONENT_STATUS.ON;
_iState := 35;
E_STRING_OPERATING_MODE.PRECHARGE:
_tonVoltageCheckTimeput(IN := FALSE);
_xEnableVoltageLimitChecks := FALSE;
xReady := TRUE;
stHMIInterface.eStatus := E_COMPONENT_STATUS.ON;
_iState := 35;
ELSE
IF (_fbVoltageSegment.rScaledValue >= GVL_CONFIG.rMinimumUnitVoltage) THEN
_xEnableVoltageLimitChecks := TRUE;
xReady := TRUE;
_iState := 35;
END_IF
END_CASE
END_IF
// Check for minimum unit voltage
(*
IF ((_fbVoltageSegment.rScaledValue >= GVL_CONFIG.rMinimumUnitVoltage) OR xInSafetyCheckMode) AND (NOT _xErrorActive) AND (NOT _xWarningActive) THEN
_tonVoltageCheckTimeput(IN := FALSE);
xReady := TRUE;
@@ -1042,9 +1067,10 @@ CASE _iState OF
stHMIInterface.eStatus := E_COMPONENT_STATUS.ON;
_iState := 35;
END_IF
END_IF
*)
// Voltage check timeout
IF _tonVoltageCheckTimeput.Q OR _xErrorActive THEN
_tonVoltageCheckTimeput(IN := FALSE);
xError := TRUE;
@@ -1260,8 +1286,6 @@ CASE _iState OF
_fbPosolytValveTankOutlet.ReqAutomaticClose();
_rSetpointNegolytPumpInlet := GVL_CONFIG.rPumpNegolytDisChrgPower;
_rSetpointPosolytPumpInlet := GVL_CONFIG.rPumpPosolytDisChrgPower;
//_fbPosolytPumpInlet.ReqAutomaticStop();
//_fbNegolytPumpInlet.ReqAutomaticStop();
_xEnableVoltageLimitChecks := FALSE;
xShutdownDischargeAllowed := FALSE;
xInShutdownDischargeMode := FALSE;