6.1 Introduzione
In questo capitolo si daranno alcuni accenni sul sistema di numerazione
binaria e soprattutto di come è stato utilizzato all'interno dei
PLC.
In particolare si farà riferimento alla norma quadro sulla programmazione dei PLC, ossia la IEC 1131-3.
Non è possibile infatti proseguire senza avere chiaro in testa
il concetto di rappresentazione dei numeri decimali con un numero
binario.
I PLC, tra l'altro, hanno vari modi di rappresentare i numeri al loro
interno, che in fase di programmazione si dovranno scegliere sulla base
delle proprie esigenze.
6.2 Bit, Byte e Word
L'informazione digitale di base è il bit, una cella di memoria
che fisicamente è costituita da un transistor e che si considera
che possa valere 0 (quando non attivo) o 1 (quando attivo).
| Nota:
La tensione di funzionamento del transistor è ininfluente ai
fini della logica binaria, e non è di interesse per il
programmatore. Al fine di erudire i più curiosi diremo che ovviamente quando si dice che il transistor è nello stato logico "0" anche la tensione del transistor sara a zero. Quando invece lo stato logico è "1", la tensione dipenderà dal microprocessore. Tipicamente nei circuiti dell'elettronica digitale di tipo TTL lo stato logico 1 corrisponde alla tensione di alimentazione di 5 Volt. Nei processori dei PC più avanzati, comunque, al fine di diminuire la dissipazione termica dei Chip si sono scelte tensioni molto più basse, persino inferiori ad 1 Volt. |
I bit a loro volta vengono raggruppati in blocchi come dalla seguente tabella :
| Sigla | Descrizione | Combinazioni possibili | Numero Decimale rappresentato |
| BYTE | Gruppo di 8 bit | 28 = 256 | da 0 a 255 |
| WORD | Gruppo di 16 bit | 216 = 65536 | da 0 a 65535 |
| Double WORD | Gruppo di 32 bit | 232 = 4.294.967.296 | da 0 a 4.294.967.295 |
| Long WORD | Gruppo di 64 bit | 264 = .... | .... |
Questo però non è l'uso consueto che si fa dei dati
contenuti all'interno di un microprocessore, sia che sia di un PC che
sia in un PLC.
Alfine di chiarire questo concetto fondamentale, si danno degli esempi per far capire la differenza che si ha nei dati tra la rappresentazione binaria e quella reale.
Esempio 1
Nei PLC le Word sono tipicamente organizzate nel seguente modo
| bit 15 | bits 14 , 13 , 12 , 11 , 10 , 9 , 8 , 7 , 6 , 5 , 4 , 3 , 2 , 1 , 0 |
| segno | valore |
Ne consegue che una word viene a rappresentare un numero decimale intero nel range :
-32768 ... +32767
Questa variabile, anche se "fisicamente" si tratta di una Word, tipicamente è chiamata Numero Intero (o Integer ).
Esempio 2
Una DoubleWord è un elemento nella memoria di un microprocessore costituito da 2 word, cioè 32 bit, e permette 232 combinazioni, ossia da 0 a 4,29 x 109.
Nei PLC è tipicamente utilizzata per visualizzare un numero a
virgola mobile, detto anche Floating, secondo lo standard americano
IEEE-754.
In tal modo si rappresenta un numero nel range :
-3,4028 x 1038 ... +3,4028 x 1038
detto anche Numero Reale (o Real).
Esempio 3
Il Byte molto spesso è utilizzato per rappresentare dei caratteri alfanumerici.
A tal fine, agli albori dell'era informatica, è stata creata una tabella dei caratteri ASCII, la quale esprime l'equivalenza di un byte con una lettera o un simbolo della tastiera.
Ad esempio se un byte vale 65 significa che rappresenta la lettera A.
| Byte | 0 1 0 0 0 0 0 1 |
| Significato Decimale | 65 |
| Carattere rappresentato | "A" |
Dato che i microprocessori dei PLC tipicamente funzionano a 16 bit si tratta sempre di informazioni organizzate come Word.
6.3 I tipi di dati standardizzati
Nella norma IEC 1131-3 si trovano oltre 20 tipi di tipologie di dati
che possono essere gestite da un PLC, soprattutto per abbracciare un
po' tutte le variabili usate dai vari produttori.
Possiamo grossomodo dividere le tipologie dei dati nelle seguenti tre categorie
1. Variabili Binarie
| Data Type | Descrizione | Range |
| BOOL | un singolo bit del sistema binario | 0 (False) , 1 (True) |
| BYTE | Gruppo binario di 8 bit | da 0 a 255 |
| WORD | Gruppo binario di 16 bit | da 0 a 65535 |
| Double WORD | Gruppo binario di 32 bit | da 0 a 4.294.967.295 |
| Long WORD | Gruppo binario di 64 bit | ...... |
2. Variabili Numeriche
| Data Type | Descrizione | Range |
| SINT | Short integer | -128 ¸ +127 |
| USINT | Unsigned Short integer | 0 ¸ 255 |
| INT | Integer | -32768 ¸ +32767 |
| UINT | Unsigned Integer | 0 ¸ 65535 |
| DINT | Double Integer | -231 ¸ +231 (-1) |
| UDINT | Unsigned Double Integer | 0 ¸ 232 (-1) |
| LINT | Long Integer | -263 ¸ +263 (-1) |
| ULINT | Unsigned Long Integer | 0 ¸ 264 (-1) |
| REAL | Floating Point Number | -10-38 ¸ +1038 |
| LREAL | Long real Number | -10-308 ¸ +10308 |
3. Altri tipi di Variabili
| Data Type | Descrizione | Range |
| DATE | Data del calendario | |
| DATE_AND_TIME | Data e Ora | |
| TIME | Time (giorno e ora) | |
| TIME_OF_DAY | Ora del giorno o anche detta Real Clock Time |
|
| STRING | gruppo di caratteri (testo) | |
| R_EDGE | Fronte di Salita (rising) | 0 (False) , 1 (True) |
| F_EDGE | Fronte di discesa (falling) | idem |
Questa panoramica è stata fatta per far vedere come esista una grande varietà di dati che i PLC possono gestire.
In seguito comunque si useranno quelli più siginificativi, a
partire dal quelli necessari per realizzare i programmi di controllo di
circuiti elettrici.