Alla scoperta dei PLC: tool di sviluppo e simulazione

PLC tool di sviluppo

Concludiamo la nostra avventura nel variegato mondo dei PLC affrontando il capitolo relativo agli strumenti di sviluppo. Ne analizzeremo in particolare uno, Logix-pro 500, la cui versione di valutazione è liberamente scaricabile, con qualche limitazione nelle funzionalità, da tutti. Questo strumento ci permetterà di mettere in pratica quanto appreso nelle puntate precedenti, consentodoci di acquisire familiarità e dimistichezza con lo sviluppo di applicazioni per PLC.

I PLC sono oggi prodotti da diverse aziende (Allen-Bradley/Rockwell Automation, Siemens, Hitachi, Panasonic, tanto per citarne alcune), e sono disponibili in varie tipologie con diversi livelli di prestazioni. Quando si deve affrontare la scelta di un PLC da destinare ad una specifica applicazione, i criteri di selezione sono molteplici: caratteristiche tecniche del prodotto, affidabilità e garanzia del marchio produttore, semplicità di installazione e utilizzo, costo, ecc. Oltre a questi fattori, attorno ai quali ruota una galassia più o meno affollata di dispositivi hardware, ne esiste un altro che non va assolutamente sottovalutato: lo strumento di sviluppo.

Il PLC, come dice il nome stesso, è un dispositivo programmabile, ed è pertanto necessario predisporre un apposito programma software, scritto utilizzando la logica ladder, il linguaggio testuale, o un altro linguaggio di programmazione per PLC (i primi due sono stati analizzati nei precedenti post di questa serie). Il tool di sviluppo deve inoltre essere in grado di dialogare con il componente hardware, consentendo lo scaricamento del programma nella memoria del PLC e la successiva messa in esecuzione.

Quando i primi PLC fecero la propria comparsa (lo ricordiamo, storicamente la nascita del primo PLC è fatta risalire al 1968) non esistevano ancora i personal computer, e i sistemi di calcolo erano a disposizione solo per ristrette cerchie di utilizzatori. Pertanto, la programmazione dei primi modelli di PLC avveniva direttamente sul componente e quindi l'ambiente di sviluppo (se così si può dire) era integrato nel componente. Il successivo avvento dei personal computer ha permesso di realizzare dei tool di sviluppo e controllo remoto dei PLC anche molto sofisticati, riducendo la necessità di operare direttamente sul dispositivo fisico. Ricordiamo tuttavia che, ancora oggi, molti PLC permettono la programmazione eseguita direttamente sul componente, una funzionalità che, in casi estremi, può sempre tornare utile. Inoltre, per i modelli di PLC più semplici, quest'ultima può ancora rappresentare l'alternativa più efficiente ed economica (se non l'unica disponibile).

Fatte queste debite premesse, veniamo ora al dunque. Lo scopo di questo articolo è quello di presentare un esempio di strumento di sviluppo in ambito PLC, che presenti contemporaneamente la caratteristica di essere sufficientemente semplice (o, se si preferisce, non troppo complesso), e allo stesso tempo sia in grado di offrire un elevato contenuto propedeutico, seguendo e aiutando l'utilizzatore nell'attività di sviluppo e collaudo dell'applicazione.

