Jump to content
PLC Forum


Interpretazione del tipo di dato


Recommended Posts

Posted

Buongiorno a tutti.

 

E' possibile interpretare il tipo di dato (INT / DINT / REAL etc...) di un'area di memoria?

So che se l'area di memoria è dichiarata come ANY posso interpretare il tipo di dato andando a leggere il valore del primo byte.

Ma se dovessi cercare di interpretarlo andando a leggere direttamente una MD oppure una MW oppure un'area di un DB?

 

Grazie a quanti potranno aiutarmi


Posted

Non capisco cosa intendi interpretare, se metti una variabile in una tabella delle variabili o anche solo on line sul programma, puoi leggere il valore che c'è all'interno della variabile.

 

Con area di memoria cosa intendi una Db o i merker?

 

Specifica anche che software stai usando Step7 o TIA portal.
 

Posted (edited)

Si, forse devo essere più preciso.

Sto usando step 7 di simatic manager su un 300.

L'obiettivo è quello di crearmi una fc o fb che sommi e faccia la media automaticamente dei valori di un'area di memoria su un DB.

Per area di memoria intendo, ad esempio, un'area che parte dalla MD600 alla MD648, oppure dalla PED600 alla PED648 (partendo dal presupposto che a partire dall'indirizzo iniziale a quello finale siano tutti dello stesso tipo).

E' vero che so già il tipo di dato a priori, ma nell'fc o fb ho bisogno di crearmi un codice che vada ad interpretare in automatico il tipo di dato per poter poi eseguire i calcoli in modo corretto. Se è DINT dovrò sommare e poi dividere per D, se REAL dovrò sommare e poi dividere per R. Quindi la mia idea è che in base al tipo di dato che gli arriva in ingresso, andrò 

a fare uno o l'altro calcolo.

 

Spero di essere stato più chiaro.

Perdonatemi

Edited by marcob1984
errore battitura
Posted

Il plc non riconosce il tipo di dato che gli passi in ingresso, potresti inserire come parametro in ingresso al blocco una selezione del tipo di dato, poi utilizzando i puntatori, leggendo qual'è il primo bite della tua catena di dati dal parametro any, puoi fare un ciclo per fare i tuoi calcolo.

Ovviamente lo puoi fare utilizzando l'AWL o l'SCL

 

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...