Files
infineon_plc/PLC/01_Stationen/HVTester/POUs/FB_HVTester.TcPOU

93 lines
3.1 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<TcPlcObject Version="1.1.0.1">
<POU Name="FB_HVTester" Id="{63fd7fbb-2896-492c-ad94-827a20571a58}" SpecialFunc="None">
<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
_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[_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);
// 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>