Partieller Zugriff auf ANY_BIT-Variablen

Syntax
variable_name.size#

Bedeutung

partieller Zugriff auf →Variablen von einem dieser ANY_BIT-Datentypen: BYTE, WORD, DWORD oder LWORD

Erweiterung zur IEC-Norm

In logi.CAD 3 ist der Schreibzugriff auf ein Bit, Byte, Wort oder Doppelwort einer Variable ebenfalls möglich. Dieser Schreibzugriff ist eine Erweiterung zur →IEC-Norm.

Diese Angaben sind erforderlich, um ein Element der Variable anzusprechen::

  • variable_name = Name der Variable

  • . = Trennzeichen

  • size = Präfix für die Größe
    Unterstützte Präfixe und deren Bedeutung:

    %X, nur % oder gar kein Präfix

    Bool (einzelnes Bit)

    %B

    Byte (8 Bits)

    %W

    Wort (16 Bits)

    %D

    Doppelwort (32 Bits)

    %L

    Langwort (64 Bits)

  • # = entsprechendes Bit, Byte, Wort, Doppelwort oder Langwort
    Diese Angaben sind Ganzzahl-Literale (von 0 für das niedrigstwertige Element bis ein Literal für das höchstwertige Element).

    Zugriff auf

    bei Datentyp

    Literal

    Syntax

    Bit (BOOL)

    BYTE

    0 bis 7

    variable_name.%X0 bis variable_name.%X7

    WORD

    0 bis 15

    variable_name.%X0 bis variable_name.%X15

    DWORD

    0 bis 31

    variable_name.%X0 bis variable_name.%X31

    LWORD

    0 bis 64

    variable_name.%X0 bis variable_name.%X63

    Byte (BYTE)

    WORD

    0 bis 1

    variable_name.%B0 bis variable_name.%B1

    DWORD

    0 bis 3

    variable_name.%B0 bis variable_name.%B3

    LWORD

    0 bis 7

    variable_name.%B0 bis variable_name.%B7

    Word (WORD)

    DWORD

    0 bis 1

    variable_name.%W0 bis variable_name.%W1

    LWORD

    0 bis 3

    variable_name.%W0 bis variable_name.%W3

    Doppelwort (DWORD)

    LWORD

    0 bis 1

    variable_name.%D0 bis variable_name.%D1

    Langwort (LWORD)

    LWORD

    0

    variable_name.%L0


Beispiel
VAR
VarBo : BOOL;
VarBy1, VarBy2 : BYTE;
VarLW : LWORD;
VarW : WORD;
VarDW : DWORD;
END_VAR;
 
(* lesende Zugriffe *)
VarBo := VarBy1.%X0; (* 'Bit 0' von 'VarBy1' wird auf 'VarBo' zugewiesen. *)
VarBo := VarBy1.%7; (* 'Bit 7' von 'VarBy1' wird auf 'VarBo' zugewiesen. *)
(* 'VarBy1.%7' wird wie 'VarBy1.%X7' oder 'VarBy1.7' interpretiert. *)
VarBo := VarLW.63; (* 'Bit 63' von 'VarLW' wird auf 'VarBo' zugewiesen. *)
(* 'VarLW.63' wird wie 'VarLW.%X63' oder 'VarLW.%63' interpretiert. *)
VarBy1 := VarW.%B1; (* 'Byte 1' von 'VarW' wird auf 'VarBy1' zugewiesen. *)
VarW := VarLW.%W3; (* 'Wort 3' von 'VarLW' wird auf 'VarW' zugewiesen. *)
 
(* schreibende Zugriffe *)
VarBy2.4 := TRUE; (* 'TRUE' wird 'Bit 4' von 'VarBy2' zugewiesen. *)
(* 'VarBy2.4' wird wie 'VarBy2.%X4' oder 'VarBy2.%4 interpretiert. *)
VarDW.%B2 := 16#F0; (* '16#F0' wird 'Byte 2' von 'VarDW' zugewiesen. *)