marcob1984 Posted November 19, 2024 Report Posted November 19, 2024 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
acquaman Posted November 19, 2024 Report Posted November 19, 2024 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.
marcob1984 Posted November 19, 2024 Author Report Posted November 19, 2024 (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 November 19, 2024 by marcob1984 errore battitura
acquaman Posted November 19, 2024 Report Posted November 19, 2024 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
marcob1984 Posted November 19, 2024 Author Report Posted November 19, 2024 Come pensavo Acquaman. Grazie
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now