Conoscere l’indirizzo delle variabili (funzione ADR)

Attenzione !I messaggi sul forum potrebbero essere modificati dal nostro staff. La data e l'ora dei messaggi potrebbe non essere quella di invio ma quella di moderazione da parte dello staff. Grazie per l'attenzione.

Home Forum Programmazione IEC 61131 (LogicLab) Conoscere l’indirizzo delle variabili (funzione ADR)

Questo argomento contiene 1 risposta, ha 2 partecipanti, ed √® stato aggiornato da  Sergio Bertana 5 anni, 5 mesi fa.

Stai vedendo 2 articoli - dal 1 a 2 (di 2 totali)
  • Autore
    Articoli
  • #35430

    Maurizio
    Partecipante

    Ho la necessità di intervenire in lettura e scrittura su una memoria, disponibile sia dal lato TCP modbus che dal lato programma. Inoltre, l’indirizzo della variabile deve essere fornito ad una libreria protetta, che deve poter avere accesso alla variabile stessa.

    In altri sistemi di sviluppo esiste la funzione ADR, che fornisce l’indirizzo fisico della variabile, utilizzabile poi per referenziarla dall’interno della libreria. E’ possibile avere la stessa funzione in LogicLab ?

    #37822

    Sergio Bertana
    Amministratore del forum

    Anche se l’utilizzo dei puntatori è deprecato dalla normativa IEC-61131, in molti programmi sarebbe impossibile realizzare certe funzioni senza i puntatori. Ecco quindi che anche LogicLab come altri ambienti di programmazione prevede la possibilità di utilizzare i puntatori e di conseguenza conoscere l’indirizzo di allocazione delle variabili. utilizzando la funzione ADR().

    Ipotizzando di avere un contatore Counter di tipo USINT e di volerne conoscere e/o modificare il valore con un puntatore, dovremo definire una variabile Ptr di tipo @USINT.

    Ptr:=ADR(Counter); carica in Ptr l’indirizzo della variabile Counter.
    IF (@Ptr = 10) THEN controlla il valore della variabile Counter.
    @Ptr:=20; carica 20 nella variabile Counter.

Stai vedendo 2 articoli - dal 1 a 2 (di 2 totali)

Devi essere loggato per rispondere a questa discussione.