ferentarius Posted January 7, 2013 Report Posted January 7, 2013 Ciao a tutti, solitamente quando usavo un DB ad indirizzamento assoluto mi trovavo di fronte a questa situazione. Ho un DB per gestire una cinquantina di allarmi (bool). Per verificare se sono in una situazione generica di allarme (almeno uno di questi 50 alzato) andavo a confrontare in OR tutte le double word che componevano il DB, riuscivo cosi con poco codice (due confronti a 0 di due DWord dove erano contenuti tutti i 50 allarmi) ad ottenere quello che volevo. Mi domandavo ora come posso fare utilizzando un DB simile ma indirizzato simbolicamente (o ottimizzato). Sono costretto a confrontare 50 bool per sapere se sono in una situazione di allarme o esiste una maniera piu intelligente? Grazie e ciao. Fere.
ferentarius Posted January 14, 2013 Author Report Posted January 14, 2013 Ho chiamato l'. della Siemens e mi hanno detto che l'unica possibilità è dichiarare il DB NON ottimizzato, ma standard (per 300 e 400) cosi da poter utilizzare le doubleword per racchiudere 32bool e fare meno confronti. Peccato, speravo in una soluzione un pò più intelligente.
Frank681 Posted January 14, 2013 Report Posted January 14, 2013 Non vedo la difficolta effettIvamente un db standard ti da la compatibilita 300 e 400 per cui se sviluppi su piu piattaforme puoi mettertelo in libreria.
rampikandre Posted January 21, 2013 Report Posted January 21, 2013 Ciao, puoi anche fare così: creare una variabile DWord, anche simbolica, (chiamiamola allarmi), poi usi la variabile allarmi come DWord nei confronti per vedere se hai un bit alto. Per vedere i singnoli bit devi usare questa dicitura: nomeDB.allarmi.x0 per il primo bit .x1 per il secondo e così via. L'aspetto negativo di questo modo è che perdi il simbolico sui bit. La stessa cosa la puoi usare anche con i byte (, con le word (w) Spero di esserti stato utile Ciao
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