ADR

Panoramica

Questo operatore di indirizzo non è specificato dallo standard IEC 61131-3.

ADR restituisce l’indirizzo del suo argomento in una DWORD. Questo indirizzo può essere assegnato a un puntatore nel progetto.

NOTA: EcoStruxure Machine Expert consente di utilizzare l’operatore ADR con nomi funzione, nomi programma, nomi blocco funzione e nomi metodo.

Vedere anche il capitolo Puntatori e tenere presente che i puntatori a funzioni possono essere passati a librerie esterne. Non è tuttavia possibile chiamare un puntatore a una funzione all'interno di EcoStruxure Machine Expert. Per poter abilitare una chiamata di sistema (sistema runtime), impostare la rispettiva proprietà dell'oggetto (nel menu Visualizza > Proprietà... > Compila) per l'oggetto funzione.

Esempio 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

Esempio in IL

LD     bVar
ADR
ST     dwVar

Considerazioni relative alle modifiche online

Eseguendo il comando Modifica online è possibile spostare le variabili in un'altra posizione di memoria. Durante la modifica in linea viene indicato se la copia è necessaria.

Lo spostamento di variabili può avere come conseguenza che le variabili POINTER TO puntino a una memoria non valida.

 AVVERTIMENTO
FUNZIONAMENTO IMPREVISTO DELL'APPARECCHIATURA
Assegnare il valore di ogni variabile di tipo POINTER TO prima di utilizzarla la prima volta in una POU e ad ogni ciclo successivo.
Il mancato rispetto di queste istruzioni può provocare morte, gravi infortuni o danni alle apparecchiature.
NOTA: Le variabili POINTER TO delle funzioni e dei metodi non devono essere restituite all'elemento che ha effettuato la chiamata di questa funzione o passate alle variabili globali.