È difficile programmare un sistema SCADA? quanto tempo ci vuole per imparare a creare monitoraggi con un pannello HMI? Quali sono le operazioni più importanti e basilari da svolgere quando si comincia?
Benvenuto nella mia scuola d’automazione industriale, oggi siamo all’interno del corso di programmazione scada e in questa lezione impariamo le operazioni di base da eseguire per progettare sistemi di monitoraggio, siano essi per piccoli pannelli operatore che per grandi scada.
Ecco gli argomenti di oggi:
Canali di comunicazione e database variabili.
Definizione dei canali di comunicazione (accesso ai plc).
Definizione delle variabili per la programmazione.
Indirizzi fisici e simboli nel plc.
I link di programmazione (animazione oggetti grafici).
Come abbiamo visto nella panoramica dei sistemi di supervisione disponibili oggi, possiamo scegliere di progettare le nostre applicazioni con software proprietari dei fornitori di plc, con software di terze parti, oppure creare da soli il nostro scada utilizzando drivers di comunicazione e linguaggi di programmazioni che ci mettono a disposizione apposite funzioni di scambio dati.
Non importa a quale categoria di software ci affidiamo, i sistemi di monitoraggio funzionano tutti più o meno allo stesso modo, lo possiamo vedere riassunto nell’immagine di seguito.
Canali di comunicazione e database variabili.
Come si vede dall’immagine sopra, il “core” dei sistemi di supervisione è composto da un “luogo” dove ci sono le variabili utilizzate per l’animazione e il controllo, queste variabili vengono lette e scritte da e verso il campo da un driver di comunicazione, e per animare gli oggetti sulle pagine si utilizzano le variabili valorizzate attraverso la comunicazione.
Nella prossima figura vediamo che per quanto riguarda la comunicazione in effetti spesso esiste un layer intermedio tra il driver di comunicazione e il database dei tag (così vengono chiamate le variabili). Questo è rappresentato dal server di comunicazione che utilizza protocolli come il DDE, l’OPC, il Suitelink e altri.
Il server di comunicazione rende indipendente lo SCADA dal driver di comunicazione, facilitando così il compito dei programmatori.
Viste le considerazioni di cui sopra, la prima domanda a cui dobbiamo cercare risposta per cominciare a imparare a programmare un nuovo sistema scada è: “come si configurano i canali di comunicazione?”, in altre parole come facciamo a dire al sistema che i dati provengono da un plc piuttosto che da un altro, oppure da un’altra sorgente?
I sistemi di programmazione scada ci mettono a disposizione un configuratore dei canali di accesso. In questo corso non prendiamo in considerazione specifici software ma cerchiamo di capire i concetti da imparare; basta poi prendere il manuale del software che decidiamo di usare o consultare l’help in linea per trovare come svolgere le varie operazioni.
Nella prossima immagine vediamo la schermata di configurazione dei punto di accesso nel sistema Intouch di Wonderware (ora AVEVA), software che personalmente ho utilizzato per più di 25 anni, cominciando dalla versione 3 nel lontano 1992.
Nell’immagine sopra, il campo “Access” è il nome che vogliamo dare al nostro canale di comunicazione, potrebbe essere per esempio PLC 1, Application name è il nome del server di comunicazione, Topic Name invece è il canale corrispondente al PLC che ci interessa, dato che uno stesso server di comunicazione spesso può gestirne diversi.
Ripeto, questo è solo un esempio, ogni sistema ha la sua finestra di configurazione, i dati da specificare però sono sempre gli stessi.
Definizione dei canali di comunicazione (accesso ai plc).
Nella prossima figura possiamo vedere una tabella che riporta la configurazione di tre canali di accesso, in pratica tre plc differenti con cui scambiare dati. Una volta definiti i canali di accesso alle apparecchiature di controllo, utilizzeremo sempre quel nome nella programmazione dello scada. Le colonne “Canale” e “Indirizzo” contengono dei valori di fantasia, poiché questi dipenderanno ovviamente dal sistema utilizzato.
Definizione delle variabili per la programmazione.
Per poter animare gli oggetti sulle pagine grafiche, dare comandi ed elaborare eventuali script, è necessario definire le variabili con i nomi che più ci sono congeniali; questi nomi saranno utilizzati ovunque nella programmazione del monitoraggio.
Sicuramente è più comodo chiamare lo stato di una valvola “V1” piuttosto che %Q12.0 (tanto per fare un esempio); anche perché probabilmente quel nome V1 lo ritroveremo nello schema elettrico e nel software del plc, ogni volta che ci si riferisce a quella valvola.
La definizione delle variabili può avvenire mediante un database oppure implicitamente durante la programmazione dell’animazione nelle pagine; il secondo metodo è utilizzato soprattutto nei pannelli operatori HMI, per esempio con i PanelView Plus della Rockwell automation.
Vediamo nella prossima immagine i due differenti funzionamenti, quando si utilizza un database delle variabili questo viene aggiornato ciclicamente a intervalli di tempo configurabili, per esempio 250 millisecondi.
Indirizzi simbolici nel plc.
I plc moderni ci permettono di creare dei simboli, per dare nomi agli indirizzi di ingresso e uscita e agli altri oggetti in campo che possano essere meglio ricordati e gestiti.
Per esempio nel plc potremmo creare i simboli V1_OUT, V2_OUT, P1_OUT e TT1 per definire simbolicamente gli stati di due valvole, di una pompa, e la lettura di una temperatura. I primi tre punteranno a tre uscite digitali, l’ultimo a un ingresso analogico.
A questo punto nello scada potremmo avere due scelte: definire le nostre variabili puntando direttamente all’indirizzo nel plc (come in figura sopra), oppure puntare al simbolo che a sua volta viene definito nel PLC, come vediamo nelle prossime due immagini.
Con questo sistema possiamo programmare le interfacce senza preoccuparci dove sono collegati gli indirizzi fisici in campo.
L'indirizzamento simbolico nel PLC rende la programmazione più semplice.
I link di programmazione (animazione oggetti grafici).
Definiti i canali di accesso e appurato come il core degli scada accede alle variabili da e verso il campo, vediamo cosa significa animare gli oggetti: il termine tecnico per indicare questa operazione è “link”.
Un esempio di link è “colora questa spia luminosa di giallo se la variabile X è a 1”. Un altro esempio di link è “fai vedere il valore della variabile Y in forma numerica con due decimali.”; questo è come lavorano i sistemi di supervisione e di tipi di link ce ne sono tantissimi.
I sistemi scada e hmi ci permettono di programmare dalla semplice funzione “visibile / invisibile” alla trasformazione geometrica tridimensionale degli oggetti sulle pagine; alla base di tutto c’è sempre lo stesso principio: leggo la variabile ed eseguo le istruzioni del link.
Ecco un esempio di link per una classica valvola:
Se la variabile di stato comando è a 0 colora la valvola di grigio.
Se la variabile di stato comando è a 1 colora la valvola di bianco.
Se la variabile di stato allarme è a 1 fai lampeggiare la valvola alternando al colore determinato dall’uscita di comando il colore rosso.
Questa programmazione ha il risultato di visualizzare la valvola grigia da spenta, bianca da accesa, grigia lampeggiante rossa se in allarme da spenta, e bianca lampeggiante rossa se in allarme da comandata.
Riassumendo abbiamo un canale di comunicazione che ci permette di leggere e scrivere dati dal plc, poi abbiamo delle variabili associate ai dati in memoria nel plc, e dei link di programmazione che generano l’animazione in base alle regole da noi stabilite.
Nella prossima immagine vediamo la finestra di scelta di vari link configurabili con il sistema Intouch.
Come si vede nell’immagine sopra, alcuni link sono attivabili e altri no, dipende dal tipo di oggetto grafico che si sta animando; inoltre alcuni link saranno attivabili contemporaneamente, per esempio visibility e blink, oppure color e blink (come nel caso della nostra valvola d’esempio).
Da notare nella finestra il link attivato “Action” che in pratica fa eseguire uno script quando si preme sull’oggetto con il mouse, o con il dito nel caso che lo schermo dello scada sia di tipo touch.
I link di programmazione possono anche essere il risultato di complesse espressioni logiche o matematiche, in pratica il sistema calcola l’espressione e associa le animazioni scelte in base al risultato della stessa.
Nella prossima immagine vediamo un esempio di programmazione “colore” di RsView32 di Allen Bradley.
Bene, siamo arrivati al termine di questa lezione introduttiva alla programmazione dei sistemi di supervisione. I concetti che hai appreso oggi sono importanti e sono alla base di tutte le suite di programmazione scada e hmi, per questo una volta appresi bene cambiare sistema non è un problema, perché ormai sappiamo cosa dobbiamo cercare. Ci vediamo nella prossima lezione!