Bentornato (o benvenuto se per te è la prima volta) al mio corso gratuito di programmazione PLC. Siamo nella lezione numero sette o oggi impariamo cosa sono le aree dati e soprattutto quali tipi di dato i controllori logici programmabili possono gestire.
I programmi per plc, come avviene per tutti i tipi di programmi informatici, sono creati utilizzando istruzioni e dati; senza quest’ultimi non si può scrivere software.
Come si vede nella tabella sopra, un bit diventa un bool (booleano) e rappresenta lo stato on oppure off. Il range di valori va da 0 (falso) a 1 (vero).
Le aree dati nei PLC.
Dove vengono memorizzate le variabili nei plc? A seconda del tipo di plc, le variabili, così come il programma, possono essere memorizzate nella memoria interna dello stesso oppure su schede di memoria come le SD, le SDHC e altre. La memoria conterrà i dati definiti da noi per programmare, i dati del programma (il programma in fondo occupa memoria e viene tradotto nel plc in bit), i dati di configurazione del sistema contenente l’hardware, i rack remoti, e le apparecchiature in rete con cui scambiare dati e così via.
Ogni cosa necessaria al funzionamento del sistema e dei compiti che dovrà svolgere sono memorizzati da qualche parte.
Nella prossima immagine vediamo uno schema che rappresenta in maniera semplificata come funziona il plc quando esegue il programma: egli avrà accesso alle aree di memoria per eseguire le istruzioni ed elaborare gli ingressi e le uscite, appoggiandosi sulle aree di memoria utente.
A seconda del plc, le aree di memoria possono essere dedicate oppure libere, in questo senso nei plc più evoluti si sta diffondendo l’apertura delle aree dati che permette al programmatore di utilizzarle nel modo in cui meglio crede e senza vincoli.
Naturalmente il modo di configurare le variabili e le schermate nei software di programmazione plc cambiano a seconda dell’ambiente di sviluppo, tuttavia i concetti che stiamo imparando sono sempre validi.
Come si vede dalla figura sopra, tutto ciò che ci serve per visualizzare ed elaborare lo stato di un serbatoio nel nostro impianto è contenuto nel tipo di dati definito. Se per esempio sull’impianto abbiamo dieci tank dello stesso tipo, possiamo definire dieci variabili di tipo serbatoio.
Quali vantaggi ci porta tutto questo? Immaginiamo di costruire una routine parametrizzata che ci permette di elaborare le procedure passando a essa il nome del serbatoio: non avremo più bisogno di scrivere dieci pezzetti di programma identici cambiando ogni volta le nove variabili contenute nel tipo di dati.
Nella stesura del programma avremo una sola volta le linee di codice che elaborano il processo del serbatoio e dieci richiami.
Tutto questo lo vediamo riassunto nella prossima immagine.
Array di dati plc (vettori).
Nei plc possiamo anche definire dei vettori di dati, ovvero insiemi di dati aggregati in modo monodimensionale, bidimensionale e a più dimensioni. Per esempio possiamo creare un vettore di interi, di reali, ma anche di tipi di dati utente; come nel caso appena visto potremmo definire un vettore chiamato serbatoi_linea di “serbatoio”.
serbatoi_linea: serbatoio[10] definisce un vettore di dieci variabili di tipo serbatoio. A cosa serve questo? Si intuisce che nel programma, invece di richiamare dieci volte la routine di gestione (una per ogni serbatoio), potremo richiamarla passando di volta in volta un “indice” che identifica il serbatoio all’interno del vettore. Ecco come avverrebbe il tutto nelle prossime righe.
Definizione vettore: serbatoi_linea: serbatoio[10]
Chiamate di programma:
indice=indice +1 “incrementiamo l’indice”
gestserb(serbatoi_linea[indice]) “richiamiamo la routine di gestione passando il numero di serbatoio”
ritorno “passa a incrementare l’indice sopra”.
Per l’esempio ho utilizzato un linguaggio di tipo strutturato ma le stesse istruzioni le possiamo editare in qualsiasi linguaggio di programmazione per plc.
Riepilogo delle nozioni:
Terminiamo questa lezione riassumendo tutto ciò che abbiamo imparato:
I dati nel plc sono composti da bit che si aggregano in byte, parole, doppie parole e così via.
I dati vengono memorizzati in apposite aree nella memoria interna o su schede di memoria.
I dati nel plc sono di vario tipo e li interpretiamo come più ci è utile.
Possiamo aggregare dati e creare dei tipi di dato personalizzato per rappresentare meglio i nostri processi.
Possiamo creare array di dati (vettori) per elaborare velocemente molte variabili dello stesso tipo, usando un indice che le identifica all’interno del vettore.