Benvenuto in questo mini corso di programmazione PLC Allen Bradley serie Micro, oggi costruiremo un filtro analogico utilizzando il linguaggio ladder, uno tra i più utilizzati nel mondo per questi controllori.
In questa lezione ho usato un PLC Micro850 per poter simulare il programma con il simulatore che CCW ci mette a disposizione; ricordo che la versione gratuita di Connected Components Workbench permette di avviare il simulatore per 10 minuti, al termine dei quali è necessario riavviarlo.
Il linguaggio Ladder (LD) è il linguaggio di programmazione per PLC più diffuso oggi, probabilmente perché somigliando a uno schema elettrico, permette anche a chi non è “del mestiere” di impararlo in modo relativamente semplice e in poco tempo.
Anche i PLC della Rockwell Automation (Allen Bradley) sono programmabili in diversi linguaggi, e tutti i controllori di questo produttore ci mettono a disposizione il linguaggio a logica di relè.
Il programma di esempio di oggi, mostra come smorzare i valori di una variabile numerica, per esempio quella collegata a un ingresso analogico; questo software è indicato comunque in tutti i casi in cui vogliamo “ammorbidire” il valore di un numero che cambia, attuando quella che chiamiamo “integrazione”.
Nella prossima immagine vediamo la curva “grezza” di un valore analogico in nero sul grafico, e il suo valore integrato con la funzione nel PLC (in blu); notiamo che la curva del filtro è moltpo più morbida, e i picchi nel dato originale vengono “assorbiti”.
Il programma filtro analogico per il PLC Micro Allen Bradley.
Lo scopo del programma è di memorizzare gli ultimi 10 valori del valore di ingresso, sommarli, e calcolare la media algebrica per ottenere il valore filtrato.
Per realizzare questo software in linguaggio ladder, ci siamo avvalsi di istruzioni logiche elementari (contatti aperti, chiusi, bobine semplici, set e reset), oltre che di alcuni temporizzatori di tipo TON (Timer On Delay).
Abbiamo anche usato delle funzioni matematiche e, nella parte di simulazione, di alcune istruzioni di comparazione.
Nella prossima figura vediamo la prima parte del programma.
Nell’immagine sopra troviamo nel primo ramo ladder un clock che ci permette di impostare l’intervallo di campionamento del valore da elaborare con il filtro; nel nostro caso è impostato a 1 secondo.
Nel secondo ramo abbiamo lo scorrimento dei 10 valori nella coda di memorizzazione, si nota che utilizziamo un vettore di variabili che contiene fino a 10 elementi; l’indice utilizzato per identificare ogni elemento nel vettore è quello scritto tra le parentesi quadre.
Sempre a ogni attivazione del clock di campionamento, nel ramo 3 del programma, inseriamo il nuovo valore campionato all’interno del vettore, nella posizione 1.
Nella prossima figura vediamo il calcolo della somma dei valori nel vettore, prima di effettuarne la media.
L’ultima parte di programma è composta dall’istruzione di divisione, che permette di calcolare la media dei 10 valori memorizzati nel vettore, e ottenere così il nuovo dato filtrato.
Dato che lavoriamo con un vettore di dati, al posto di scrivere tutte le istruzioni di spostamento “MOV” ed effettuare la somma con molteplici istruzioni matematiche di somma “ADD”, avremmo potuto elaborare un indice intero per accedere al vettore, ed eseguire le operazioni con meno istruzioni; oppure sfruttare per questo il potente linguaggio di testo strutturato ST.
Dato che questo tutorial è indirizzato ai “principianti del PLC”, ho ritenuto opportuno mantenere una scrittura semplice, anche se risulta più prolissa e meno ottimizzata.
Per provare il programma,ho inserito una routine di simulazione che modifica automaticamente la variabile di ingresso formando una rampa con valori da 200 a 800; in questo modo possiamo vedere meglio come funziona il software.
Per facilitare la comprensione, ho anche creato una piccola pagina in FactoryTalk View Studio, sulla quale è visualizzato il grafico le curve del valore reale dell’analogica, e del valore filtrato.
Sulla stessa pagina si può attivare e disattivare la simulazione nel PLC, oltre che modificare il valore di ingresso (in manuale quando non simulato), e il tempo di campionamento.
Nella schermata sopra, troviamo in azzurro chiaro il valore di ingresso che vediamo formare i picchi agli estremi, e la curva del valore integrato di colore verde.
La prima parte rappresenta un filtro di 1 secondo, poi nel centro un filtro di 500 millisecondi, poi un pezzetto con filtro a 250ms, e infine l’inizio di un filtro a 2 secondi.
Notiamo che con filtri grandi la curva di uscita è più lenta e smorzata, mentre con filtri corti somiglia maggiormente alla curva di partenza.