114 lines
3.7 KiB
XML
114 lines
3.7 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
|
|
stIO : ST_HVTester_IO;
|
|
stHMIInterface : ST_HMI_HVTester;
|
|
END_VAR
|
|
VAR
|
|
_fbDoorValve : FB_Valve('Door');
|
|
_stDoorValveConfig : ST_ValveConfig := (xNormallyOpen := TRUE);
|
|
|
|
_fbTestChamberValve : FB_Valve('Chamber');
|
|
_stTestChamberValveConfig : ST_ValveConfig;
|
|
|
|
_fbReleaseChamberMovement : FB_Valve('Release Chamber');
|
|
_stReleaseValveConfig : ST_ValveConfig;
|
|
|
|
_xFirstCycle : BOOL := TRUE;
|
|
END_VAR
|
|
]]></Declaration>
|
|
<Implementation>
|
|
<ST><![CDATA[IF _xFirstCycle THEN
|
|
_xFirstCycle := FALSE;
|
|
|
|
stHMIInterface.stDoorValve.stInterlock.asSafetyINTLKName[0] := 'Door collision sensor';
|
|
END_IF
|
|
|
|
|
|
_fbDoorValve.wSafetyINTLK.0 := stIO.i_xDoorCollisionDetectOk;
|
|
_fbDoorValve(
|
|
xReleaseErrors:= xReleaseAlarms,
|
|
stValveConfig:= _stDoorValveConfig,
|
|
xReleaseManualMode:= _xReleaseManualMode,
|
|
xConfirmAlarms:= xConfirmAlarms,
|
|
stIO := stIO.stValveDoor,
|
|
stHMIInterface:= stHMIInterface.stDoorValve);
|
|
|
|
|
|
_fbTestChamberValve(
|
|
xReleaseErrors:= xReleaseAlarms,
|
|
stValveConfig:= _stTestChamberValveConfig,
|
|
xReleaseManualMode:= _xReleaseManualMode,
|
|
xConfirmAlarms:= xConfirmAlarms,
|
|
stIO := stIO.stValveTestChamber,
|
|
stHMIInterface:= stHMIInterface.stTestChamberValve);
|
|
|
|
_fbReleaseChamberMovement(
|
|
xAutomaticOpen := TRUE,
|
|
xReleaseErrors:= xReleaseAlarms,
|
|
stValveConfig:= _stReleaseValveConfig,
|
|
xReleaseManualMode:= _xReleaseManualMode,
|
|
xConfirmAlarms:= xConfirmAlarms,
|
|
stIO := stIO.stValveReleaseChamber,
|
|
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;
|
|
_stDoorValveConfig.xNormallyOpen := TRUE;
|
|
|
|
// First safety interlock is the collision sensor
|
|
_fbDoorValve.wSafetyINTLKUsed.0 := 1;
|
|
|
|
// Test chamber valve config
|
|
_stTestChamberValveConfig.xHasOpenFeedback := TRUE;
|
|
_stTestChamberValveConfig.xHasClosedFeedback := TRUE;
|
|
_stTestChamberValveConfig.timTimeoutOpen := T#10S;
|
|
_stTestChamberValveConfig.timTimeoutClose := T#10S;
|
|
_stTestChamberValveConfig.xNormallyOpen := TRUE;
|
|
|
|
// Open test chamber normally after restart
|
|
_fbTestChamberValve.xAutomaticOpen := TRUE;
|
|
|
|
// Release valve config
|
|
_stReleaseValveConfig.xHasOpenFeedback := FALSE;
|
|
_stReleaseValveConfig.xHasClosedFeedback := FALSE;
|
|
_stReleaseValveConfig.timTimeoutOpen := T#0S;
|
|
_stReleaseValveConfig.timTimeoutClose := T#0S;]]></ST>
|
|
</Implementation>
|
|
</Method>
|
|
</POU>
|
|
</TcPlcObject> |