La scelta non era sicuramente tra le più semplici. Diversi sono gli strumenti di sviluppo, distribuiti in genere dai produttori stessi di PLC, e dei quali esiste una versione trial oppure evaluation liberamente scaricabile (in genere è richiesta la registrazione, che però non comporta alcun obbligo o impegno per l'acquisto).

Non solo, vi era anche il vincolo di dover limitare la trattazione allo spazio disponibile per un articolo da pubblicare qui su EOS. Tenendo in debita considerazione tutti questi fattori/vincoli, la scelta finale è ricaduta su uno strumento "indipendente" (nel senso che non è stato sviluppato da un'azienda produttrice di PLC), il LogixPro-500 in versione Trial, scaricabile a questo indirizzo. Il tool, prodotto da TheLearningPit, è nato proprio per finalità didattiche, ed è stato utilizzato per il training in corsi di programmazione sui PLC. In particolare, lo strumento di sviluppo è modellato sul PLC RSLogix 500, prodotto da Rockwell Automation (che a sua volta ha acquisito Allen-Bradley). Si tratta di un PLC non recentissimo ma comunque molto valido e particolarmente adatto per finalità didattiche. La versione trial di LogixPro ha una licenza di utilizzo con validità 15 giorni ed è pienamente utilizzabile, ad eccezione della funzione di salvataggio dei file e di stampa degli schemi in ladder logic. Nonostante gli inevitabili limiti imposti dalla versione trial, questo strumento presenta numerosi vantaggi, tra i quali ricordiamo i seguenti:

  • consente una vera e propria simulazione del funzionamento del programma - dopo aver scritto il programma, è possibile eseguire il trasferimento dello stesso sul PLC, e mandarlo in esecuzione mettendo il PLC in modo RUN;
  • è corredato di diversi esempi applicativi (un paio sono pienamente utilizzabili anche nella versione trial);
  • dispone di una parte teorica in cui sono riassunti i concetti fondamentali relativi ai PLC, utili per la loro programmazione;
  • comprende il manuale relativo al set completo di istruzioni del PLC SLC500 prodotto da Allen-Bradley.

L'immagine seguente mostra una schermata tipica del tool LogixPro.

L'utilizzo di LogixPro è molto semplice, basta infatti avere un minimo di familiarità con le normali applicazioni per il sistema operativo Windows. I menu ai quali siamo maggiormente interessati sono l'Edit Panel e il PLC Panel.

Il primo include tutti i simboli utilizzati per la programmazione del dispositivo tramite ladder logic. Anche qui, l'utilizzo è immediato ed intuitivo: è infatti sufficiente selezionare il simbolo e posizionarlo all'interno del rung desiderato tramite il mouse (per chi non si ricorda cosa significa "rung", rimandiamo alla lettura del secondo post della serie sui PLC, il cui argomento era la programmazione in logica ladder). Per cancellare un simbolo è sufficiente premere il tasto CANC, mentre facendo un doppio click su un simbolo si può modificarne l'indirizzo associato. Il click col tasto destro apre invece un menu di selezione dei comandi di editing. E' molto più semplice a farsi che a descriverlo e pertanto vi consigliamo caldamente di provarlo da voi. Esiste anche un apposito tasto "toggle" (si veda la figura qui sotto) tramite il quale è possibile passare rapidamente dall'Edit Panel al PLC Panel.

Una volta completata la fase di editing di un programma (che come sappiamo si articola su un certo numero di rung), è possibile passare alla fase di verifica e debug, mandando quindi in esecuzione l'applicazione su un PLC "virtuale" (cioè simulato). Per fare ciò, basta cliccare sul tasto toggle, abilitando quindi il PLC panel. Agendo opportunamente sulle opzioni di questo pannello è possibile scaricare l'applicazione sul PLC, e mettere quest'ultimo in modalità RUN.

Quando il modo RUN è attivo, viene eseguito lo scan del programma (ricordate?). Viene, cioè, acquisito il valore presente sugli ingressi e trasferito in opportune aree di memoria interne; tali valori vengono poi processati applicando le "regole" definite nel programma (in questo caso utilizzeremo esclusivamente la logica ladder), e infine vengono conseguentemente impostati i valori delle uscite. Rimanendo sempre sul PLC Panel, avrete forse notato la presenza di un tipo particolare di controllo (Scans). La sua funzione è tanto semplice quanto utile: muovendo l'indice verso sinistra, si rallenta la velocità di scan del PLC (quindi si rallenta il rate con cui viene eseguita la simulazione), mentre muovendolo verso destra si aumenta la velocità di scansione. Ecco, quindi, un mondo utilissimo per eseguire un debug accurato e fine di un'applicazione.

Come esempio pratico di utilizzo di LogixPro, consideriamo il progetto denominato "I/O Simulator", incluso all'interno del programma stesso. Per caricarlo basta lanciare LogixPro e, successivamente, selezionare sul menu principale "Simulations->I/O Simulator". Il risultato del caricamento è mostrato nell'immagine seguente:

Come visibile nell'immagine, il simulatore di I/O comprende anzitutto 32 ingressi distinti (da I:100 a I:315) divisi in due gruppi di 16 e collegati alle schede di input I1 e I3 del PLC (di default, agli ingressi sono collegati dei normali interruttori di tipo ON/OFF). Vi sono poi 32 uscite (due gruppi da 16 uscite ciascuno, collegati alle schede di output O2 e O4 del PLC). Tutte le uscite sono poi collegate a dei comuni led, così da avere un'indicazione visiva immediata del loro stato di attivazione.

Se ora si posiziona il cursore del mouse in prossimità di uno degli ingressi e si clicca, si può osservare come lo stato dello switch stesso commuti (da aperto a chiuso, e viceversa), e conseguentemente cambii colore il terminale a cui è collegato lo switch. Se invece si preme il tasto destro del mouse, è possibile modificare il tipo di switch (interruttore ON/OFF, pulsante normalmente aperto, pulsante normalmente chiuso, ecc.).

Concentriamoci ora sulla parte destra visibile in LogixPro. Qui compare la finestra di programmazione vera e propria che, come già anticipato, verrà eseguita utilizzando la logica ladder. Inizialmente il programma dovrebbe essere vuoto, e dovreste perciò vedere un singolo rung (numerato con 000) il quale comprende una singola istruzione END (terminatore del programma).

Come primo esercizio, supponiamo di voler inserire un nuovo rung, composto da un'unica istruzione di input (XIC, Examine If Closed) e da un'unica istruzione di output (OTE, Output Energize). Vogliamo quindi ottenere qualcosa di simile a questo:

           I:1/0     O:2/0         

000  |-----| |--------( )---------|

Per inserire un nuovo rung, le operazioni da compiere sono molto semplici. Anzitutto occorre richiamare l'Edit Panel (se non è già visibile, premere il tasto toggle), e cliccare sul primo simbolo a sinistra (New Rung). Un nuovo rung comparirà nella finestra di editing (si noti come il nuovo rung verrà collocato prima del rung terminale, che deve essere sempre presente e chiudere il programma in logica ladder). Selezioniamo ora il rung appena inserito cliccando con il mouse in prossimità dell'estremo sinistro dello stesso (comparirà un rettangolo rosso per evidenziare che il run è stato selezionato). Clicchiamo poi sul simbolo XIC e questo verrà automaticamente inserito nel rung selezionato (il punto interrogativo sul simbolo indica che non abbiamo ancora specificato l'ingresso da associare al simbolo stesso). Ripetiamo la stessa operazione per selezionare e posizionare nel rung il simbolo OTE. Dobbiamo ora associare i segnali di ingresso e uscita ai due simboli. Facciamo doppio click sul simbolo XIC e inseriamo il valore desiderato per l'ingresso (ad esempio I:1/0) e analogamente per l'uscita OTE (esempio: O:2/0).

Possiamo poi aggiungere un commento a ciascun simbolo inserito, per rendere più leggibile e più carino lo schema. Per fare ciò, è sufficente cliccare col tasto destro sul simbolo, selezionare Edit Symbol, e inserire la descrizione desiderata.

Un esempio è il seguente:

Giunti a questo punto, siamo oppure no impazienti di testare e vedere all'opera il nostro programmino in logica ladder?

Come prima cosa, dobbiamo eseguire il download del codice sul PLC. Selezioniamo quindi il PLC Panel, e clicchiamo sul tasto Download. Per qualche secondo comparirà una finestra di pop-up per indicare il download in corso (simulato, ovviamente), dopodichè il PLC sarà pronto per eseguire il codice. Selezioniamo a questo punto l'opzione RUN e il codice andrà in esecuzione, come testimoniato dal numero di cicli (scan) in continuo incremento. Dobbiamo a questo punto controllare il funzionamento tramite il pannello I/O; se questo è poco visibile, aggiustiamo la dimensione delle finestre in modo tale che sia visibile sia lo schema ladder sia il pannello I/O. Clicchiamo a questo punto sullo switch I:1/0: cosa succederà? Se tutto è andato per il verso giusto, alla chiusura dello switch, l'uscita O:2/0 verrà attivata e il corrispondente led giallo si accenderà (da notare anche che il rettangolo associato sia all'ingresso che all'uscita cambierà colore, passando da nero a rosso):

Con questo semplice ma significativo esempio abbiamo visto come con pochi passi sia possibile realizzare un programma in logica ladder, simulandone il funzionamento su un PLC.

Dal punto di vista didattico, queste operazioni non differiscono molto dalla programmazione di un PLC reale, per cui possiamo senz'altro affermare che strumenti di sviluppo e debug come quello presentato costituiscono un ottimo banco di prova per apprendere e migliorare l'arte della programmazione dei PLC.

Consiglio ai lettori di esercitarsi con gli altri esempi presenti nella guida del programma. L'ideale è leggere le specifiche del progetto che si chiede di realizzare (ad esempio controllo di un punto luce da due posizione distinte), e provare dapprima a realizzarlo da sè, seguendo tutti i passi che poi si compiono nell'attività reale e professionale: selezione del numero e del tipo di ingressi e uscite, definizione dei rung, download del programma e verifica dei risultati. Se poi proprio non si riesce a ottenere i risultati desiderati (oppure si rimane bloccati su una semplice operazione) si può sempre dare un'occhiata alla guida e vedere come il problema è stato risolto dal "Professor Bill" (il simpatico professore che ci guida in questo programma).

Vogliamo inoltre sottolineare che, programmando in logica ladder, la soluzione ottenuta non è necessariamente quella più efficiente o la migliore in assoluto. Ad esempio, può capitare di utilizzare più rung di quelli effettivamente necessari: in genere questo non è un problema (almeno fintanto che si opera a livello propedeutico e didattico), l'importante è apprendere i concetti e saperli applicare da soli. Se poi, in futuro, si avrà occasione di operare professionalmente in questo ambito, si dovrà inevitabilmente sottostare ai consueti vincoli progettuali (costi, spazi, budget, ecc.), per cui potrebbe essere necessario ottimizzare il numero di ingressi e uscite utilizzati.

 

Quello che hai appena letto è un Articolo Premium reso disponibile affinché potessi valutare la qualità dei nostri contenuti!

 

Gli Articoli Tecnici Premium sono infatti riservati agli abbonati e vengono raccolti mensilmente nella nostra rivista digitale EOS-Book in PDF, ePub e mobi.
volantino eos-book1
Vorresti accedere a tutti gli altri Articoli Premium e fare il download degli EOS-Book? Allora valuta la possibilità di sottoscrivere un abbonamento a partire da € 2,95!
Scopri di più

3 Comments

  1. Piero Boccadoro Piero Boccadoro 27 luglio 2013
  2. slovati slovati 27 luglio 2013
  3. theolo77 23 ottobre 2014

Leave a Reply

Flip&Click Arduino e Python compatibile

Fai un abbonamento Platinum (EOS-Book + Firmware), ricevi in OMAGGIO la nuova Flip&Click, inviaci il tuo progetto e OTTIENI IL RIMBORSO