Vai al contenuto
PLC Forum


Comprendere Alcuni Elementi Sulla Programmazione


noviltec

Messaggi consigliati

Salve, questo è il mio primo post,

Sono un hobbista alle prime arme, e mi piacerebbe imparare a programmare i plc, e per far ciò ho cominciato a studiare il testo di BERGAMASCHI LUCA

MANUALE DI PROGRAMMAZIONE DEI PLC.

Non ho però compreso bene alcuni passaggi, e mi farebbe piacere se qualcuno potesse aiutarmi a comprenderli meglio.

Non sono riuscito a comprendere quando segue:

1) La differenza tra il bit più significativo ed il meno significativo, in particolar modo quale è la loro importanza e come usarli.

2) La differenza tra una word ed una doppia word, (credo che quest'ultima venga anche detta double word) e quando vada usata una e quando vada usata l'altra.

Link al commento
Condividi su altri siti


Le tue domande, più che con la programmazione di plc, hanno a che fare con il sistema binario.

In un sistema binario l'unità più piccola è il bit, che può assumere valore 0 oppure 1.

8 bit formano un byte

2 byte formano una word (16 bit)

2 word formano una dword (32 bit)

Il bit meno significativo (di un byte, word o dword che sia) è quello a destra, che vale (se è = 1) 2^0.

Mano a mano che ti sposti verso sinistra, i bit assumono maggior "peso": 2^1, 2^2, 2^3....2^n.

In una dword (formata da 2 word, ovvero 4 byte o, ancora, 32 bit) si arriva ad avere il bit più significativo (quello a sinistra) che vale 2^31.

Per fare il paragone con il sistema decimale, il bit meno significativo è la cifra che rappresenta le unità. Poi, spostandoti verso sinistra, trovi le decine, le centinaia, le migliaia e così via.

Per quanto riguarda l'ordinamento dei byte all'interno di una word (o di una dword), esistono due modi diversi: lo standard Intel e lo standard Motorola.

Facciamo un esempio: se hai una dword formata dai byte B0, B1, B2, B3, nello standard Intel questi byte saranno ordinati con B0 a destra, e poi, spostandoti verso sinistra trovi nell'ordine B1, B2, B3.

Nello standard Motorola invece l'ordinamento è esattamente inverso: parti con B0 a sinistra, e poi trovi B1, B2, B3 mano a mano che ti sposti verso destra.

La scelta poi se utilizzare una word o una dword dipende dall'entità dei valori da gestire.

Con una word puoi rappresentare valori da -32768 a +32767 se si utilizza il segno, oppure da 0 a 65535 se non si utilizza il segno.

Con una dword puoi rappresentare valori da -2147483648 a +2147483647, oppure da 0 a 4294967295.

Link al commento
Condividi su altri siti

Grazie per la tua gentile spiegazione.

Ma i byte sono sempre composti da 8 bit, oppure si possono trovare anche byte composti da 7 bit - 10 bit ecc.

Quando si parla di 64 o 128 bit, a cosa si ci riferisce? bword? o altro?

Ho ancora qualche dubbio sui bit più significativi e meno significativo. Ma forse faccio un pò di confusione.......

Ho sempre creduto che nel sistema binario, ogni bit avesse lo stesso peso, in quanto la variazione di un solo bit, potesse avere il suo importante "significato".

Mi spiego meglio: Nel byte che rappresenta gli ingressi o le uscite, la variazione di un singolo bit, rappresenta la variazione dello stato logico di un ingresso o di un'uscita. Tale variazione può avere la sua importanza indifferentemente se sia variato il primo bit o l'ultimo.

Ciao

Link al commento
Condividi su altri siti

Le spiegazioni che trovi nel link di Lucios dovrebbero aver chiarito i tuoi dubbi.

Comunque, tanto per rafforzare il concetto:

1) un byte è composto da 8 bit e basta. Non esistono byte formati da un numero di bit diverso da 8.

