Files
Adeco_20220119-01/TC3_CNCPLCBase/OEM/FB_Vakuumfelder.TcPOU
Matthias Heisig 51d6e7e5c4 Initial commit
2024-10-22 14:22:54 +02:00

238 lines
7.3 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<TcPlcObject Version="1.1.0.1" ProductVersion="3.1.4024.6">
<POU Name="FB_Vakuumfelder" Id="{b73b6e2f-4be0-410a-bacf-8c5aedb29f5d}" SpecialFunc="None">
<Declaration><![CDATA[FUNCTION_BLOCK FB_Vakuumfelder
VAR_IN_OUT
bExecuteHMI : BOOL;
END_VAR
VAR_INPUT
nFieldNumber : INT;
nMVakuumfeldEin : UINT := 51;
nMVakuumfeldAus : UINT := 52;
nMVakuumAlleEin : UINT := 53;
nMVakuumAlleAus : UINT := 54;
nChannelIdx : UINT := 0;
END_VAR
VAR_OUTPUT
bVentilVakuumfeld1 AT %Q* : BOOL;
bVentilVakuumfeld2 AT %Q* : BOOL;
bVentilVakuumfeld3 AT %Q* : BOOL;
bVentilVakuumfeld4 AT %Q* : BOOL;
bVentilVakuumfeld5 AT %Q* : BOOL;
bVentilVakuumfeld6 AT %Q* : BOOL;
bVentilVakuumfeld7 AT %Q* : BOOL;
bVentilVakuumfeld8 AT %Q* : BOOL;
bVentilVakuumfeld9 AT %Q* : BOOL;
bVentilVakuumfeld10 AT %Q* : BOOL;
bVentilBelueftung AT %Q* : BOOL;
END_VAR
VAR
bEinschalten : BOOL;
bSchalten : BOOL;
nVakuumfeldNummer : DINT;
nState : INT := 0;
rtExecuteHMI : R_TRIG;
END_VAR
]]></Declaration>
<Implementation>
<ST><![CDATA[rtExecuteHMI(CLK := bExecuteHMI);
IF rtExecuteHMI.Q THEN
bExecuteHMI := FALSE;
bEinschalten := TRUE;
bSchalten := TRUE;
nVakuumfeldNummer := nFieldNumber;
END_IF
(* Einschalten aller Vakuumfelder *)
IF CNCSystem.Channel[nChannelIdx].M[nMVakuumAlleEin].bState_rw THEN
bVentilVakuumfeld10 := TRUE;
bVentilVakuumfeld9 := TRUE;
bVentilVakuumfeld8 := TRUE;
bVentilVakuumfeld7 := TRUE;
bVentilVakuumfeld6 := TRUE;
bVentilVakuumfeld5 := TRUE;
bVentilVakuumfeld4 := TRUE;
bVentilVakuumfeld3 := TRUE;
bVentilVakuumfeld2 := TRUE;
bVentilVakuumfeld1 := TRUE;
bVentilBelueftung := FALSE;
CNCSystem.Channel[nChannelIdx].M[nMVakuumAlleEin].bState_rw := FALSE;
END_IF
(* Ausschalten aller Vakuumfelder *)
IF CNCSystem.Channel[nChannelIdx].M[nMVakuumAlleAus].bState_rw THEN
bVentilVakuumfeld10 := FALSE;
bVentilVakuumfeld9 := FALSE;
bVentilVakuumfeld8 := FALSE;
bVentilVakuumfeld7 := FALSE;
bVentilVakuumfeld6 := FALSE;
bVentilVakuumfeld5 := FALSE;
bVentilVakuumfeld4 := FALSE;
bVentilVakuumfeld3 := FALSE;
bVentilVakuumfeld2 := FALSE;
bVentilVakuumfeld1 := FALSE;
bVentilBelueftung := TRUE;
CNCSystem.Channel[nChannelIdx].M[nMVakuumAlleAus].bState_rw := FALSE;
END_IF
(* Einschalten der Vakuumfelder *)
IF CNCSystem.Channel[nChannelIdx].M[nMVakuumfeldEin].bState_rw THEN
nVakuumfeldNummer := CNCSystem.Channel[nChannelIdx].M[nMVakuumfeldEin].nArgument_r;
bSchalten := TRUE;
bEinschalten := TRUE;
CNCSystem.Channel[nChannelIdx].M[nMVakuumfeldEin].bState_rw := FALSE;
END_IF
(* Ausschalten der Vakuumfelder *)
IF CNCSystem.Channel[nChannelIdx].M[nMVakuumfeldAus].bState_rw THEN
nVakuumfeldNummer := CNCSystem.Channel[nChannelIdx].M[nMVakuumfeldAus].nArgument_r;
bSchalten := TRUE;
bEinschalten := FALSE;
CNCSystem.Channel[nChannelIdx].M[nMVakuumfeldAus].bState_rw := FALSE;
END_IF
IF bSchalten THEN
bSchalten := FALSE;
bVentilVakuumfeld10 := FALSE;
bVentilVakuumfeld9 := FALSE;
bVentilVakuumfeld8 := FALSE;
bVentilVakuumfeld7 := FALSE;
bVentilVakuumfeld6 := FALSE;
bVentilVakuumfeld5 := FALSE;
bVentilVakuumfeld4 := FALSE;
bVentilVakuumfeld3 := FALSE;
bVentilVakuumfeld2 := FALSE;
bVentilVakuumfeld1 := FALSE;
bVentilBelueftung := NOT bEinschalten;
CASE nVakuumfeldNummer OF
1:
bVentilVakuumfeld1 := bEinschalten;
bVentilVakuumfeld2 := bEinschalten;
bVentilVakuumfeld5 := bEinschalten;
bVentilVakuumfeld6 := bEinschalten;
2:
bVentilVakuumfeld1 := bEinschalten;
bVentilVakuumfeld3 := bEinschalten;
3:
bVentilVakuumfeld1 := bEinschalten;
bVentilVakuumfeld2 := bEinschalten;
bVentilVakuumfeld3 := bEinschalten;
bVentilVakuumfeld4 := bEinschalten;
4:
bVentilVakuumfeld1 := bEinschalten;
bVentilVakuumfeld2 := bEinschalten;
bVentilVakuumfeld3 := bEinschalten;
bVentilVakuumfeld4 := bEinschalten;
bVentilVakuumfeld7 := bEinschalten;
5:
bVentilVakuumfeld1 := bEinschalten;
bVentilVakuumfeld2 := bEinschalten;
bVentilVakuumfeld3 := bEinschalten;
bVentilVakuumfeld4 := bEinschalten;
bVentilVakuumfeld5 := bEinschalten;
bVentilVakuumfeld7 := bEinschalten;
bVentilVakuumfeld8 := bEinschalten;
6:
bVentilVakuumfeld1 := bEinschalten;
bVentilVakuumfeld2 := bEinschalten;
bVentilVakuumfeld3 := bEinschalten;
bVentilVakuumfeld4 := bEinschalten;
bVentilVakuumfeld5 := bEinschalten;
bVentilVakuumfeld6 := bEinschalten;
bVentilVakuumfeld7 := bEinschalten;
bVentilVakuumfeld8 := bEinschalten;
bVentilVakuumfeld9 := bEinschalten;
7:
bVentilVakuumfeld1 := bEinschalten;
bVentilVakuumfeld2 := bEinschalten;
bVentilVakuumfeld3 := bEinschalten;
bVentilVakuumfeld4 := bEinschalten;
bVentilVakuumfeld5 := bEinschalten;
bVentilVakuumfeld6 := bEinschalten;
bVentilVakuumfeld7 := bEinschalten;
bVentilVakuumfeld8 := bEinschalten;
bVentilVakuumfeld9 := bEinschalten;
bVentilVakuumfeld10 := bEinschalten;
END_CASE
END_IF]]></ST>
</Implementation>
<LineIds Name="FB_Vakuumfelder">
<LineId Id="233" Count="0" />
<LineId Id="236" Count="0" />
<LineId Id="235" Count="0" />
<LineId Id="237" Count="0" />
<LineId Id="239" Count="1" />
<LineId Id="275" Count="0" />
<LineId Id="238" Count="0" />
<LineId Id="234" Count="0" />
<LineId Id="45" Count="15" />
<LineId Id="43" Count="1" />
<LineId Id="29" Count="2" />
<LineId Id="39" Count="0" />
<LineId Id="32" Count="6" />
<LineId Id="9" Count="0" />
<LineId Id="40" Count="0" />
<LineId Id="42" Count="0" />
<LineId Id="61" Count="1" />
<LineId Id="41" Count="0" />
<LineId Id="64" Count="0" />
<LineId Id="66" Count="2" />
<LineId Id="86" Count="0" />
<LineId Id="77" Count="0" />
<LineId Id="173" Count="0" />
<LineId Id="70" Count="4" />
<LineId Id="87" Count="0" />
<LineId Id="78" Count="0" />
<LineId Id="174" Count="0" />
<LineId Id="63" Count="0" />
<LineId Id="89" Count="0" />
<LineId Id="88" Count="0" />
<LineId Id="90" Count="0" />
<LineId Id="125" Count="0" />
<LineId Id="116" Count="8" />
<LineId Id="115" Count="0" />
<LineId Id="126" Count="1" />
<LineId Id="92" Count="2" />
<LineId Id="105" Count="0" />
<LineId Id="203" Count="2" />
<LineId Id="96" Count="0" />
<LineId Id="128" Count="0" />
<LineId Id="106" Count="0" />
<LineId Id="97" Count="0" />
<LineId Id="129" Count="1" />
<LineId Id="107" Count="0" />
<LineId Id="206" Count="0" />
<LineId Id="98" Count="0" />
<LineId Id="132" Count="1" />
<LineId Id="131" Count="0" />
<LineId Id="108" Count="0" />
<LineId Id="208" Count="0" />
<LineId Id="99" Count="0" />
<LineId Id="135" Count="2" />
<LineId Id="134" Count="0" />
<LineId Id="109" Count="0" />
<LineId Id="211" Count="1" />
<LineId Id="100" Count="0" />
<LineId Id="139" Count="3" />
<LineId Id="138" Count="0" />
<LineId Id="110" Count="0" />
<LineId Id="213" Count="2" />
<LineId Id="101" Count="0" />
<LineId Id="216" Count="7" />
<LineId Id="111" Count="0" />
<LineId Id="224" Count="0" />
<LineId Id="95" Count="0" />
<LineId Id="91" Count="0" />
</LineIds>
</POU>
</TcPlcObject>