-> Hier kostenlos registrieren
Hallo
ich habe da ein Problem mit SCL vieleicht könnte mir hier aus dem Forum vieleicht einer dabei Helfen
ich habe folgenden SCL Baustein der nicht richtig funktioniert das Ventil wird zwar True aber ich kann es danach nicht wieder auf False setzen.
Sieht vieleicht irgendwer den Fehler??
[/I]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*//
A: INT; //*Find Baustein*//
Text_2: STRING; //*Auswahltext_1*//
Text_3: STRING; //*Auswahltext_2*//
Text_4: STRING; //*Auswahltext_3*//
Text_5: STRING; //*Auswahltext_4*//
Text_6: STRING; //*Auswahltext_5*//
Text_7: STRING; //*Auswahltext_6*//
END_VAR
//*Vorbelegung der Auswahltexte*//
IF Start THEN;
Text_2:='V1';
Text_3:='auf';
Text_4:='zu';
Text_5:='Ventil';
Text_6:='öffne';
Text_7:='schließe';
IF Start THEN;
A:=FIND(IN1:=Eingabetext,IN2:=Text_2);
IF A<>0 THEN
Ventil_Ok:=True;
ELSE
IF NOT Ventil_Ok THEN;
A:=FIND(IN1:=Eingabetext,IN2:=Text_5);
IF A<>0 THEN
Ventil_Ok:=True;
IF Start AND Ventil_Ok THEN;
A:=FIND(IN1:=Eingabetext,IN2:=Text_3);
IF A<>0 THEN
Ventil:=True;
ELSE
IF Start AND Ventil_Ok AND NOT Ventil THEN;
A:=FIND(IN1:=Eingabetext,IN2:=Text_6);
IF A<>0 THEN
Ventil:=True;
IF Start AND Ventil_Ok AND Ventil THEN;
A:=FIND(IN1:=Eingabetext,IN2:=Text_4);
IF A<>0 THEN
Ventil:=False;
ELSE
IF Start AND Ventil_Ok AND Ventil THEN;
A:=FIND(IN1:=Eingabetext,IN2:=Text_7);
IF A<>0 THEN
Ventil:=False;
END_IF;
END_IF;
END_IF;
END_IF;
END_IF;
END_IF;
END_IF;
END_IF;
END_IF;
END_IF;
END_IF;
END_IF;
END_IF;
END_FUNCTION_BLOCK
Vielen Dank schonmal im Vorraus
ich habe da ein Problem mit SCL vieleicht könnte mir hier aus dem Forum vieleicht einer dabei Helfen
ich habe folgenden SCL Baustein der nicht richtig funktioniert das Ventil wird zwar True aber ich kann es danach nicht wieder auf False setzen.
Sieht vieleicht irgendwer den Fehler??
[/I]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*//
A: INT; //*Find Baustein*//
Text_2: STRING; //*Auswahltext_1*//
Text_3: STRING; //*Auswahltext_2*//
Text_4: STRING; //*Auswahltext_3*//
Text_5: STRING; //*Auswahltext_4*//
Text_6: STRING; //*Auswahltext_5*//
Text_7: STRING; //*Auswahltext_6*//
END_VAR
//*Vorbelegung der Auswahltexte*//
IF Start THEN;
Text_2:='V1';
Text_3:='auf';
Text_4:='zu';
Text_5:='Ventil';
Text_6:='öffne';
Text_7:='schließe';
IF Start THEN;
A:=FIND(IN1:=Eingabetext,IN2:=Text_2);
IF A<>0 THEN
Ventil_Ok:=True;
ELSE
IF NOT Ventil_Ok THEN;
A:=FIND(IN1:=Eingabetext,IN2:=Text_5);
IF A<>0 THEN
Ventil_Ok:=True;
IF Start AND Ventil_Ok THEN;
A:=FIND(IN1:=Eingabetext,IN2:=Text_3);
IF A<>0 THEN
Ventil:=True;
ELSE
IF Start AND Ventil_Ok AND NOT Ventil THEN;
A:=FIND(IN1:=Eingabetext,IN2:=Text_6);
IF A<>0 THEN
Ventil:=True;
IF Start AND Ventil_Ok AND Ventil THEN;
A:=FIND(IN1:=Eingabetext,IN2:=Text_4);
IF A<>0 THEN
Ventil:=False;
ELSE
IF Start AND Ventil_Ok AND Ventil THEN;
A:=FIND(IN1:=Eingabetext,IN2:=Text_7);
IF A<>0 THEN
Ventil:=False;
END_IF;
END_IF;
END_IF;
END_IF;
END_IF;
END_IF;
END_IF;
END_IF;
END_IF;
END_IF;
END_IF;
END_IF;
END_IF;
END_FUNCTION_BLOCK
Vielen Dank schonmal im Vorraus