Cet opérateur d'adresse n'est pas défini par la norme IEC 61131-3.
ADR renvoie l'adresse de son argument dans un élément DWORD. Cette adresse peut être attribuée à un pointeur au sein du projet.
NOTE : EcoStruxure Machine Expert vous permet d'appliquer l'opérateur ADR aux 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 (reportez-vous au 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 les propriétés d'objet correspondantes (dans le menu Afficher > Propriétés… > Compiler) au niveau de l'objet fonction.
dwVar:=ADR(bVAR);
LD bVar
ADR
ST dwVar
Remarques concernant les changements en ligne
Il arrive que la commande Changement en ligne déplace 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.
Une fois décalées, les variables POINTER risquent de pointer vers des emplacements incorrects dans la mémoire. Par conséquent, vérifiez qu'aucun pointeur n'est conservé d'un cycle à l'autre, mais réattribué à chaque cycle.
|
COMPORTEMENT INATTENDU DE L'EQUIPEMENT |
Attribuez la valeur des variables de type POINTER TO avant sa 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.