Vai al contenuto

AlessandroRH

Avviso "L'indirizzo non viene occupato da una variabile "

Recommended Posts

AlessandroRH

buongiorno a tutti,

avrei bisogno di un'informazione riguardante gli avvisi del compilatore del TIA Portal (attualmente utilizzo la versione 15) e spero possiate aiutarmi.

 

durante la compilazione del progetto vengono fuori delle innocue segnalazioni che però mi vengono contestate dal cliente. Quindi avrei la necessità di trovare un modo per deselezionare un determinato tipo di avvisi (dalle impostazioni possibilmente) e non tutti quanti tramite il pulsante "Visualizza/Nascondi Avvisi".

o nel caso qualcuno sapesse qualche altra soluzione, per il caso che vi illustrerò di seguito, ben venga 😉

 

venendo al dunque, ho una DB (DB100) dedicata alla diagnostica dell'impianto composta da vari campi BOOL raggruppati in delle strutture per differenziare i tipi di allarmi:1678352557_DBAlarms.thumb.png.d2d312b0a3d1982a460175f8b28aaecd.png

 

all'interno del progetto avrò poi un risolutivo degli allarmi che vien su tramite la comparazione in serie dell'interrogazione in DBD:

863556002_AvvisoTIA.thumb.png.f8129dbe41f030ecfa5ecdcfba753e9e.png

 

come potrete notare su qualsiasi operando DBD mi viene fuori l'avviso "L'indirizzo non viene occupato da una variale". 

Qualcuno di voi ha un'idea di come nascondere quella segnalazione o di risolvere il problema in qualche altro modo ??

 

P.S. sto utilizzando da poco il TIA per progettare i PLC,  quindi per molte operazioni se pur banali sto riscontrando degli intoppi. 

 

Vi ringrazio in anticipo per la vostra attenzione 😊

Condividi questa discussione


Link discussione
Condividi su altri siti
sae

Premessa non è materia di mia competenza, ma puoi dare un occhiata qui credo sia similare il discorso ciao.

Condividi questa discussione


Link discussione
Condividi su altri siti
drn5

Cosi su 2 piedi...

nella dichiarazione del DB usi delle strutture che poi compari a livello di dw, è proprio necessario ? Magari basta comparare un bit solo?

Hai provato a scriverlo in awl o scl? ti da sempre lo stesso warning?

 

ciao

Condividi questa discussione


Link discussione
Condividi su altri siti
batta

Il TIA è orientato completamente all'uso del simbolico, e non gli piace l'uso di indirizzi assoluti.
Ovviamente l'indirizzamento assoluto non è vietato, ma viene segnalato come warning in casi, come questo, ai quali non è possibile assegnare un nome alla variabile.
Le soluzioni per evitare l'uso di indirizzamento assoluto sono più di una.
Per esempio, potresti dichiarare delle variabili sovrapposte alle variabili booleane degli allarmi (vedi sovrapposizione con AT), oppure usare le funzioni GATHER o GATHER_BLK per appoggiare le strutture di BOOL a variabili Word o DWord.
Altra possibilità è creare una funzione, alla quale potresti passare in ingresso il DB, l'indirizzo del byte di partenza e il numero di variabili da analizzare.
In uscita potresti avere direttamente un bit di presenza allarme.

Un modo per fare questo, è l'utilizzo dell'istruzione PEEK.
Vedi esempio:

    #DW_Alm := PEEK_DWORD(area := 16#84,
                         dbNumber := #DB_Alm,
                         byteOffset := #OfsAlm);

Se metti questa istruzione in un ciclo FOR, analizzi lo stato della variabile DW_Alm, ed incrementi OfsAlm, hai già risolto tutto, senza bisogno di tirare in ballo variabili e comparazioni.

 

Condividi questa discussione


Link discussione
Condividi su altri siti
AlessandroRH

scusate il ritardo, ma ero disperso in qualche stabilimento.

 

ho seguito le soluzioni indicate dall'utente Batta e affermo che sono state tutte efficaci 👍

 

ringrazio tutti per essersi interessati alla mia richiesta !!

 

Condividi questa discussione


Link discussione
Condividi su altri siti
Cesare Nicola

Mi sembra un po' un eccesso di zelo la contestazione che ti fa il cliente: se paga, però, allora ha ragione! 🙂

 

Condividi questa discussione


Link discussione
Condividi su altri siti

Registrati o accedi per inserire messaggi

Devi essere un utente registrato per lasciare un messaggio. La registrazione è GRATUITA.

Crea un account

Iscriviti alla nostra comunità. È facile!

Registra un nuovo account

Connettiti

Hai già un account? Connettiti qui

Connettiti adesso

×