Keine mathematische Operation in IF-Anweisung

  • Eva Mayrhofer
  • Eva Mayrhofers Avatar Autor
  • Offline
  • Administrator
  • Administrator
Mehr
5 Jahre 7 Monate her - 5 Jahre 7 Monate her #2 von Eva Mayrhofer
Keine mathematische Operation in IF-Anweisung wurde erstellt von Eva Mayrhofer
Schon gewusst?

Das folgende Konstrukt im ST-Editor wird als fehlerhaft markiert:
PROGRAM MyTest
  VAR
   X, B : BYTE;
  END_VAR

 IF X > 255 - B THEN  (* Der Ausdruck "X > 255 - B" verursacht den Fehler. *)
    X := 0;
 END_IF;

END_PROGRAM

Warum? BYTE-Werte können nicht implizit in numerische Werte konvertiert werden.
Abhilfe: Konvertiert die BYTE-Werte für den ST-Code "X > 255 - B" explizit mit Hilfe einer Convert-Funktion. Zum Beispiel:
PROGRAM MyTest
 VAR
   X, B : BYTE;
  END_VAR

 IF TO_INT(X) > 255 - TO_INT(B) THEN
   X := 0;
 END_IF;
END_PROGRAM
Letzte Änderung: 5 Jahre 7 Monate her von Eva Mayrhofer.

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

logi.cals Österreich

Adresse

Europaplatz 7/1,
3100 St. Pölten

logi.cals Deutschland

Adresse

Postfach 1306,
40738 Langenfeld

Benutzer

Registrieren
© 1987 - 2019 logi.cals GmbH