Skip to main content

Accès partiel aux variables

L'expression est conforme à la norme CEI 61131-3.

Un accès partiel aux variables est possible dans le cas de variables CEI de type données BYTE, WORD, DWORD ou LWORD (Type de données ANY, ANY_<type> ).

Syntaxe :

<nom de la variable>. % <type partiel> <index partiel>

Un espace est autorisé après l'opérateur point (.). Aucun espace n'est autorisé après le signe de pourcentage (%) et après le type partiel.

<nom de la variable>

Nom de l ANY_BIT variable du type BYTE, WORD, DWORD, ou LWORD

<type partiel>

X pour BIT accéder

B pour BYTE accéder

W pour WORD accéder

D pour DWORD accéder

L pour LWORD accéder

Accès à __XWORD est également autorisé et se comporte comme un DWORD ou LWORD en fonction de la taille du pointeur.

Accès à BOOL n'est pas autorisé même si le BOOL le type de données fait partie du ANY_BIT les types.

<index partiel>

De 0 à l'indice maximum

Usage

L'accès partiel ne peut être utilisé que pour les variables non temporaires (variables définies par l'utilisateur, champs, accès aux tableaux ou déréférencement). Ceci n'est pas autorisé pour les résultats temporaires ou les littéraux.

L'expression elle-même n'est pas temporaire et peut être utilisée comme expression dans REFERENCE TO ou comme un ADR opérateur.

Exemple 200. Exemple
// Implementation
PartialVarB := GVL.Variable.%B0;
PartialVarX := array[idx].%X0;
PartialVarW := tempVariable.%W2;
PartialVarD := ptr^.%D2;
PartialVarB := variable.%W1.%B1

L'accès partiel n'est pas possible dans le cas d'appels de fonctions, d'expressions d'index, de littéraux ou de propriétés.

Exemple négatif :

FunctionCall().%B0
(1+index).%B0
(DWORD#16#12345678).%B0
Property.%B0


Index maximum des types partiels

L'accès partiel n'est possible que si l'expression appelée a un type conforme et que l'index partiel est inférieur ou égal à l'index partiel maximum. Sinon, une erreur du compilateur est signalée.

Type partiel

Type d'accès

Maximum d'index partiel

X

BYTE

7

WORD

15

DWORD

31

LWORD

63

B

BYTE

0

WORD

1

DWORD

3

LWORD

7

W

BYTE

Non supporté

WORD

0

DWORD

1

LWORD

3

D

BYTE

Non supporté

WORD

Non supporté

DWORD

0

LWORD

1

L

BYTE

Non supporté

WORD

Non supporté

DWORD

Non supporté

LWORD

0

Expression avec accès partiel

Le type d'une expression d'accès partiel dépend uniquement de <type partiel> et doit être sélectionné à l’aide du tableau suivant.

Type partiel

Type d'expression

X

BIT

B

BYTE

W

WORD

D

DWORD

L

LWORD

Adresses

Il est permis de créer l'adresse à partir d'une expression d'accès partiel de type partiel B, W, D, et L.

C'est pas autorisé à créer l'adresse à partir d'une expression d'accès partiel de type partiel X.

C'est pas autorisé à attribuer une expression d'accès partiel de type BIT à un VAR_INOUT variable.

Exemple 201. Exemples
ADR(var%.B0)
referenceVariable REF= var.%W1

Exemple négatif :

ADR(var.%X0)
ref REF= var.%X0