ADR

Présentation

Cet opérateur d'adresse n'est pas défini dans la norme IEC 61131-3.

ADR renvoie l'adresse de son argument dans un DWORD. Cette adresse peut être attribuée à un pointeur au sein du projet.

NOTE : EcoStruxure Machine Expert vous permet d'utiliser l'opérateur ADR avec des noms de fonction, de programme, de bloc fonction et de méthode.

Sachez qu'il est possible de transmettre des pointeurs de fonction à des bibliothèques externes et consultez le chapitre Pointeurs. En revanche, vous ne pouvez pas appeler un pointeur de fonction dans EcoStruxure Machine Expert. Pour activer un appel système (système d'exécution), définissez la propriété d'objet correspondante (menu Affichage > Propriétés... > Compiler) pour l'objet fonction.

Exemple en langage ST

VAR
        piAddress1: POINTER TO INT;
        iVar1 : INT := 5;

        lwAddress2 : LWORD;
        iVar2 : INT := 10;

        xwAddress3 : _XWORD;
        iVar3 : INT;
END_VAR
piAddress1 := ADR(iVar1); // piNumber is assigned to address of iVar1
lwAddress2 := ADR(iVar2); // works for 64 bit run time system
xwAddress3 := ADR(iVar3); // works for 32 bit and 64 bit systems

Exemple en langage IL

LD     bVar
ADR
ST     dwVar

Remarques concernant les changements en ligne

L'exécution de la commande Changement en ligne peut déplacer des variables dans la mémoire. En cas de changement en ligne, vous êtes averti de la nécessité éventuelle de procéder à une copie.

Le décalage des variables peut avoir pour effet que les variables POINTER TO pointent vers une mémoire non valide.

 AVERTISSEMENT
FONCTIONNEMENT IMPRÉVU DE L'ÉQUIPEMENT
Attribuez la valeur des variables de type POINTER TO avant la première utilisation dans un POU ainsi qu'à chaque cycle suivant.
Le non-respect de ces instructions peut provoquer la mort, des blessures graves ou des dommages matériels.
NOTE : Les variables POINTER TO de fonctions et de méthodes ne doivent pas être renvoyées à l'élément appelant la fonction ni transmises à des variables globales.