InverserBitDansVariable (RT Professional) - WinCC

Fonctions système (RT Professional)

ft:publication_title
Fonctions système (RT Professional)
Product
WinCC
Version
V20
Publication date
11/2024
Language
fr-FR
InverserBitDansVariable

Description

Inverse un bit dans la variable indiquée :

  • Si la valeur du bit de la variable est 1 (TRUE), le bit est positionné sur 0 (FALSE).

  • Si la valeur du bit de la variable est 0 (FALSE), le bit est positionné sur 1 (TRUE).

A l'issue de la modification du bit indiqué, la fonction système transfère l'intégralité de la variable sur l'automate. Le système ne vérifie pas si d'autres bits ont changé entre-temps dans la variable. L'opérateur et l'automate ne doivent avoir accès qu'en lecture à la variable indiquée tant qu'elle n'a pas été retransmise à l'automate.

Remarque

N'utilisez pas cette fonction système lorsque l'automate prend en charge des variables de type BOOL. Utilisez alors la fonction système "InverserBit".

Utilisation dans la liste de fonctions

InverserBitDansVariable (Variable, Bit)

Utilisation dans les fonctions définies par l'utilisateur

InvertBitInTag Tag, Bit

Utilisable dans la mesure où le pupitre configuré prend en charge les fonctions définies par l'utilisateur. Pour plus d'informations, référez-vous à la "Dépendance du pupitre".

Paramètres

Variable

La variable au niveau de laquelle le bit indiqué est positionné.

Bit

Le numéro du bit positionné.

Si vous utilisez cette fonction système dans une fonction définie par l'utilisateur, les bits sont comptés de droite à gauche dans une variable. Il commence à compter à partir de 0.

Exemple

Le code du programme suivant inverse un bit sur la position donnée bitposition dans la variable bStatusWord et fournit le résultat conjointement à la valeur d'origine bSaved.

Copie le code de programme suivant dans le presse-papiers

'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

Copie le code de programme suivant dans le presse-papiers

//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);

  ...

}