Indelicato Inserito: 27 aprile 2005 Segnala Inserito: 27 aprile 2005 Ho bisogno di una idea . Spiego , ho una serie di bit a 1 in un'area ben definita. con partenza supponiamo mw140 per una lunghezza xxx , vorrei fare un FB parametrizzato dove in input si trova la prima mw , secondo input numero delle word ,ed in uscita ,secondo il bit ad uno il suo corrispondente in numero decimale. Mi spiego, se la prima mw è la mw140 ed il bit a 1 è m 140.0 il numero sarà 1, se è m141.7 il numero in decimale progressivo sarà 16 , se il bit ad uno è 142.0 sarà 17 e così via . Ringrazio chi può indirizzare per risolvere il problema Michele
p.valli Inserita: 27 aprile 2005 Segnala Inserita: 27 aprile 2005 non ho ben capito i parametri in ingresso alla tua funzione.Ma la prima cosa che m viene n mente è fare un loop , dove carichi all'inzio il tuo indirizzo d partenza (ad es. usando AR1), azzer un contatore locale ed inizi a vedere bit per bit (A M[AR1,P#0.0], incrementando sia il contatore (nc 1) che il puntatore (ncremento d un bit) se non soddisfano le tue esgenze.Esci dal loop se:- hai trovato 1o- hai raggiunto la fine della tua zona di memoria (che deve essere circoscritta e conosciuta!!)in uscita da il contatore
Indelicato Inserita: 27 aprile 2005 Autore Segnala Inserita: 27 aprile 2005 diciamo che controllando un'area di memoria da MW140 per n MW ogni volta che un singolo bit cambia stato ( da 0 a 1) in una mw ( INT) mi venga di conseguenza il numero progressivo del bit
STEU Inserita: 27 aprile 2005 Segnala Inserita: 27 aprile 2005 (modificato) Devi vedere quale bit va a 1 rispetto alla scansione precedente?Quanti bit nella tua stringa possono essere a 1?Se hai più di un bit ad 1 ti viene visualizzato il numero del primo bit a 1 o dell'ultimo? Modificato: 27 aprile 2005 da STEU
Indelicato Inserita: 28 aprile 2005 Autore Segnala Inserita: 28 aprile 2005 (modificato) vediamo di essere più chiari .Supponenedo di avere un area di memoria da MW140 a Mwnnn bene in quest'area sono appogiate le anomalie che possono essere anche più di una , durante la scansione di quest area ogni volta che un singolo bit o più di uno va ad 1 su una word (INT) appare il numero relativo bit , cioè M140.0 = 1, M140.1=2 M140.2=3 ecc. ecc. Spero dim aver spiegato il problema e che qualcuno mi dia un idea per eseguire questo piccolo problema , non voglio fare [ u m140.0 move 1 su mw150, u m140.1 move 2 su mw150 ecc. ecc. ]Grazie di tutto Modificato: 28 aprile 2005 da Indelicato
Matteo Montanari Inserita: 28 aprile 2005 Segnala Inserita: 28 aprile 2005 (modificato) seguendo il tuo ultimo esempio, nel MW150 avresti sempre il numero dell'utima "anomalia", mi sbaglio, oppure vuoi che MW150 assuma in nuovo valore da ogni ciclo:se presenti allarmi 1, 3, 18 su mw150 si deve ottenere 1 il primo ciclo, 3 il ciclo successivo e 18 quello successivo ancora.devi generare un gestore di allarmi che analizza i bit di allarmi presenti in una determinata area di dati (merker o altro) ed ottenere il numero dell'allarme corrispondente.qualcosa del genere era già stata fatta per esaminare il contenuto di una tabella.puoi vedere l'esempio nella sezione UP/DownLoad file nella cartella esempi di programmazione.link Modificato: 28 aprile 2005 da keosmm
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