Relinked everything with HAL and Execute pattern

- Switched to BaseConponents V2.0
This commit is contained in:
2026-03-19 19:40:01 +01:00
parent b515ca8588
commit eb2317ad91
25 changed files with 3558 additions and 2721 deletions

View File

@@ -15,13 +15,10 @@ VAR_OUTPUT
xError : BOOL;
END_VAR
VAR_IN_OUT
stIO : ST_Tank_IO;
stHMIInterface : ST_HMI_Tank;
END_VAR
VAR
i_xOverfull AT %I* : BOOL;
i_xFull AT %I* : BOOL;
i_xEmpty AT %I* : BOOL;
_fbWaterValve : FB_Valve('Water valve');
_fbFillingValve : FB_Valve('Filling valve');
_fbDrainValve : FB_Valve('Drain Valve');
@@ -50,28 +47,31 @@ END_IF
M_HandleHMIInput();
// Overfull is NC so true if ok
_wFillingValveSafetyIntlk.0 := i_xOverfull;
_wFillingValveSafetyIntlk.0 := stIO.i_xOverfull;
_fbFillingValve(
xReleaseErrors:= xReleaseErrors,
stValveConfig:= _stValveConfig,
xReleaseManualMode:= xReleaseManualMode,
wSafetyINTLK:= _wFillingValveSafetyIntlk,
wSafetyINTLKUsed:= _wFillingValveSafetyIntlkUsed,
xConfirmAlarms:= xConfirmAlarms,
xConfirmAlarms:= xConfirmAlarms,
stIO := stIO.stValveFilling,
stHMIInterface:= stHMIInterface.stFillingValve);
_fbWaterValve(
xReleaseErrors:= xReleaseErrors,
stValveConfig:= _stValveConfig,
xReleaseManualMode:= xReleaseManualMode,
xConfirmAlarms:= xConfirmAlarms,
xConfirmAlarms:= xConfirmAlarms,
stIO := stIO.stValveWater,
stHMIInterface:= stHMIInterface.stDrainValve);
_fbDrainValve(
xReleaseErrors:= xReleaseErrors,
stValveConfig:= _stValveConfig,
xReleaseManualMode:= xReleaseManualMode,
xConfirmAlarms:= xConfirmAlarms,
xConfirmAlarms:= xConfirmAlarms,
stIO := stIO.stValveDrain,
stHMIInterface:= stHMIInterface.stDrainValve);
_fbPumpValve(
@@ -79,7 +79,8 @@ _fbPumpValve(
xReleaseErrors:= xReleaseErrors,
stValveConfig:= _stValveConfig,
xReleaseManualMode:= xReleaseManualMode,
xConfirmAlarms:= xConfirmAlarms,
xConfirmAlarms:= xConfirmAlarms,
stIO := stIO.stValvePump,
stHMIInterface:= stHMIInterface.stPumpValve);
CASE _iState OF
@@ -99,7 +100,7 @@ CASE _iState OF
10:
_fbDrainValve.xAutomaticOpen := TRUE;
IF (NOT i_xEmpty) THEN
IF (NOT stIO.i_xEmpty) THEN
_fbDrainValve.xAutomaticOpen := FALSE;
_iState := 0;
@@ -119,9 +120,9 @@ END_CASE
M_HandleHMIOutput();
// Copy to output buffer
xOverfull := (NOT i_xOverfull);
xFull := i_xFull;
xEmpty := (NOT i_xEmpty);]]></ST>
xOverfull := (NOT stIO.i_xOverfull);
xFull := stIO.i_xFull;
xEmpty := (NOT stIO.i_xEmpty);]]></ST>
</Implementation>
<Method Name="FB_Init" Id="{9c6d1842-9c2e-4437-b40f-941f77668ffe}">
<Declaration><![CDATA[//FB_Init is always available implicitly and it is used primarily for initialization.
@@ -171,12 +172,12 @@ END_VAR
<Implementation>
<ST><![CDATA[{warning disable C0371}
// Overfull sensor is NC
stHMIInterface.xOverfull := (NOT i_xOverfull);
stHMIInterface.xFull := i_xFull;
stHMIInterface.xEmpty := (NOT i_xEmpty);
stHMIInterface.xOverfull := (NOT stIO.i_xOverfull);
stHMIInterface.xFull := stIO.i_xFull;
stHMIInterface.xEmpty := (NOT stIO.i_xEmpty);
stHMIInterface.stFillButton.xRelease := i_xOverfull AND (NOT i_xFull);
stHMIInterface.stEmptyButton.xRelease := i_xEmpty;
stHMIInterface.stFillButton.xRelease := stIO.i_xOverfull AND (NOT stIO.i_xFull);
stHMIInterface.stEmptyButton.xRelease := stIO.i_xEmpty;
IF _fbWaterValve.IsOpen THEN
stHMIInterface.stFillButton.eFeedback := 1;