InvertiereBitInVariable (Basic Panels, Panels, Comfort Panels, RT Advanced) - WinCC

Systemfunktionen (Basic Panels, Panels, Comfort Panels, RT Advanced)

ft:publication_title
Systemfunktionen (Basic Panels, Panels, Comfort Panels, RT Advanced)
Product
WinCC
Version
V21
Publication date
11/2025
Language
de-DE
InvertiereBitInVariable

Beschreibung

Invertiert ein Bit in der angegebenen Variablen:

  • Hat das Bit in der Variablen den Wert 1 (TRUE), wird es auf 0 (FALSE) gesetzt.

  • Hat das Bit in der Variablen den Wert 0 (FALSE), wird es auf 1 (TRUE) gesetzt.

Die Systemfunktion überträgt nach der Änderung des angegebenen Bits die gesamte Variable wieder an die Steuerung. Es wird nicht geprüft, ob sich zwischenzeitlich andere Bits in der Variablen geändert haben. Bediener und Steuerung dürfen auf die angegebene Variable nur lesend zugreifen, bis die Variable wieder an die Steuerung übertragen wurde.

Hinweis

Verwenden Sie diese Systemfunktion nicht, wenn die Steuerung BOOL-Variablen unterstützt. Verwenden Sie statt dessen die Systemfunktion "InvertiereBit".

Verwendung in der Funktionsliste

InvertiereBitInVariable (Variable, Bit)

Verwendung in benutzerdefinierten Funktionen

InvertBitInTag Tag, Bit

Verwendbar, sofern das projektierte Gerät benutzerdefinierte Funktionen unterstützt. Weitere Informationen finden Sie unter "Geräteabhängigkeit".

Parameter

Variable

Die Variable, in der das angegebene Bit gesetzt wird.

Bit

Die Nummer des Bits, das gesetzt wird.

Wenn Sie diese Systemfunktion in einer benutzerdefinierten Funktion verwenden, werden die Bits in einer Variablen von rechts nach links gezählt. Die Zählung beginnt mit 0.

Beispiel

Der folgende Programmcode invertiert ein Bit an der angegebenen Position bitposition in der Variable bStatusWord und gibt das Ergebnis zusammen mit dem ursprünglichen Wert bSaved aus.

Kopiert den nachfolgenden Programmcode in die Zwischenablage.

'Programming language: VB

Dim myTag

Dim myOutputField

Dim bValue, bSaved, bitposition, strResult

Set myTag = SmartTags("bStatusWord")

Set myOutputField=HMIRuntime.Screens("MyScreen").ScreenItems("objTextField")

'Get current value

bValue=myTag.Value

'Save current value

bSaved=bValue

'Invert Bit in position

bitposition=2

InvertBit myTag, bitposition

bValue=myTag.Value

'Output result old and new value:

strResult="Old Value: "&bSaved &Chr(13)&"New Value: "&bValue

myOutputField.Text=strResult

Kopiert den nachfolgenden Programmcode in die Zwischenablage.

//Programming language: C

{

BYTE bStatusWord;

BYTE bsaved = bStatusWord;

BYTE bitposition = 2;

//Invert bit in bitposition

InvertBitInTag (bStatusWord, bitposition);

//print current and saved value

printf ("Current value: %d\r\n, Saved value: %d\r\n",bStatusWord, bsaved);

  ...

}