Implemented stuff to get ready for jet measurement

This commit is contained in:
2026-03-12 00:37:23 +01:00
parent 19be407e08
commit f7bb4f2920
17 changed files with 954 additions and 165 deletions

View File

@@ -11,6 +11,9 @@ STRUCT
// Test chamber open close valve
stTestChamberValve : ST_HMI_VALVE_DATA;
// Safety valve
stReleaseChamberValve : ST_HMI_VALVE_DATA;
// Optional temperature setpoint
stTempSP : ST_HMI_ANALOG_VALUE;
END_STRUCT

View File

@@ -4,23 +4,90 @@
<Declaration><![CDATA[FUNCTION_BLOCK FB_HVTester EXTENDS FB_PackMLGeneric
VAR_INPUT
xOpenChambers : BOOL;
xReleaseAlarms : BOOL;
xConfirmAlarms : BOOL;
END_VAR
VAR_OUTPUT
xDoorOpen : BOOL;
xTestChamberOpen : BOOL;
END_VAR
VAR_IN_OUT
stHMIInterface : ST_HMI_HVTester;
END_VAR
VAR
stDoorValve : FB_Valve('');
stTestChamberValve : FB_Valve('');
stReleaseChamberMovement : FB_Valve('');
_fbDoorValve : FB_Valve('Door');
_stDoorValveConfig : ST_ValveConfig;
_fbTestChamberValve : FB_Valve('Chamber');
_stTestChamberValveConfig : ST_ValveConfig;
_fbReleaseChamberMovement : FB_Valve('Release Chamber');
_stReleaseValveConfig : ST_ValveConfig;
END_VAR
]]></Declaration>
<Implementation>
<ST><![CDATA[
<ST><![CDATA[_fbDoorValve(
xReleaseErrors:= xReleaseAlarms,
stValveConfig:= _stDoorValveConfig,
xReleaseManualMode:= TRUE,
xConfirmAlarms:= xConfirmAlarms,
stHMIInterface:= stHMIInterface.stDoorValve);
_fbTestChamberValve(
xReleaseErrors:= xReleaseAlarms,
stValveConfig:= _stTestChamberValveConfig,
xReleaseManualMode:= TRUE,
xConfirmAlarms:= xConfirmAlarms,
stHMIInterface:= stHMIInterface.stTestChamberValve);
_fbReleaseChamberMovement(
xAutomaticOpen := TRUE,
xReleaseErrors:= xReleaseAlarms,
stValveConfig:= _stReleaseValveConfig,
xReleaseManualMode:= TRUE,
xConfirmAlarms:= xConfirmAlarms,
stHMIInterface:= stHMIInterface.stReleaseChamberValve);
// Call base sm
SUPER^(stPackMLHMIInterface := stHMIInterface.stStationCmds);]]></ST>
SUPER^(stPackMLHMIInterface := stHMIInterface.stStationCmds);
// Copy to output
xDoorOpen := _fbDoorValve.IsOpen;
xTestChamberOpen := _fbTestChamberValve.IsOpen;]]></ST>
</Implementation>
<Method Name="FB_Init" Id="{2ed378bb-debf-402c-b944-0cc5602f1aec}">
<Declaration><![CDATA[//FB_Init is always available implicitly and it is used primarily for initialization.
//The return value is not evaluated. For a specific influence, you can also declare the
//methods explicitly and provide additional code there with the standard initialization
//code. You can evaluate the return value.
METHOD FB_Init: BOOL
VAR_INPUT
bInitRetains: BOOL; // TRUE: the retain variables are initialized (reset warm / reset cold)
bInCopyCode: BOOL; // TRUE: the instance will be copied to the copy code afterward (online change)
END_VAR
]]></Declaration>
<Implementation>
<ST><![CDATA[// Door valve config
_stDoorValveConfig.xHasOpenFeedback := TRUE;
_stDoorValveConfig.xHasClosedFeedback := TRUE;
_stDoorValveConfig.timTimeoutOpen := T#10S;
_stDoorValveConfig.timTimeoutClose := T#10S;
// Test chamber valve config
_stTestChamberValveConfig.xHasOpenFeedback := TRUE;
_stTestChamberValveConfig.xHasClosedFeedback := TRUE;
_stTestChamberValveConfig.timTimeoutOpen := T#10S;
_stTestChamberValveConfig.timTimeoutClose := T#10S;
_stTestChamberValveConfig.xNormallyOpen := TRUE;
// Release valve config
_stReleaseValveConfig.xHasOpenFeedback := FALSE;
_stReleaseValveConfig.xHasClosedFeedback := FALSE;
_stReleaseValveConfig.timTimeoutOpen := T#0S;
_stReleaseValveConfig.timTimeoutClose := T#0S;]]></ST>
</Implementation>
</Method>
</POU>
</TcPlcObject>