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 Neuron Power Engineer 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 Variablen

  • . = 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

    Wort (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;
 
(* reading accesses *)
VarBo := VarBy1.%X0;  (* 'Bit 0' of 'VarBy1' is assigned to 'VarBo'. *)
VarBo := VarBy1.%7;   (* 'Bit 7' of 'VarBy1' is assigned to 'VarBo'. *)
                      (* 'VarBy1.%7' is interpreted as 'VarBy1.%X7' or 'VarBy1.7'. *)
VarBo := VarLW.63;    (* 'Bit 63' of 'VarLW' is assigned to 'VarBo'. *)
                      (* 'VarLW.63' is interpreted as 'VarLW.%X63' or 'VarLW.%63'. *)
VarBy1 := VarW.%B1;   (* 'Byte 1' of 'VarW' is assigned to 'VarBy1'. *)
VarW := VarLW.%W3;    (* 'Wort 3' of 'VarLW' is assigned to 'VarW'. *)
 
(* writing accesses *)
VarBy2.4 := TRUE;     (* 'TRUE' is assigned to 'bit 4' of 'VarBy2'. *)
                      (* 'VarBy2.4' is interpreted as 'VarBy2.%X4' or 'VarBy2.%4'. *)
VarDW.%B2 := 16#F0;   (* '16#F0' is assigned to 'byte 2' of 'VarDW'. *)