Beschreibung
Die Systemfunktion wandelt das Eingangs-Bitmuster der Quellvariablen in ein Ausgangs-Bitmuster der Zielvariablen. Dabei werden Bits verschoben und maskiert.
|
Hinweis Wenn Quellvariable und Zielvariable eine unterschiedliche Anzahl von Bits haben, kann die Anwendung der Systemfunktion in der Zielvariablen zu einer Wertebereichsüberschreitung führen. |
Verwendung in der Funktionsliste
SchiebenUndMaskieren (Quellvariable, Zielvariable, Zu schiebende Bits, Zu maskierende Bits)
Verwendung in benutzerdefinierten Funktionen
ShiftAndMask Source_tag, Target_tag, Bits_to_shift, Bits_to_mask
Verwendbar, sofern das projektierte Gerät benutzerdefinierte Funktionen unterstützt. Weitere Informationen finden Sie unter "Geräteabhängigkeit".
Parameter
Quellvariable
Die Variable enthält das Eingangs-Bitmuster, erlaubt sind Variablen von ganzzahligem Typ z. B. "Byte", "Char", "Int", "UInt", "Long" und "ULong".
Beispiel: Die Quellvariable vom Typ 16 Bit Integer hat den aktuellen Wert 72: 0000000001001000.
Zielvariable
In die Variable wird das Ausgangs-Bitmuster gespeichert. Erlaubt sind Variablen von ganzzahligem Typ z. B. "Byte", "Char", "Int", "UInt", "Long" und "ULong".
Beispiel: Das verschobene Eingangs-Bitmuster wird mit der Bit-Maske multipliziert, Bit für Bit UND-verknüpft: 0000000000001001. Das Ergebnis hat den Dezimalwert "8" und wird in der Zielvariablen gespeichert.
Achten Sie auf Folgendes:
-
Quell- und Zielvariable haben die gleiche Anzahl Bits.
-
Die Anzahl der zu schiebenden Bits ist kleiner als die Anzahl der Bits der Quell- und Zielvariablen.
-
Zu maskierende Bits hat nicht mehr Bits als Quell- und Zielvariable.
Zu schiebende Bits
Anzahl der Bits, um die das Eingangs-Bitmuster nach rechts verschoben wird. Ein negativer Wert verschiebt das Eingangs-Bitmuster nach links.
Beispiel: "Zu schiebende Bits" hat den Wert "+3". Dann wird beim Aufruf der Systemfunktion das Eingangs-Bitmuster um 3 Bits nach rechts verschoben: 0000000000001001.
Links wird mit "0" aufgefüllt. Rechts werden 3 Bits abgeschnitten. Neuer Dezimalwert ist "9".
|
Hinweis Wenn die Quellvariable einen vorzeichenbehafteten Datentyp Integer besitzt mit dem Vorzeichen "-", ist das linke Bit "1". Beim Verschieben nach rechts wird dieses Vorzeichen-Bit mit "0" aufgefüllt. Das Vorzeichen wechselt nach "+". |
Zu maskierende Bits
Eine Integer-Zahl dient als Bit-Maske. Mit deren Bitmuster wird das verschobene Eingangs-Bitmuster multipliziert. Beispiel: Zahl "2478" mit dem Bitmuster "0000100110101110".
Die Bit-Maske geben Sie auf 3 verschiedene Arten ein:
-
Hexadezimal: Geben Sie zuerst als Präfix "0h" oder "0H" ein, gefolgt von einem optionalen Leerzeichen zur besseren Lesbarkeit. Anschließend gruppieren Sie das Bitmuster in Viererblöcken (0000)(1001)(1010)(1110) und stellen jeden Block im 16er System dar: (0)(9)(A)(E). Bei der Eingabe sind nur die Zeichen 0-9, A-F, a-f erlaubt: "0h 09AE".
-
Binär: Geben Sie zuerst als Präfix "0b" oder "0B" ein, gefolgt von einem optionalen Leerzeichen zur besseren Lesbarkeit. Anschließend gruppieren Sie das binäre Bitmuster zur Kontrolle in Viererblöcken 0000 1001 1010 1110 mit Leerzeichen dazwischen. Bei der Eingabe sind nur die Zeichen "0" oder "1" erlaubt: "0b 0000 1001 1010 1110".
-
Dezimal: Geben Sie direkt ohne Präfix den Wert "2478" ein.
|
Hinweis Wenn Sie die Geräteversion des Ziel-Bediengeräts nach der Projektierung ändern (z. B. "13.1.0" auf "13.0.0" oder umgekehrt), müssen Sie die Parameter dieser Systemfunktion kontrollieren und testen. Die Datentypen "Char" und "Word" können Sie für die Parameter "Quellvariable" und "Zielvariable" ab der Geräteversion 13.1.0 verwenden. In den Geräteversionen vor 13.1.0 müssen diesen Parametern andere Datentypen zugewiesen werden:
Anderenfalls können unerwünschte Effekte auftreten, wie z. B. falsches oder unerwartetes Verhalten der projektierten Systemfunktionen. |