Vergleichsausdrücke in SCL

Torsten

Level-1
Beiträge
32
Reaktionspunkte
2
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich habe eine Frage zu Vergleichsausdrücken in S7 V5.3 SCL,
und zwar durchlaufe ich ein array of byte und vergleiche jedes Element mit einer Konstanten vom typ byte ("zwei"). Den Vergleich den ich anstellen möchte ist größer gleich, hört sich einfach an, hab aber folgendes Problem:

das möchte ich machen:
(1.) ELSIF DB1001.Vorbed_aktion_2 >= zwei THEN //geht nicht("unzulässige Operandentypen")

das wiederum geht:
(2.) ELSIF DB1001.Vorbed_aktion_2 = zwei THEN

so würde es zur Not auch funktionieren:
(3.) ELSIF CHAR_TO_INT(BYTE_TO_CHAR(DB1001.Vorbed_aktion_2)) >= CHAR_TO_INT(BYTE_TO_CHAR(zwei)) THEN

kann mir jemand erklären warum (1.) nicht funktioniert, oder was ich eventuell falsch mache ?
 
Hallo

schreibst du >=zwei oder ='2' ?

Kann mir gut vorstellen, dass >=, <= bei Siemens-SCL bei char-Typ einfach nicht tut.
Hab meinerseits auch den Weg über die INTs genommen, was immerhin funktioniert.

Viel Erfolg
 
Zuviel Werbung?
-> Hier kostenlos registrieren
ich hab´s genau so geschrieben, wie´s da steht ">= zwei" und zwei ist:
"
const
zwei:=byte#2
END_CONST
"
also byte
Was mich halt stutzig macht ist, dass "= zwei" geht, aber ">= zwei" nicht?
 
Hallo,
mach mal die SCL-Hilfe auf und suche nach "Vergleich", da wirst du eine Tabelle mit möglichen Vergleichsfunktionen finden.

Also Byte/Word etc. geht nur mit "=" oder "<>".
Bist mit deinem Wandeln gar nicht so Falsch gelegen.

Gruss Zefix
 
Danke erst mal für die Antworten,

meine SCL Hilfe gibt dies Information irgendwie nicht her, aber ich denke Du hast recht. Obwohl ich noch nicht ganz denn Sinn ergründet habe warum das nicht geht, naja sei´s drum.

Gruß Torsten
 
Zurück
Oben