Rechner-Objekt¶
Mit dem Rechner-Objekt können arithmetische Operationen mit Operanden oder Verknüpfungen von Operanden ausgeführt werden.
Folgende Funktionen sind dabei möglich:
-
UND-, ODER-, Exclusiv-Oder-Verknüpfungen-, SR-Glied-, RS-Glied mit Bit-Operanden
-
Addition, Subtraktion
-
Multiplikation
-
Modulo
-
Dezimal-zu-BCD für Byte-Operanden
-
BCD-zu-Dezimal für Byte-Operanden
-
Vergleiche: Größer als, Größer oder gleich, Kleiner als, Kleiner oder gleich, Gleich
-
Bereiche: in Bereich, außerhalb Bereich
-
UInt32 aus Bytes zusammensetzen
Es können maximal 4 Operanden für die Funktion angegeben werden. Das Ergebnis der Funktion wird in einen Operanden geschrieben. Handelt es sich bei dem Ergebnis-Operanden um einen Bit-Operanden, so kann dieser invertiert werden.
Auswertung von pos. und negativen Flanken bei der Verwendung von Bit-Operanden¶
Werden Bit-Operanden als Eingangs-Operanden verwendet, so kann auch die pos. oder neg. Flanke eines solchen Operanden in die Verknüpfung eingebunden werden. Dabei wird zunächst der Bit-Operand am gewünschen Eingang angegeben und anschließend der Eingabe-Cursor vor der Operanden-Angabe platziert. Danach wird die Tastenkombination [STRG] + [P] für die pos. Flanke oder [STRG] + [N] für die neg. Flanke betätigt. Als Folge wird vor dem Operanden ein Pfeil nach oben (pos. Flanke) oder ein Pfeil nach unten (neg. Flanke) angezeigt.
Negierte Abfrage eines Bit-Operanden (ab V1.7.0.0)¶
Werden Bit-Operanden als Eingangs-Operanden verwendet, so kann auch der negierte Zustand des Operanden in die Verknüpfung eingebunden werden. Die negierte Abfrage wird über das Zeichen '!' erreicht, welches vor dem Operanden und dem Devicenamen anzugeben ist. Beispiel: "!Sim.E0.0"
UND-, ODER-, Exclusiv-Oder-Verknüpfungen-, SR-Glied-, RS-Glied mit Bit-Operanden¶
Es können alle 4 Eingangs-Operanden belegt werden, mit Ausnahme der SR- und RS-Glieder. Werden weniger Operanden angegeben, dann sind die nicht verwendeten Eingangs-Operanden mit den Konstanten '1' oder '0' zu belegen. Je nachdem welche Konstante für die Operation neutral ist.
SR-Glied
Am ersten Eingang kann der Bit-Operand für den Setz-Eingang angegeben werden. Am zweiten Eingang wird der Bit-Operanden für den Rücksetz-Eingang eingetragen.
SR-Glied
Am ersten Eingang kann der Bit-Operand für den Rücksetz-Eingang angegeben werden. Am zweiten Eingang wird der Bit-Operanden für den Setz-Eingang eingetragen.
Bei allen Funktionsarten ist am Operanden für das Funktionsergebnis ein Bit-Operand anzugeben. Über die Eigenschaft "Ergebnis invertieren" kann man diesen invertieren.
Addition, Subtraktion, Multiplikation¶
Es können alle 4 Eingangs-Operanden belegt werden. Werden weniger Operanden angegeben, dann sind die nicht verwendeten Eingangs-Operanden mit den Konstanten zu belegen. Je nachdem welche Konstante für die Operation neutral ist.
Bei der Subtraktion wird vom Wert des Operanden am ersten Eingang die Werte der Operanden der Eingänge 2 bis 4 subtrahiert.
Am Funktionsergebnis muss ein Operand angegeben sein, der in der Lage, ist den Wert des Ergebnisses aufzunehmen. Anderenfalls findet kein Schreibvorgang in den Operanden statt.
Modulo¶
Bei dieser Operation werden nur die beiden ersten Eingangs-Operanden verwendet. Das Funktionsergebnis wird ermittelt aus:
Operand 1 [Modulo] Operand 2
Am Funktionsergebnis muss ein Operand angegeben sein, der in der Lage, ist den Wert des Ergebnisses aufzunehmen. Anderenfalls findet kein Schreibvorgang in den Operanden statt.
Dezimal-zu-BCD für Byte-Operanden¶
Bei dieser Operation wird nur der erste Eingangs-Operand verwendet.
Es wird nur das niederwertigste Byte des Operanden ausgewertet.
Der ermittelt Wert wird danach in BCD gewandelt und das Ergebnis in den Operanden am Funktionsergebnis geschrieben.
BCD-zu-Dezimal für Byte-Operanden¶
Bei dieser Operation wird nur der erste Eingangs-Operand verwendet.
Es wird nur das niederwertigste Byte des Operanden ausgewertet.
Der ermittelt Wert wird von BCD nach dezimal gewandelt und das Ergebnis in den Operanden am Funktionsergebnis geschrieben.
Vergleicher: Größer als, Größer oder gleich, Kleiner als, Kleiner oder gleich, Gleich¶
Bei den Vergleichsoperationen werden nur die Eingangs-Operanden 1 und 2 verwendet. Die Operanden können dabei auch unterschiedlich breit sein, d.h. es kann beispielsweise der Inhalt eines Byte-Operand mit dem Inhalt eines Wort-Operanden verglichen werden.
Die Operationen werden wie folgt ausgeführt:
-
Größer als: Wert-Operand 1 > Wert-Operand 2
-
Größer oder gleich: Wert-Operand 1 >= Wert-Operand 2
-
Kleiner als: Wert-Operand 1 < Wert-Operand 2
-
Kleiner oder gleich: Wert-Operand 1 <= Wert-Operand 2
-
Gleich: Wert-Operand 1 == Wert-Operand 2
Das Funktionsergebnis ist normalerweise in einen Bit-Operanden zu schreiben. Wird ein Byte-, Wort- oder Doppelwort-Operand angegeben, dann werden die Werte '0' oder '1' geschrieben.
Bereiche: in Bereich, außerhalb Bereich¶
Bei den Bereichsoperationen werden nur die Eingangs-Operanden 1, 2 und 3 verwendet. Die Operanden können dabei auch unterschiedlich breit sein, d.h. es kann beispielsweise der Inhalt eines Byte-Operand mit dem Inhalt eines Wort-Operanden verglichen werden.
Am Eingangs-Operanden 2 ist der Operand anzugeben, dessen Wert geprüft wird.
Am Eingangs-Operand 1 muss der min. Wert des Bereichs angegeben sein. Entweder als Operand oder als Konstante.
Am Eingangs-Operand 3 muss der max. Wert des Bereichs angegeben sein. Entweder als Operand oder als Konstante.
Die Auswertung sieht folgendermaßen aus:
-
In Bereich: Wert-Eingangs-Operand 1 <= Wert-Eingangs-Operand 2 <= Wert-Eingangs-Operand 3
-
Außerhalb Bereich: Wert-Eingangs-Operand 1 > Wert-Eingangs-Operand 2 oder Wert-Eingangs-Operand 2 > Wert-Eingangs-Operand 3
Das Funktionsergebnis ist normalerweise in einen Bit-Operanden zu schreiben. Wird ein Byte-, Wort- oder Doppelwort-Operand angegeben, dann werden die Werte '0' oder '1' geschrieben.
UInt32 aus Bytes zusammensetzen¶
Über diese Funktion kann man Bytes (Operanden oder Konstanten) an den Eingängen angeben, welche dann in ein Doppelwort am Funktionsergebnis kopiert werden. Dabei gilt folgende Regel:
- Eingang 1: wird in das HiByte des HiWord kopiert.
- Eingang 2: wird in das LoByte des HiWord kopiert.
- Eingang 3: wird in das HiByte des LoWord kopiert.
- Eingang 4: wird in das LoByte des LoWord kopiert.
Diese Funktion ist insbesondere dann nützlich, wenn die Farbe eines geometrischen Objekts bzw. eines Flüssigkeits-Objekts durch ein Doppelwort festgelegt wird. Unter folgendem Link ist dies beschrieben: Farbe über Doppelwortoperanden beeinflussen
Einsatz des Rechner-Objekts¶
Die Einsatzgebiete des Rechner-Objekts sind vielfältig.
Man kann dieses beispielsweise verwenden, um ein Flüssigkeits-Objekt mit einem zusätzlichen Sensor für den Füllstand zu versehen.
Dabei würde die Funktion "In Bereich" verwendet werden.
Möchte man beispielsweise den Operanden IM.M10.1 auf '1' setzen, sobald der Füllstand des Flüssigkeits-Objekts zwischen 800 bis 1000 Inkrementen liegt, dann ist das Rechner-Objekt wie folgt zu setzen. Dabei wird davon ausgegangen, dass der momentane Füllstand im Wort-Operanden IM.MW2 abgelegt ist.
Die Funktion "In Bereich" kommt auch zum Einsatz, wenn man die Position von Linear- oder Drehbewegungen sensorisch erfassen möchte. Hier wird das Rechner-Objekt in ähnlicher Weise verwendet, wie im obigen Beispiel mit dem Füllstand.
Weitere Einsatzgebiete sind das Auslösen von Ereignissen in der virtuellen Anlage um das Verhalten der realen Anlage nachzuahmen. Dies wird oftmals durch Verknüpfung von Operanden des internen Speicherbereichs von PLC-Lab (IM) erreicht.