Vai al contenuto
PLC Forum


Calcolo numero di Bit attivi in un byte o una Word


quaz90

Messaggi consigliati

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!

Link al commento
Condividi su altri siti


Livio Orsini

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.

Link al commento
Condividi su altri siti

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.

Link al commento
Condividi su altri siti

Livio Orsini

Son 20 circa pagine per tutte le istruzioni.

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

Link al commento
Condividi su altri siti

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

Link al commento
Condividi su altri siti

zanellatofabio

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

 

Link al commento
Condividi su altri siti

Livio Orsini
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

Link al commento
Condividi su altri siti

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. 

Link al commento
Condividi su altri siti

  • 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...