EcoStruxure Machine Expert Version 1.1 unterstützt nicht die Controller M258, LMC058 und LMC078.

Adressierung von Bits in Variablen

Überblick

In ganzzahligen Variablen ist der Zugriff auf einzelne Bits möglich. Zu diesem Zweck wird der Index an das zu adressierende Bits angehängt und mit einem Punkt abgetrennt. Dem Bit-Index kann eine beliebige Konstante zugewiesen werden. Die Indizierung ist 0-basiert.

Syntax

<Variablename>.<Bitindex>

Beispiel

a : INT;
b : BOOL;
...
a.2 := b;

Das dritte Bit der Variablen a wird auf den Wert der Variablen b gesetzt. Das bedeutet, dass die Variable a dem Wert 3 entspricht.

Ist der Index größer als die Bit-Breite der Variablen so wird folgender Fehler ausgegeben:

'Index '<n>' Außerhalb des gültigen Bereichs für Variable  '<var>'!'

Die Bitadressierung ist bei folgenden Datentypen möglich: :

oSINT

oINT

oDINT

oUSINT

oUINT

oUDINT

oBYTE

oWORD

oDWORD

Ist der Datentyp nicht zulässig, so wird folgende Fehlermeldung ausgegeben:

'Unzulässiger Datentyp '<Typ>' für direkte Indizierung'.

Ein Bit-Zugriff darf nicht einer VAR_IN_OUT-Variablen zugewiesen werden!

Bitzugriff mit Hilfe einer globalen Konstante

Wenn eine globale Konstante deklariert wird, die den Bitindex definiert, kann diese Konstante für den Bitzugriff verwendet werden.

Beispiele für den Bitzugriff über eine globale Konstante

1. Deklaration einer globalen Konstanten in einer globalen Variablenliste

Die Variable enable legt fest, auf welches Bit zugegriffen werden soll:

VAR_GLOBAL CONSTANT
    enable:int:=2;
END_VAR

2. Bitzugriff auf eine ganzzahlige Variable

Deklaration in einem POU:

VAR
    xxx:int;
END_VAR

Bitzugriff:

xxx.enable := true; (* -> the third bit in variable xxx will be set TRUE *)

Bitzugriff auf BIT-Datentypen

Der BIT-Datentyp ist ein besonderer Datentyp, der nur in Strukturen erlaubt ist. Weitere Informationen hierzu finden Sie unter Bit-Zugriff in Strukturen.

Beispiel: Bit-Zugriff auf BIT-Datentypen

Deklaration der Struktur

TYPE ControllerData :
STRUCT
    Status_OperationEnabled : BIT;
    Status_SwitchOnActive : BIT;
    Status_EnableOperation : BIT;
    Status_Error : BIT;
    Status_VoltageEnabled : BIT;
    Status_QuickStop : BIT;
    Status_SwitchOnLocked : BIT;
    Status_Warning : BIT;
END_STRUCT
END_TYPE

Deklaration in einem POU

VAR
    ControllerDrive1:ControllerData;
END_VAR

Bitzugriff

ControllerDrive1.Status_OperationEnabled := TRUE;