Vergleichsoperationen in KOP
In SPS-Programmen ist es manchmal nötig, dass man zwei Zahlenwerte miteinander vergleicht und einen Ausgang an das Ergebnis der Vergleichsoperation knüpft. In Step7 befinden sich unter dem Knoten Vergleicher viele Bausteine, mit denen zwei Zahlen miteinander verglichen werden können. Es gibt Vergleicher für folgende Zahlenformate:
- Ganzzahlen vom Typ INT, Länge 16 Bits
- Ganzzahlen vom Typ DINT, Länge 32 Bits
- Gleitpunktzahlen vom Typ REAL, Länge 32 Bits
Zwei Zahlen mit unterschiedlichen Zahlenformaten können nicht verglichen werden. Beispielsweise ist es nicht möglich, eine DINT-Zahl mit einer Zahl vom Typ REAL zu vergleichen. In dem Fall muss man sich für ein Zahlenformat entscheiden und vorher mit den Umwandlungsfunktionen eine Zahl in das Format des anderen umwandeln.
Die Namen der Vergleichsbausteine sind wie folgt aufgebaut:
- CMP: Die Vergleichsbausteine beginnen mit den Buchstaben CMP, was die Abkürzung von Compare (Vergleichen) ist.
- Vergleichsoperator: Danach folgt der Vergleichsoperator, also z.B. ==, <= etc.
- Zahlenformat (I, D oder R): Danach folgt ein Buchstabe für das Zahlenformat. Der Buchstabe I steht für INT-Zahlen, 16 Bit. Der Buchstabe D steht für DINT-Zahlen, 32 Bit. Der Buchstabe R steht für REAL-Zahlen, 32 Bit.
- Beispiel für einen Vergleichsbaustein: CMP ==I. Dieser Vergleichsbaustein prüft 2 INT-Zahlen darauf, ob sie gleich sind.
Funktionsweise der Vergleichsbausteine
Die Vergleicher haben jeweils 2 Eingänge und einen Ausgang. An die beiden Eingänge werden die Zahlen übergeben, die miteinander verglichen werden sollen. Ist das Ergebnis des Vergleichs WAHR, dann ist das VKE eine 1 und am Ausgang erfolgt ebenfalls das Signal 1. Ist das Ergebnis des Vergleichs FALSCH, dann führt der Ausgang das Signal 0.
Die Vergleichsoperatoren werden dabei wie folgt interpretiert:
- ==: Prüfe, ob IN1 gleich IN2 ist
- <>: Prüfe, ob IN1 ungleich IN2 ist
- >: Prüfe, ob IN1 größer als IN2 ist
- <: Prüfe, ob IN1 kleiner als IN2 ist
- >=: Prüfe, ob IN1 größer als oder gleich IN2 ist
- <=: Prüfe, ob IN1 kleiner als oder gleich IN2 ist
Eingabe der Zahlenwerte an den Eingängen
Die Zahlen, die miteinander verglichen werden sollen, können auf unterschiedliche Art und Weise eingegeben werden.
Beispiele für INT-Zahlen:
- Direkt als Zahl, auch negative Zahlen sind möglich, z.B. 156, -222
- Aus einer Wortadresse, z.B. MW2
- Wortadresse aus einem Datenbaustein, z.B. DB2.DBW4
Beispiele für DINT-Zahlen:
- Direkt als Zahl mit dem Zusatz L#, z.B. L#156, L#-222
- Aus einer Doppelwortadresse, z.B. MD2
- Doppelwortadresse aus einem Datenbaustein, z.B. DB2.DBD4
Beispiele für REAL-Zahlen:
- Direkt als Zahl mit Punkt als Komma, z.B. 250.32, 156.877
- Aus einer Doppelwortadresse, z.B. MD2
- Doppelwortadresse aus einem Datenbaustein, z.B. DB2.DBD4