CORSO DI PROGRAMMAZIONE PLC SIEMENS S7-1200
FILTRO ANALOGICO IN LINGUAGGIO KOP (LADDER)

PLC S7-1200
Vuoi imparare a programmare il plc S7-1200 Siemens in linguaggio KOP? Stai cercando dei semplici programmi ladder per fare pratica con TIA Portal?
Benvenuto tra le mie lezioni gratuite di programmazione, oggi utilizzeremo la nostra CPU 1212C per progettare un filtro analogico con intervallo di campionamento personalizzabile.
Per provare il programma, ho anche disegnato un piccolo sinottico con WinCC all’interno di TIA Portal, potremo così verificare il funzionamento delle istruzioni che andremo a utilizzare.
Novità automazione e plc

Tra i linguaggi di programmazione preferiti dai programmatori nell’industria abbiamo sicuramente quello che nel mondo dei PLC Siemens viene chiamato KOP, più generalmente conosciuto come linguaggio ladder. Questo modo di programmare è riconosciuto in tutti gli stabilimenti produttivi, dato che esso risulta più comprensibile per chi ha studiato elettrotecnica e per chi conosce gli schemi elettrici industriali, per esempio i manutentori elettrici.

Il plc S7-1200 ci offre tre linguaggi di programmazione per costruire i nostri progetti: il linguaggio FUP, quello chiamato SCL, e infine proprio il KOP: oggi programmeremo con questo linguaggio.

Cosa fa il programma di oggi? Come accennato all’inizio della lezione, programmiamo un filtro analogico, in particolare un software che campiona un ingresso analogico con un intervallo da noi scelto, memorizza gli ultimi dieci valori e ne effettua la media; in questo modo otteniamo una curva che rappresenta l’ingresso analogico meno soggetta ai picchi.

Ecco nella prossima immagine come appare la pagina HMI che ho creato con WinCC all’interno di TIA Portal; è stata progettata per un pannello touch screen di tipo “Comfort”.

Schermata WinCC programma filtro analogico su pannello Siemens Comfort
Come vediamo nella figura sopra, a sinistra in alto abbiamo il valore analogico e sotto di esso il valore integrato, risultante dalla media degli ultimi dieci valori del primo.
Troviamo poi il campo dove scrivere il tempo di campionamento dell’ingresso analogico, espresso in millisecondi; infine sulla destra un selettore per abilitare il filtro.

Osservando le curve notiamo che la curva del valore calcolato di colore blu ha un andamento più regolare di quella più sottile nera, la quale rappresenta l’ingresso analogico non filtrato.
A questo proposito, l’ingresso analogico del plc S7-1200, prima di essere processato dal filtro viene scalato in un valore che va da zero a cento; sappiamo che gli ingressi analogici su questo sistema restituiscono valori interi compresi tra zero e 27648, a noi invece serve un valore reale 0-100.

Nella prossima figura vediamo il blocco dati db contenente i dati del nostro programma KOP.
DB dati programma filtro analogico con plc S7-1200

Nella db12 abbiamo un vettore di 10 elementi di tipo reale, nel quale verranno introdotti valori campionati dal filtro.

Poi troviamo il tempo di campionamento, che è una variabile di tipo Time e che viene impostata di default a 500 millisecondi.

L’ingresso analogico scalato, la media dei valori e la somma dei valori, sono tre variabili di tipo reale utilizzate per i nostri calcoli.

Ecco nella prossima figura la prima parte del programma ladder nel plc S7-1200.

Programma filtro PLC S7-1200 parte 1 in linguaggio KOP

Come vediamo nella figura sopra, nella prima linea di programma convertiamo l’ingresso analogico che restituisce un valore intero, in un valore reale che appoggiamo sulla variabile #appor1. L’istruzione successiva calcola il valore scalato per ottenere un numero reale che va da zero a cento.

Nel secondo ramo KOP abbiamo il timer che scandisce il campionamento, in pratica questo si auto resetta per ripartire, ogni volta che ha finito di contare. Esso viene abilitato dal merker M10.0 che abbiamo battezzato come “abilitazione”.

Ecco nella prossima figura la seconda parte del software.

Programma filtro PLC S7-1200 parte 2 in linguaggio KOP

Nel segmento tre del programma troviamo lo shift dei valori nel vettore di campionamento e l’inserimento del nuovo campione in testa ad esso; questa operazione viene effettuata ogni volta che il timer ha finito di contare, infatti il merker M10.1 viene alzato dall’uscita Q del timer.

Come facciamo scorrere i valori all’interno del vettore? Semplice, partiamo dal penultimo elemento e lo copiamo nell’ultimo, poi prendiamo il terzultimo elemento e lo copiamo nel penultimo, e procediamo in questo modo sino a raggiungere il primo elemento (indice zero nel vettore), che copiamo nell’elemento 1. Il nuovo campione viene inserito nell’elemento zero del vettore.

Nella prossima immagine vediamo l’ultima parte del programma.

Programma filtro PLC S7-1200 parte 3 in linguaggio KOP

Come vediamo in figura sopra, sempre valutando lo stesso bit M10.1 viene calcolata la somma dei valori nel vettore di campionamento, e infine generata la media dividendo la somma per il numero di campioni che è 10.

Naturalmente, con tempi di campionamento ristretti la curva del valore integrato sarà più simile a quella dell’ingresso analogico originale, mentre con tempi di campionamento più alti otterremo una curva del valore più distante dall’originale ma più “morbida”.

Bene, io ti invito a fare pratica con il linguaggio ladder KOP e il plc S7-1200, e ti do appuntamento alla prossima, quì sul mio sito dedicato all’automazione industriale e sul mio canale YouTube.

Buon lavoro e buono studio!

Copyright(C) automazione-plc.it
P. IVA: 11676200964
Sito di informazione e didattica sull'automazione industriale, il mondo dei PLC e dei sistemi di supervisione.
Programmazione PLC.
Programmazione SCADA e HMI.
Apparecchiature e hardware industriale.
Strumentazione da campo.
Policy sulla Privacy e utilizzo dei Cookies