Vai al contenuto
PLC Forum


Come Si Converte Una Word In Bit


baltimora

Messaggi consigliati

Save, spero di non aver sbaglioto forum su cui postare la mia domanda.

Mi chiedevo se qualcuno potesse spiegarmi, come si converte (diciamo matematicamente) una word in bit.

Ma il contenuto di una word in che formato è? Esadecimale?

Grazie

Link al commento
Condividi su altri siti


Matteo Montanari

la word assume il valore che tu vuoi darle...

soltimante se la vuoi utilizzare in Bit allora ti conviene visualizzarla in Binario (0101000011101010101)

non esiste nessuna conversione da word a bit in quanto i bit fanno già parte della word:

bit

8 bit -> byte

16 bit -> 2 byte -> 1 word

32 bit -> 4 byte -> 2 word

in pratica, supponiamo di utilzzare i falg (merker) per facilitare l'esempio:

bit 0 -> m0.0

bit 1 -> m0.1

bit 2 -> m0.2

bit 3 -> m0.3

bit 4 -> m0.4

bit 5 -> m0.5

bit 6 -> m0.6

bit 7 -> m0.7

compongono il byte "mb0"

bit 0 -> m1.0

bit 1 -> m1.1

bit 2 -> m1.2

bit 3 -> m1.3

bit 4 -> m1.4

bit 5 -> m1.5

bit 6 -> m1.6

bit 7 -> m1.7

compongono il byte "mb1"

bit 00 -> m0.0

bit 01 -> m0.1

bit 02 -> m0.2

bit 03 -> m0.3

bit 04 -> m0.4

bit 05 -> m0.5

bit 06 -> m0.6

bit 07 -> m0.7

bit 08 -> m1.0

bit 09 -> m1.1

bit 10 -> m1.2

bit 11 -> m1.3

bit 12 -> m1.4

bit 13 -> m1.5

bit 14 -> m1.6

bit 15 -> m1.7

compongono la word "mw0" che a sua volta è compsta da il byte "mb0" ed il byte "mb1"

comunque queste cose le trovi spiegate in tutti i tutorial "livello" base di ogni PLC, ci dovrebbe essere qualcosa anche nella sezione didattica di questo stesso sito.

Link al commento
Condividi su altri siti

Claudio Monti
Mi chiedevo se qualcuno potesse spiegarmi, come si converte (diciamo matematicamente) una word in bit.

Matematicamente dividi il tuo valore per 2 e guardi se c'e' o meno il resto...

Ti faccio un esempio:

Valore di una WORD = 120 (in decimale) che corrisponde a 0000000001111000 (in binario)
come ti ha fatto presente Savino il valore e' sempre lo stesso, cambia il formato con cui tu lo rappresenti (es. 78 in esadecimale)

La WORD in questione e' appunto "composta" da 16 bit il cui meno significativo vale 0 (e' quello di destra!)
Se tu dividi 120/2 ottieni 60 con resto 0 -> 0 e' il valore del primo bit
Dividi 60/2 ottieni 30 senza resto -> 0 e' il valore del secondo bit
Dividi 30/2 ottieni 15 senza resto -> 0 e' il valore del terzo bit
Dividi 15/2 ottieni 7 con resto -> 1 e' il valore del quarto bit
Dividi 7/2 ottieni 3 con resto -> 1 e' il valore del quinto bit
Dividi 3/2 ottieni 1 con resto -> 1 e' il valore del sesto bit
Dividi 1/2 ottieni 0 con resto -> 1 e' il valore del settimo bit
Riempi poi tutti gli altri bit con 0 dall'ottavo al sedicesimo (bit piu' significativo, quello tutto a sinistra)

Esiste una funzione nei PLC per sapere se una divisione ha resto o no... nel PL7 di Telemecanique e' REM, in Unity e' MOD, per altri PLC devi consultare la guide di programmazione ma vedrai che piu' o meno si equivalgono tutti (se conformi alle IEC61131).

Link al commento
Condividi su altri siti

Ho ancora un dubbio.......

Leggo con un programma in vb una word a 16 bit proveniente da uno zelio. Ora nella casella di testo sul quale visualizzo la lettura della word mi compaiono dei numeri (in genere a 4 cifre) mi sorge il dubbio. Che la word letta possa non essere in formato esadecimale, perchè la word letta è solo numerica, mentre la numerazione a base esadecimale è composta da numeri "0-9" e lettere "A-F".

Non ho provato ad essere sincero ad effettuare la conversione del dato letto in binario con uno di quei tanti soft che si trovano in rete ed effettuano queste conversioni. Potrebbe trattarsi di una numerazione a base 8?

Ho sto commettendo un grossolano errore di base?

Esiste una funzione nei PLC per sapere se una divisione ha resto o no

Si sono a conoscenza di questo, so anche che nei plc vi sono anche delle funzioni preposte per effettuare le varie conversione.

Però vorrei capirne di più, per poter colmare le mie lacune.

Grazie

Modificato: da baltimora
Link al commento
Condividi su altri siti

baltimora

mi sorge il dubbio. Che la word letta possa non essere in formato esadecimale, perchè la word letta è solo numerica, mentre la numerazione a base esadecimale è composta da numeri "0-9" e lettere "A-F".

Beh, non e' detto che il numero a 4 cifre solo numeriche non corrisponda ad una rappresentazione HEX.

Ad esempio l' HEX 1086 = DEC 4230

Per capire se stai leggendo la grandezza giusta, dovresti andare on line PLC coll'apposito SW di progarmmazione, scrivere un numero qualsiasi su una specifica Word e poi constatare dal lato VB che stai leggendo lo stesso valore numerico, sia questo in formato DEC, HEX o BIN.

Scaricati questo programmino che ti aiutera' a capire meglio.

Converter

N.B. : ho solo cambiato il link

Link al commento
Condividi su altri siti

Claudio Monti

Apri la calcolatrice di Win in modalita' scientifica ed inserisci un numero a caso... poi prova a "convertirlo" nel formato che ti piace di piu' cosi' vedi se il tuo numero ESA e' giusto

Link al commento
Condividi su altri siti

Leggo con un programma in vb una word a 16 bit proveniente da uno zelio. Ora nella casella di testo sul quale visualizzo la lettura della word mi compaiono dei numeri (in genere a 4 cifre) mi sorge il dubbio. Che la word letta possa non essere in formato esadecimale, perchè la word letta è solo numerica, mentre la numerazione a base esadecimale è composta da numeri "0-9" e lettere "A-F".

Se l'applicativo vb legge la variabile in formato decimale, vedrai solo cifre da 0 a 9.

Se nel plc ti trovi, per esempio, una variabile contenente

0110 1000 1111 0101

in esadecimale leggerai 68F5

ed in decimale leggerai 26869

La variabile è sempre la stessa, e tutte e tre le rappresentazioni sono corrette ed indicano il medesimo valore.

Link al commento
Condividi su altri siti

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