Vai al contenuto
PLC Forum


Calcolo numero di Bit attivi in un byte o una Word


Messaggi consigliati

Inserito:

Buongiorno a tutti quanti! 

Avrei bisogno di un consiglio da chi è un pò più esperto di me in merito a un operazione da fare.

In sostanza dovrei vedere il numero di bit che sono attivi all'interno di un Byte (oppure di una Word) e poi passarlo ad un intero; per capirci :

-   0000 0000 : ha attivi 0 bit, quindi andrò a caricare nel mio intero mw10 il valore 0

-   0010 0110 : ha attivi 3 bit, quindi io vorrei andare a caricare nella mia mw10 il valore 3.

Sapreste aiutarmi ad impostare questa operazione logica?

Ringrazio in anticipo tutti quelli che sapranno aiutarmi!

Ciao!


Livio Orsini
Inserita:

La prima modalità che mi viene alla mente esegui un loop di 8 / 16 shift ed ogni volta che hai un riporto incrementi la variabile. Nel caso in esempio se incrementi la mw10 ad ogni riporto, nel secondo caso alla fine ti ritrovi 3, mentre nel primo avresti 0.

Ma ci sono altri modi per eseguire il test.

Inserita:

Buongiorno Livio,

cosa intende per riporto? Inoltre lo Shift che dice è un semplice Shift Left di 8 posizioni? Ma così non riesco a capire in che modo ottenere il risultato.

Livio Orsini
Inserita:

Nel manuale step 7 credo che al capitolo 11 si trattino le istruzioni di scorrimento. Leggi come funzionano e così capirai quello che intendo.

 

Inserita:

Ok, mi farò una bella stuiata ;)

La ringrazio!

Livio Orsini
Inserita:

Son 20 circa pagine per tutte le istruzioni.

Però il manualeè la prima cosa da studuare, prima di emttersi a smanettare.;)

Inserita:

Be a dire il vero è un pò che smanetto, sono 3 anni che ci lavoro:P, solo che molto spesso, appunto per impegni lavorativi e varie priorità, non si ha tempo per passarsi l'infinita libreria di Siemens!
Adesso però, in modo particolare, ero alla ricerca di una soluzione "smart" per risolvere la cosa, e avere qualche punto di vista in più mi faceva molto comodo :P

zanellatofabio
Inserita:

Nelle biblioteche del kop fup awl, cerca Standard Library --> TI-S7 converting Blocks --> FC99

Conta il numero di bit 1 (BITSUM): FC99

La funzione "Conta il numero di bit 1" (BITSUM) conta il numero di bit impostati a 1 nell’ingresso IN e restituisce il valore ottenuto come valore della funzione.

 

CIAO

 

Livio Orsini
Inserita:
Quote

Be a dire il vero è un pò che smanetto, sono 3 anni che ci lavoro..

 

in 3 anni il manuale di base dovresti conoscerlo a memoria, solo per averlo consultato secondo bisogno;)

Almeno conoscere le istruzioni standard IEC

Inserita:

Il metodo più semplice è usare l'FC che ti ha consigliato Zanellatofabio, ma se vuoi smanettarci sopra e imparare qualcosa prova a fare come dice Livio, costruisci un loop che effettua degli shift di un passo verso destra (istruzione SRW 1), successivamente allo shift usa la istruzione SPP per saltare in un punto in cui incrementerai una word di conteggio. 

  • 4 months later...

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 account

Accedi

Hai già un account? Accedi qui.

Accedi ora
×
×
  • Crea nuovo/a...