2) quando si parla di 64 o 128 bit, si parla... di bit. Come siano poi utilizzati questi bit è un altro discorso. 64 bit possono essere 8 byte, 4 word, 2 dword, 1 qword.

3) per quanto riguarda i bit più e meno significativi, è molto semplice: il bit meno significativo è quello all'estrema destra, mentre quello più significativo è quello all'estrema sinistra (non sto parlando si politica, ovviamente ;) )

Link al commento
Condividi su altri siti

Ho ancora qualche dubbio sui bit più significativi e meno significativo. Ma forse faccio un pò di confusione.......

Ho sempre creduto che nel sistema binario, ogni bit avesse lo stesso peso, in quanto la variazione di un solo bit, potesse avere il suo importante "significato".

Mi spiego meglio: Nel byte che rappresenta gli ingressi o le uscite, la variazione di un singolo bit, rappresenta la variazione dello stato logico di un ingresso o di un'uscita. Tale variazione può avere la sua importanza indifferentemente se sia variato il primo bit o l'ultimo.

Quando si tratta dell'attivazione, come nel tuo esempio, di un'uscita digitale, la posizione del bit non ha alcuna importanza.

In questo caso il singolo bit costituisce già la tua variabile. Si tratta di una variabile lunga 1 bit, e può assumere valore 0 oppure 1.

Il discorso cambia quando si utilizzano byte, word, dword, per rappresentare valori che non siano solo 0 o 1.

In questo caso, mano a mano che ti sposti verso sinistra ogni bit ha valore doppio rispetto al precedente.

Mi spiego con un esempio:

per convertire un numero binario in decimale, basta considerare il valore di ogni singolo bit e sommarlo se il bit è a 1

Il valore dei bit (mi limito a 4 bit per l'esempio), cominciando da destra e spostandosi a sinistra, è:

1° bit (o bit 0) = 2^0 = 1

2° bit (o bit 1) = 2^1 = 2

3° bit (o bit 2) = 2^2 = 4

4° bit (o bit 3) = 2^3 = 8

Basta poi sommare il valore relativo ad ogni singolo bit se il bit è a 1.

Il numero binario 1010, convertito in decimale vale: 2 + 8 = 10

Nel sistema decimale non c'è concettualmente proprio nulla di diverso. Cambia solo che anziché lavorare con le potenze del 2 si lavora con le potenze del 10.

In un numero decimale, la cifra più a destra (meno significativa, tanto per restare in tema), indica quante volte nel numero è presente 10^0, ovvero le unità.

Poi ci sono le decine, che non sono altro che 10^1.

Seguono le centinaia (10^2), le migliaia (10^3), e così via.

Il numero decimale 1234 significa che:

10^0 è presente 4 volte

10^1 è presente 3 volte

10^2 è presente 2 volte

10^3 è presente 1 volta

Totale:

1*4 + 10*3 + 100*2 + 1000*1

Modificato: da batta
Link al commento
Condividi su altri siti

Federico Milan

Solo a completamento delle esaurinti spiegazioni già fornite da batta e lucios,

>> La differenza tra una word ed una doppia word, (credo che quest'ultima venga anche detta double word) e quando vada usata una e quando vada usata l'altra.

L'utilità di una word o di una Dopia word sta nel concetto di rappresentazione numerica, ossia una word = 2 byte puà rappresentare al più 2^16 informazioni. se necessitiamo di rappresentare per esempio 1 000 000 di euro non ci basta una word, ma dobbiamo utilizzare una doppia parola che può rappresentare 2^32 simboli. Uso la parola simboli perchè siamo in un concetto astratto, ma possiamo sostituire la parola simbolo con numero (tanto nel contensto si capisce lo stesso).

Quindi, il bit è "l'atomo fondamentale" costituente di un sistema di rappresntazione numerica. Grazie alle proprietà algebriche è possibile estendere la rappresentazione con l'operazione poisizionale, vedi l'esempio di batta (per la rappresentazione "intera").

Prova a vedere anche qui per altre informazioni sulla rappresentazione numerica.

ciao

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