FUNCTION_BLOCK FB1
VAR_INPUT
Eingabetext: STRING; //* Steuertext von WinCC*//
Start: BOOL; //* Start Varibale von WINCC*//
END_VAR
VAR_OUTPUT
Ventil: BOOL; //*Ausgangsvariable für das Ventil*//
END_VAR
VAR
Ventil_Ok: BOOL; //*Interne Hilfsvariable nur zur interne Verwendung*//
Ventil_oeffnen: BOOL;
Ventil_schließen: BOOL;
Text_2: STRING :='V1'; //*Auswahltext_1*//
Text_3: STRING :='auf'; //*Auswahltext_2*//
Text_4: STRING :='zu'; //*Auswahltext_3*//
Text_5: STRING :='Ventil'; //*Auswahltext_4*//
Text_6: STRING :='öffne'; //*Auswahltext_5*//
Text_7: STRING :='schließe'; //*Auswahltext_6*//
END_VAR
Ventil_OK := (FIND(IN1:=Eingabetext,IN2:=Text_2) > 0) or (FIND(IN1:=Eingabetext,IN2:=Text_5) > 0);
Ventil_oeffnen := (FIND(IN1:=Eingabetext,IN2:=Text_3) > 0) or (FIND(IN1:=Eingabetext,IN2:=Text_6) > 0);
Ventil_schliessen := (FIND(IN1:=Eingabetext,IN2:=Text_4) > 0) or (FIND(IN1:=Eingabetext,IN2:=Text_7) > 0);
IF Start and Ventil_OK THEN
IF Ventil_oeffnen and not Ventil_schliessen THEN
Ventil := TRUE;
ELSIF Ventil_schliessen and not Ventil_oeffnen THEN
Ventil := false;
END_IF;
END_IF;