bitaccess in Codesys 3.5

Könntest Du mal bitte etwas präziser werden? Wo ist das für Codesys 2.3 beschrieben? Wenn Du auf einzelne Bits zugreifen willst geht das indem Du hinter dem Variablennamen einen Punkt und die Bitnummer setzt.
Etwa so:
Code:
VAR
wTest    : WORD
xBit01    : BOOL;
xBit02    : BOOL;
END_VAR

xBit01    := wTest.0;
xBit02    := wTest.1;
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Siehe Hilfe in Codesys 2.3 „Adressierung von Bits in Variablen“, „Bitzugriff mit Hilfe einer globalen Konstante:“
Beispiel:
Codesys 2.3



TYPE PLCOpen_OUT_Lenze84 :
STRUCT
(* CAN 1 *)
wControlWord: WORD; (* control word commands the drive *)
{bitaccess bDriveEnable 0 'Antrieb-Sperren/drive disable'}
{bitaccess bDriveQuickStop 1 'Antrieb-Halt / drive halt'}
...

Die Bits sind als Konstanten vom Typ INT deklariet, Beispiel: bDriveEnable :INT:=0; (* Antrieb-Sperren/drive diable *)

Wenn man nun eine Variable die Struktur zuweist, so kann man in Codesys 2.3 direkt auf die Bits zugreifen.

Zum Beispiel:

FieldBusOutputs : PLCOpen_OUT_Lenze84;

FieldbusOutputs.bDriveEnable := TRUE;

Dieses ist mit Codesys 3.5 nicht mehr möglich. Er akzeptiert das bitaccess nicht.
 
Eine Struktur mit Datentyp BIT (siehe Link von @oliver.tonn) und die dann mittels UNION mit z.B. einem WORD verknüpfen. Finde ich persönlich übersichtlicher, als den nummerischen Bit-Zugriff auf das WORD.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Eine Struktur mit Datentyp BIT (siehe Link von @oliver.tonn) und die dann mittels UNION mit z.B. einem WORD verknüpfen. Finde ich persönlich übersichtlicher, als den nummerischen Bit-Zugriff auf das WORD.
Bei dem Link gibt es noch ein Beispiel mit Konstanten, dann wäre der Zugriff auch nicht numerisch.
 
Zurück
Oben