mkdev Inserito: 14 dicembre 2004 Segnala Share Inserito: 14 dicembre 2004 ciao,ma scusate, esiste una funzione tipo il sizeof() per le UDT che mi creo???supponiamo mi abbia creato la UDT10 e poi mi scrivo una ricerca in un vettore di UDT10.poi cambio la definizione di UDT (aggiungo un campo ad es) e se non ho il sizeof() mi devo cambiare il codice della ricerca!!!!!mah...grazie in anticipo. Link al commento Condividi su altri siti More sharing options...
Federico Milan Inserita: 14 dicembre 2004 Segnala Share Inserita: 14 dicembre 2004 Ciao,L'UDT è una descrizione di dati, non dati fisici ... quindi non esiste una funzione del tipo sizeof().puoi a priori leggere la dimensione del DB, e sampendo il numero di elementi ricavarti la dimensione della struttura dati o UDT associata ... io lo faccio spesso.ciao Link al commento Condividi su altri siti More sharing options...
Gianmario Pedrani Inserita: 14 dicembre 2004 Segnala Share Inserita: 14 dicembre 2004 Puoi usare la sfc24 test-db Con la SFC 24 "TEST_DB" (test data block) si ottengono informazioni su un blocco dati presente nella memoria di lavoro della CPU. La SFC rileva il numero dei byte di dati per il DB selezionato e verifica se il DB è protetto in scrittura.Parametri Dichiarazione Tipo Area di memoria DescrizioneDB_NUMBER INPUT WORD E, A, M, D, L, cost. Numero del DB da verificareRET_VAL OUTPUT INT E, A, M, D, L Informazione di erroreDB_LENTH OUTPUT WORD E, A, M, D, L Numero dei byte di dati contenuti nel DB selezionato.WRITE_PROT OUTPUT BOOL E, A, M, D, L Informazione sulla protezione da scrittura del DB selezionato (1 significa protetto in scrittura).Informazioni di erroreCodice di errore (W#16#...) Significato0000 Nessun errore80A1 Errore nel parametro di ingresso DB_NUMBER: il parametro attuale selezionatoha il valore 0è maggiore del numero di DB massimo ammesso per la CPU utilizzata80B1 Il DB con il numero indicato non è presente nella CPU.80B2 Il DB con il numero indicato è stato creato con la parola chiave UNLINKED. Link al commento Condividi su altri siti More sharing options...
Federico Milan Inserita: 14 dicembre 2004 Segnala Share Inserita: 14 dicembre 2004 Ciao Gianmario, però sebbene ottieni info sul DB, non otterrai info su una UDT ... almeno non mi sembra proprio possibile. Se ho capito quello che vuole mkdev, è parametrizzare a "runtime" i sui DB. Cosa ovviamente non possibile se non recuperare la lunghezza della DB e a riori conoscendo la dimensione dei dati trovare il numero di strutture indicizzate. Queste operazioni si possono fare. Quello che non si può fare programmare in modo dinamico le DB, probabilmente, derivando da una programmazione c/c++ è abituato ad usare ogetti, creazioni dinamiche in memoria, cosa che con i PLC è un po' diverso anche se in parte lo si emula ...ciao Link al commento Condividi su altri siti More sharing options...
Messaggi consigliati
Crea un account o accedi per commentare
Devi essere un utente per poter lasciare un commento
Crea un account
Registrati per un nuovo account nella nostra comunità. è facile!
Registra un nuovo accountAccedi
Hai già un account? Accedi qui.
Accedi ora