IF(GVL.oH2HDin)AND(-GVL.oH2MDin)AND(-GVL.oH2MHin)THEN
  FunDruckvorg:=200.0;
  ELSEIF(-GVL.oH2HDinANDGVL.oH2MDinAND-GVL.oH2MHin)THEN
    FunDruckvorg:=30.0;
  ELSEIF(-GVL.oH2HDinAND-GVL.oH2MDinANDGVL.oH2MHin)THEN
    FunDruckvorg:=15.0;END_IF;
Die Fehlermeldung vom Precompiler lautet:
Unerwartetes End-Of-File gefunden: ELSEIF, ELSE oder END_IF erwartet. Klickt man auf die Fehlermeldung wird das erste IF im Quelltext markiert.
Kann mir jemand helfen?
Vielen Dank für die Hilfe!
LG Marten
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
ich denke, es fehlen ein paar END_IFs. Zu JEDEM IF gehört ein END_IF, sonst bekommst Du Fehlermeldungen.
Probier mal
IF(GVL.oH2HDin)AND(-GVL.oH2MDin)AND(-GVL.oH2MHin)THENFunDruckvorg:=200.0;ELSEIF(-GVL.oH2HDinANDGVL.oH2MDinAND-GVL.oH2MHin)
   THENFunDruckvorg:=30.0;
   ELSEIF(-GVL.oH2HDinAND-GVL.oH2MDinANDGVL.oH2MHin)
     THENFunDruckvorg:=15.0;
     END_IF;
   END_IF;END_IF;
Der Compiler hat das einzige END_IF, was er bei Dir findet, dem innersten IF zugeordnet, und sucht nun erfolglos nach den übrigen.
Kann die Abfragen übrigens nicht so recht verstehen. Ist mit ... AND (-GVL.oH2MDin) ein Test auf FALSE gemeint? Liest sich besser, wenn man es als ... AND NOT GVL.oH2MDin ... formuliert - und wird dann sogar von einer S7 verstanden (SCL). Wenn man's halt braucht ...
Viel Erfolg
Rolf
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Es heißt nicht Else If sondern Elsif oder Elseif (ich tendiere zum ersten, kann es aber nicht mehr genau sagen da ich gerade mehr php als ST programmiere).
MfG
Marcel
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hallo liebe Forum-Mitglieder!
Ich habe ein Problem bei der Fehlersuche im Quelltext in einer Funktion. Ich habe die Funktion in ST geschrieben.
Ich frage den Zustand TRUE oder FALSE von globalen Variablen ab und möchte je nach deren Zustand den Rückgabewert der Funktion setzen.
Die Deklaration sieht wie folgt aus:
Der Quelltext lautet:
Die Fehlermeldung vom Precompiler lautet:
Unerwartetes End-Of-File gefunden: ELSEIF, ELSE oder END_IF erwartet. Klickt man auf die Fehlermeldung wird das erste IF im Quelltext markiert.
Kann mir jemand helfen?
Vielen Dank für die Hilfe!
LG Marten
Hi Marten,
ich denke, es fehlen ein paar END_IFs. Zu JEDEM IF gehört ein END_IF, sonst bekommst Du Fehlermeldungen.
Probier mal
Der Compiler hat das einzige END_IF, was er bei Dir findet, dem innersten IF zugeordnet, und sucht nun erfolglos nach den übrigen.
Kann die Abfragen übrigens nicht so recht verstehen. Ist mit ... AND (-GVL.oH2MDin) ein Test auf FALSE gemeint? Liest sich besser, wenn man es als ... AND NOT GVL.oH2MDin ... formuliert - und wird dann sogar von einer S7 verstanden (SCL). Wenn man's halt braucht ...
Viel Erfolg
Rolf
Es heißt nicht Else If sondern Elsif oder Elseif (ich tendiere zum ersten, kann es aber nicht mehr genau sagen da ich gerade mehr php als ST programmiere).
MfG
Marcel
http://www.3s-software.com/index.shtml?de_ST_d
Hab mich unter diesem Link über den Aufbau der Bedingung informiert, daher habe ich garnicht daran gedacht, dass jedes IF ein END_IF benötigt.
Hab die Änderungen wie von Dir vorgeschlagen übernommen und es gibt prompt keine Fehlermeldung mehr.
Die Abfrage auf False habe ich auch von - auf NOT umgeändert so ist es auf den ersten Blick ersichtlich was gemeint ist.
Vielen Dank für die schnelle Hilfe
Gruß Marten
Hallo,
wie gesagt
IF Bedingung1 THEN
BLA BLA
ELSIF Bedingung 2 THEN
BLI BLI
END_IF
geht auch.
MfG
Marcel