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äfixBool (einzelnes Bit)
    %BByte (8 Bits)
    %WWort (16 Bits)
    %DDoppelwort (32 Bits)
    %LLangwort (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 aufbei DatentypLiteralSyntax
    Bit (BOOL)BYTE0 bis 7

    variable_name.%X0 bis variable_name.%X7

    WORD0 bis 15

    variable_name.%X0 bis variable_name.%X15

    DWORD0 bis 31variable_name.%X0 bis variable_name.%X31
    LWORD0 bis 64variable_name.%X0 bis variable_name.%X63
    Byte (BYTE)  WORD0 bis 1variable_name.%B0 bis variable_name.%B1
    DWORD0 bis 3variable_name.%B0 bis variable_name.%B3
    LWORD0 bis 7variable_name.%B0 bis variable_name.%B7
    Word (WORD)DWORD0 bis 1variable_name.%W0 bis variable_name.%W1
    LWORD0 bis 3variable_name.%W0 bis variable_name.%W3
    Doppelwort (DWORD)LWORD0 bis 1variable_name.%D0 bis variable_name.%D1
    Langwort (LWORD)LWORD0variable_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. *)