pablo.mrg Inserito: 16 aprile 2009 Segnala Inserito: 16 aprile 2009 Ciao a tutti, vorrei sapere se è possibile dichiarare una variabile in un DB con INT o WORD e poi accedere ai suoi bit, magari assegnando anche ad essi un nome simbolico.Faccio un esempio: vorrei creare una parola di stato a 16 bit da usare come indicatore dello stato del sistema, appunto, ed usarne i singoli bit per attivare i componenti coinvolti nel funzionamento legato a quello stato.CiaoPaolo
pablo.mrg Inserita: 16 aprile 2009 Autore Segnala Inserita: 16 aprile 2009 Aggiungo qualche dettaglio per spiegare meglio cosa intendo. Quello che voglio fare io è creare una cosa del genere:Simbolo | Indirizzo StatoSistema MW0 Stato0 M0.0 Stato1 M0.1 Stato2 M0.2 ...in modo da poter accedere alla word intera attraverso il simbolo StatoSistema oppure ai singoli bit attraverso i simboli Stato0, Stato1, Stato2 e così via.Sono riuscito a realizzare questa struttura dati attraverso l'editor dei simboli, volevo sapere se è possibile ottenerla anche con un DB... perché non ci son riuscito. Il fatto di voler usare un DB è legato fondamentalmente a 2 questioni (sulle quali si accettano obiezioni):1 - ho bisogno che i dati siano ritentivi e, anche se con le opportune impostazioni hw lo sono anche le memorie M, mi hanno fortemente consigliato di usare i DB x i dati ritentivi2 - usare i DB mi consente di tenere le variabili relative alle diverse a "sezioni" del sw raggruppate ed organizzare meglio la struttura, invece di usare un unico calderone per tutti i simboliCiaoPaolo
cliff Inserita: 16 aprile 2009 Segnala Inserita: 16 aprile 2009 Metti che hai la db20per accedere alla word indichi db20.dbw0per accedere alla parte alta e bassa della word db20.dbb0 e db20.dbb1per accedere ai singoli bit basta fare db20.dbx0.0 ... db20.dbx0.7 e da db20.dbx1.0 a db20.dbx1.7per il simbolico dichiara la db nel seguente modoIndirizzo Nome Tipo Valore iniziale Commento+0.0 bit00 bool False +0.1 bit01 bool Falsese poi nel simbolico inserisci il nome della db nel codice avrai una cosa del tipo"DbControllo".bit00 per indicare ovviamente db20.dbx0.0Bye
pablo.mrg Inserita: 17 aprile 2009 Autore Segnala Inserita: 17 aprile 2009 Grazie mille.Quello che però non riesco a fare nella dichiarazione è assegnare un nome simbolico sia ai bit, sia al byte (o word che sia).CiaoPaolo
TravelMen Inserita: 17 aprile 2009 Segnala Inserita: 17 aprile 2009 (modificato) Per quello che ne so, è una cosa che non si possa fare, mentre con AB lo si può fare.ATTENZIONE: mi riferisco al semplice fatto di dare un nome alla word ed hai sui bit/byte, mentre se si parla di scrivere/leggere una word ed i suoi singoli bit o byte ed viceversa, lo si può fare senza limiti, sta alla fantasia di chi programma . Modificato: 17 aprile 2009 da TravelMen
pablo.mrg Inserita: 17 aprile 2009 Autore Segnala Inserita: 17 aprile 2009 Ok grazie, credo sia chiaro.Vorrà dire che per quella manovra userò direttamente le memorie specificando di renderle ritentive nella configurazione HW.Grazie a tuttiPaolo
tiaef Inserita: 17 aprile 2009 Segnala Inserita: 17 aprile 2009 Un'altra soluzione ci sarebbe, ma non so se è quello che ti serve:all'interno del DB crei una struttura (che magari chiami WORD_xx) di variabili contenente 16 variabili di tipo BOOL (che puoi chiamare BIT_0-BIT_15); se richiami un singolo bit nel codice ti apparirà NomeDelDB.NomeVariabileStruttura.NomeVariabileBitesempio U "DB_01".Word_00.bit_000ecco che se la tua esigenza è distingure chiaramente le appartenenze alle "word" questa soluzione può andar bene.Di contro nenanche in questo caso puoi richiamare nel codice la variabile struttura (solo denominata "word").
alessandro_marena Inserita: 24 aprile 2009 Segnala Inserita: 24 aprile 2009 Ciao a tuttihai provato a creare un udt nel db ?
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