Ron the bon Inserito: 26 settembre 2006 Segnala Inserito: 26 settembre 2006 Ciao a tutti,ho una domanda riguardante l'indirizzamento con pointer in un DB.Ho un DB che e' formato da un array unidimensionale, da zero a 99 (100 elementi). Ogni elemento e' constituito da 2 DINT, 1 REAL e un DWORD.Tramite indirizzamento diretto posso scrivere:L "DB100".Array[25].RealValueQuesto con la rappresentazione simbolica (DB100 e' il nome di DB100, Array e' il nome dell' array e RealValue e' il valore REAL dell'elemento 25).Ora la domanda:E' possibile sostituire il numero nelle parentesi quadre, in questo caso 25, con una variabile?Se si, potete fare un piccolo esempio?
mynameisrex Inserita: 26 settembre 2006 Segnala Inserita: 26 settembre 2006 Puoi / sai usare SCL ?Con quel linguaggio è molto semplice... in AWL, invece...
Ron the bon Inserita: 26 settembre 2006 Autore Segnala Inserita: 26 settembre 2006 Si posso ma non l'ho mai usato.
mynameisrex Inserita: 26 settembre 2006 Segnala Inserita: 26 settembre 2006 Allora, più semplciemnte, potresti aggirare il problema :tu hai una struttura di lunghezza fissa "2 DINT, 1 REAL e un DWORD" = 16 byte e il dato che ti serve è posizionato a partire dal 9° byte di ciascuna struttura.Se, per esempio, ti interessa leggere il 25° valore REAL significa che vuoi leggere il dato che si trova all'indirizzo DB100.DBD392 dove 392 che non è altro che il risultato di (25-1) * 16 + 8, ovvero la variabile a 32 bit che si trova dopo le prime 24 strutture (25-1)*16, dopo i primi due DINT della venticinquesima.Il programma verrebbe all'incirca così : // Apertura DB AUF DB 100// Calcolo dell'offset della variabile cercata dove MW100, nel tuo caso, = 25 L MW 100 L 1 -I L 16 *I L 8 +I // predisposizione del registro di indirizzo SLW 5 LAR1 // caricamento della variabile cercata L DBD [AR1,P#0.0]// appoggio dove vuoi tu... T MD 100Ciao ciao
Ron the bon Inserita: 26 settembre 2006 Autore Segnala Inserita: 26 settembre 2006 E come sarebbe in SCL?
STEU Inserita: 28 settembre 2006 Segnala Inserita: 28 settembre 2006 L' SCL è un concetto completamente diverso dall' AWL , In SCL non ti devi preoccupare degli accumulatori , non esiste in SCL un istruzione L db100.dbd100.Alle variabili devi assegnare un valore , o utilizzarle per fare un calcolo ma per te gli accumulatori in SCL non esistono.
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