ADR

Überblick

Dieser Adressoperator wird nicht vom IEC 61131-3-Standard vorgegeben.

ADR gibt die Adresse des zugehörigen Arguments in einem DWORD zurück. Diese Adresse kann innerhalb des Projekts einem Zeiger zugewiesen werden.

HINWEIS: EcoStruxure Machine Expert ermöglicht die Verwendung des ADR-Operators mit Funktionsnamen, Programmnamen, Funktionsbausteinnamen und Methodennamen.

Weitere Informationen finden Sie im Kapitel Zeiger. Beachten Sie, dass Funktionszeiger an externe Bibliotheken weitergegeben werden können. Es besteht allerdings keine Möglichkeit, einen Funktionszeiger innerhalb von EcoStruxure Machine Expert aufzurufen. Um einen Systemaufruf (Laufzeitsystem) zu ermöglichen, legen Sie die entsprechende Objekteigenschaft (im Menü Ansicht > Eigenschaften... > Generieren) für das Funktionsobjekt fest

Beispiel in 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

Beispiel in IL (AWL)

LD     bVar
ADR
ST     dwVar

Wichtige Hinweise zur Online-Änderung

Wenn der Befehl Online-Change ausgeführt wird, werden unter Umständen Variablen an eine andere Stelle im Speicher verschoben. Wenn eine Kopie erforderlich ist, erscheint während der Online-Änderung ein entsprechender Hinweis.

Die Verschiebung von Variablen kann zur Folge haben, dass POINTER TO-Variablen auf einen ungültigen Speicher verweisen.

 WARNUNG
UNBEABSICHTIGTER GERÄTEBETRIEB
Weisen Sie den Wert beliebiger POINTER TO-Variablen vor ihrer ersten Verwendung in einer POU und in jedem darauf folgenden Zyklus zu.
Die Nichtbeachtung dieser Anweisungen kann Tod, schwere Verletzungen oder Sachschäden zur Folge haben.
HINWEIS: POINTER TO-Variablen von Funktionen und Methoden sollten nicht an den Aufrufer dieser Funktion zurückgegeben oder an globale Variablen übergeben werden.