Programmazione PLC

 

Esempio corso PLC prof Gottardo. (clicca per vedere il video su youtube)

Esempio cancello a scorrimento degli allievi.

Esempio di lezione su SCADA

Libro di testo copertina morbida A4      Prezzo www.lulu.com: € 38,50

Let’s program a PLC!!! (edizione 2016)

ISBN

Edizione
Terza edizione
Pubblicato
01 Gennaio 2016  (anteprima Agosto 2015)
Italiano
412
1,13Kg
Il libro di testo destinato ad essere il riferimento per  gli ITIS,  IPSIA e l’università’.E’ il più completo e nello stesso tempo semplice ed efficace disponibile nel mercato.

Questo libro, edito nel 2016, è l’evoluzione verso le nuove piattaforme software e nuove tecnologie delle reti di PLC. Introduce TIA Portal V12,Simatic Step 7 V.5.5, il MicroWin e il WinCC. Concentra la ventennale esperienza nel campo maturata dall’autore e sostituisce la precedente edizione già molto nota e apprezzata dal pubblico. Una nuova impaginazione e la successione con cui si presentano gli argomenti sono ottimali sia per l’apprendimento scolastico sia per autodidatta portando le conoscenze a livello professionale. L’impiego di sistemi HMI programmati tramite WinCC connessi in Profibus completa la preparazione del tecnico. Ogni argomento è corredato di numerosi esercizi sia completamente svolti che proposti. Nella sezione programmazione avanzata si interfaccia un motore asincrono trifase a un convertitore statico, inverter, aprendo la strada a tutte le applicazioni reali. Fondamentale il capitolo sulla normalizzazione dei segnali analogici.

Corso PLC edizione febbraio 2017.

Esempio di lettura simultanea di una termocoppia J e una PT100 con PLC S7-1200 modello 1214C DC/DC/relè in TIA Portal V13.

Valigetta PLC S71200 Michele Pirolo

ETK_convertitori_analogici

Descrizione del blocco FC1 che esegue l’acquisizione e la normalizzazione delle temperature da  PTC 100 TC tipo J


SCADA

Esempio di programmazione SCADA nelle lezioni di PLC, corso avanzato.  Nota Bene: da settembre 2016 le lezioni non si svolgono più nella sede indicata nel video, ma nella nuova sede della G-Tronic Robotics Didactis division di Via Austria 19b, 35127, Zona industriale Padova.

Scada-Movicom

Vedi filmato su youtube: Collegamento S71200 a supervisione SCADA

Programma di esempio con collegamento a S71200 SCADA_moviconTest1


Collegamento inverter.

In questo video vedrete una spiegazione semplificata ma comunque dettagliata sul funzionamento di un piccolo inverter monofase/trifase di tipo a controllo unipolare in tensione proporzionale alla frequenza generata.  IL sistema si interfaccia a un PLC S7-300 con CPU 314 IFM, la cui uscita analogica genera via software il segnale proporzionale di comando. Il motore collegato è da 1KW nominale. I collegamenti delle fasi cono fissi a stella. Si è ammessi a questo livello del corso dopo avere ottenuto l’attestato G-Tronic Robotics di primo livello oppure se si è in possesso di laurea in ingegneria delle automazioni  (non da diritto all’accesso diretto altri ti di ingegneria o altri tipi di laurea).

Altivar-motore

Vedi il filmato su youtube: Collegamento inverter Altivar 11.


Acquisizione encoder modello E620 2000 10 24 R8 PP2 con S7-1200.

Questo programma è stato sviluppato al corso di programmazione avanzata dei PLC Siemens tenuto a Padova. Fa parte di un contesto più grande che è stato tolto per focalizzare l’attenzione sull’attivazione dell’HSC.

La piattaforma software è il TIA Portal V14 basic, ovvero i CD contenuti nello starter KIT distribuito da Siemens con la CPU S7-1200 modello 1212C-AC/DC/Relè. L’esatta versione firmware è visualizzabile nella configurazione hardware.

Encoder_HSC

Il DB di istanza contiene le seguenti variabili:

tag

Il programma funziona solo se sono state effettuate le corrette configurazioni hardware degli HSC. Queste saranno:  L’abilitazione mettendo lo spunto su HSC1 (o gli altri canali) nel menu, sotto a generale (della CPU), HSC1 ..”attiva questo contatore veloce”.  A seguire, sulla voce funzione, impostare come da immagine sottostante:

funzione

Alla voce “Resetta i valori iniziali” come da immagine:

resetta valori

la voce configurazione evento, al momento la lasciamo libera. Alla voce ingressi Hardware impostiamo gli ingressi fissi come da immagine:

Indirizzi preinpostati

Impostare gli indirizzi di I/O come da immagine:

indirizziID

scarica il programma di esempio. encoder

Scarica versione del programma con pannello operatore KTP400 e contatore A/B. Questo programma è stato sviluppato nella lezione del 18/06/2017. Si vuole controllare un asse lineare progettato con una barra filettata che per ogni giro avanza di 1,25mm, ovvero ogni 2000 impulsi dell’encoder utilizzato. Nel touch viene richiesta la quota di posizionamento dell’asse in mm con due decimali dopo la virgola, ad esempio la quota 5,65 mm viene prima moltiplicata per 100 (allo scopo di togliere la virgola) e poi convertita dal formato Real to Double Int. Viene spatata in un merker Double. Viene convertita dalla funzione calcolate in 9040 impulsi.

Immagine_calculate

touch_quote_encoder

Il comparatore della quota inserita è impostato nell’FC1, e si tratta di un esercizio.

Nella realtà la comparazione di quota è effettuata tramite interrupt nell’HSC modificando le sue proprietà nell’hardware. -> Encoder con Touch e quota stop su IP ciclico.

scarica il databook dell’encoder Encoder_databook


ServoStepper

Questo programma posiziona l’angolo di uno stepper motor bipolare a 4 fili in funzione di un angolo impostato tramite un Encoder (vedi databook del progetto precedente) a 2000 impulsi al giro. Si consideri uno stepper motor con caratteristiche elettriche 5V DC per bobina, corrente <=2A, numero impulsi al giro 200, gradi a impulso 1,8°.

Matrice full step, numero di matrici per fare un giro 50.

Il rapporto giro encoder/giro stepper è 1/10, quindi nel programma viene eseguita una divisione per 10.

Immagine_divisone_per_10

Per il funzionamento è necessario impostare un canale di interrupt in OB40 per reagire al fine conteggio e altri stimoli provenienti dal contatore veloce.

Immagine_OB_interrupt

L’interfaccia di controllo dello stepper si trova descritta sul libro di testo

advanced PLC programming Gottardo

Advanced PLC Programming ing. Marco Gottardo

Il programma è stato testato alla lezione di programmazione avanzata del 18 giugno 2017.  Chi volesse partecipare a questi corsi nella formula week end o serale può scrivere una mail a ad.noctis@gmail.com

Scarica il programma per CPU 1212C AC/DC/Re    Servo_stepper


Comunicazione PROFINET tra due PLC S7-1200.

Alla lezione del week end 18/19 febbraio 2017, dedicata ai fuori sede, abbiamo collegato  un PLC S7 1200 mod. 1212c AC/DC/RLY XX31 con id PLC_1 ad un PLC  con id PLC_2 mod 1212c AC/DC/RLY XX31

Lo scopo è quello di trasferire 4 interi, ovvero 8 byte di dati da un PLC a un altro usando i DB dei partener di comunicazione. Nello stato iniziale il primo PLC contiene nel DB i valori 1,2,3,4 a partire da byte 4, mentre il secondo contiene PLC contiene i valori 5,6,7,8 a partire sempre dal byte 4 del DB.

Dopo il trasferimento entrambi i DB dei partner online contengono 1,2,3,4 a partire dal byte 4 del DB.   Il trasferimento avviene usando la funzione PUT.

Nella rete i dispositivi sono stati inseriti con i seguenti IP

  • PLC_1 192.168.0.1
  • PLC_2 192.168.0.3
  • HMI KTP400 BASIC COLOR 192.168.0.2

In entrambi i PLC abbiamo creato un DB globale con la forma:

Blocco dati di destinazione

Le prime due righe sono variabili locali mentre i dati che intendiamo leggere/spedire sono 4 e si trovano all’indirizzo byte 4. Trattandosi di INTEGER hanno un’estensione totale di 8 byte come dovremmo indicare nel puntatore di accesso del comando PUT di cui vogliamo dimostrare il funzionamento.

Nell’immagine l’azione di trasferimento è già stata eseguita quindi nella colonna valore di controllo (visibile solo dopo avere agito negli “occhiali” di controllo delle variabili) compaiono i valori provenienti dal PLC che ha eseguito il PUT.  Quello che stiamo osservando è il DB del partner di comunicazione che ha subito la scrittura.

Nel PLC_2 usiamo il DB2 mentre nel PLC_1 il DB4.

Dati contenuti nel DB2   -> Dato5,6,7,8=5,6,7,8

Dati contenuti nel DB4  -> Dato1,2,3,4=1,2,3,4

L’obbiettivo è quello di trasferire i dati 1,2,3,4 nel DB2 del partner sovrascrivendo gli attuali 5,6,7,8 come già a visualizzato nell’immagine sovrastante.

Useremo i comandi GET e PUT nel protocollo profinet, inizialmente testiamo il PUT.

rete profinet gottardo

Obbiettivo trasferire quattro INTEGER dal DB4 del PLC_1 ad un DB2 del  PLC_2 remoto.

Funzione PUT

Agiamo sull’icona con la forma di cassetta degl’attrezzi.

collegamento al partner di comunicazione gottardo

Salviamo la configurazione .

In caso di problemi di comunicazione verificare di aver compilato la configurazione hardware con tutti i PLC e i dispositivi offline, e assicurarsi di aver ricaricato hardware e software in tutti i PLC dopo aver compilato.

Salvare la configurazione hardware profinet

 Scarica pdf bozza di questo articolo -> comunicazione profinet tra CPU 1200

Scarica il programma con questo esempio di comunicazione profinet -> nastro_hmi

In questo progetto, oltre alla comunicazione Profinet tra le due CPU sopradescritta troverete la configurazione per il pannello HMI modello KTP400 basic color (con programma Wincc) che accede contemporaneamente a ai TAG di entrambi i PLC centralizzando il controllo.

Profinet:  Un HMI accede a due PLC scambiando i dati tra i loro DB.

In questo esercizio, simile al precedente ma più completo, viene progettato un HMI modello KTP400 basic, in grado di accedere ai DB di due diversi PLC simultaneamente. L’area del pannello è divisa in due zone, la metà di sinistra per il controllo di un PLC e l’area di destra per il controllo dell’altro PLC.

Scarica il programma completo Comunicazione Profinet tra 2 S7-1200 e un HMI

TIA_HMI_Panel_esercizio_Profinet_Gottardo

In ogni PLC viene definito un DB contenente un set di dati con l’obbiettivo di trasmetterli al partner di comunicazione. Viene inoltre trasmetto il valore analogico acquisito da uno dei PLC. Il touch panel supervisiona e comanda le azioni. I valori sono mostrati nei campi HMI.

Profinet_esercizio_Gottardo_DB2_PLC1

Contenuto iniziale di DB2 nel PLC1, è fondamentale dalle proprietà del DB togliere lo spunto dal menù “accesso ottimizzato” allo scopo di poter visualizzare la colonna “offset” che mostra gli indirizzi in Byte.

Ecco la situazione, con una vista più globale, di DB1 nel lato PLC2.

PLC2_DB1

PLC_2_DB1

Aspetto del programma sul lato WinCC.

PANNELLO

Nella prossima immagine la tabella delle variabili lato HMI.

TABELLA_VARIABILE_TOUCH

Il contenuto di FC1 sul PLC1- ->PLC_1_FC1

 Datalogger con S7-1200.

Questo programma salva su un file excel in un PC che funge da terminale scada oppure da server 10 pacchetti schedulati contenenti ciascuno il time stamp e la registrazione del canale analogico. Questo potrà essere una temperatura o altro proveniente da un sensore in campo.

scarica il progetto TIA V13 del datalogger per 1212C AC/DC/relay ->data_log

L’acquisizione è sincronizzata su un merker di clock i cui fronti, posti in ingresso a un contatore determina il numero di campioni richiesti nel pacchetto registrato nel file excel in formato CSV, ovvero i campi sono separati da una virgola.

Sul PLC deve essere attivato il WEB server. Sarà parte essenziale del progettoun DB globale, nel nostro caso chiamato datalog che potrete vedere scaricando il file sopra.

scren1

Attenzione:  Il campo RECORDS in DataLogCreate, qui impostato a “1” indica il numero delle righe che troveremo nel file Excel. Possiamo cambiare questo parametro  indicando, ad esempio, 10.  Verranno registrati 10 campioni con i relativi Time stamp.scren2 scren3 scren4

Il file excel ottenuto è ->Recorder[1]

Per esercizio si tracci il grafico in RunTime del valore analogico schedulato.


Esercizio di indicizzazione di un  array. Si genera la matrice di passo di un motore stepper usando una tabella indicizzata.

Indicizzazione_array_Dati

Indicizzazione_array_LD


Documentazione tecnica utile.


Generatore PWM per CPU 313C


Corso avanzato: Attivazione misuratore di frequenza PLC314IFM

Vogliamo risolvere il problema del controllo della velocità, ad esempio di un nastro trasportatore al cui asse è abbinato un disco con n fori. Tale esercizio è ben esposto sul testo di programmazione avanzata dei PLC.

Potremmo realizzare il sistema con un motore DC per asservimenti o un MAT al cui asse sia collegato anche un disco forato che generi un treno di impulsi, oppure munito di un magnete o elemento metallico il cui passaggio sia rilevabile da proximity.  In alternativa il sistema potrà essere mosso da un motore stepper.

 Per lo svolgimento sarà necessario abilitare la funzione FC40 “IEC Time to S5TI”  e successivamente il funzionale integrato di sistema SFB30 che realizza la misurazione della frequenza appoggiandosi al DB di istanza DB62.

Il segnale a cui perviene la frequenza sarà E126.0 “proximity”, a cui la CPU abbina il canale hardware del misuratore di frequenza.

Si generano delle rampe, tramite dei Timer di tipo ritardato all’eccitazione “SA”, la cui durata indica la distanza tra due letture del sensore, da cui ricaviamo la velocità.

Ovviamente è fondamentale la trasformazione tra velocità angolare “omega” e la velocità tangenziale che costituisce la velocità effettiva del materiale posto sul nastro.

 Vedi il blocco di programma FC1

Per abilitare le funzioni integrate di sistema bisogna eseguire dei preset nella configurazione dell’hardware.

frequenzimetro sfb30

Hardware1

Hardware2

progetto_frequenzimetro

tabella_simboli

SFB30

DB62_istanza


Esercizio di programmazione avanzata dei PLC S7-300 CPU 314 IFM e HMI

In questo esercizio si vuole controllare e mantenere costante la velocità di un nastro trasportatore usando le funzioni integrate di sistema Frequenzimentro, Pulsgen e PID di una CPU 314IF. Il pannello operatore impiegato è il TP170A. il software è stato testato. La meccanica è esposta nel testo “Advanced PLC programming

Scarica il progetto e disarchivialo in Step7 V5.5 ->Progetto_velocita_nastro

Elenco funzioni integrate di sistema, visualizzate nel simatic manager:

manager_nastro_speed

  • SFB30 -> misuratore di frequenza (ci sono 5 impulsi al giro su un proximity), il DB di istanza è DB62.
  • SFB43 -> PID, il DB di istanza è DB43.
  • SFB49 ->  Uscita PWM il DB di istanza è DB49.

Sfondo per il pannello HMI modello TP170A

nastro


Manuali e documentazione.

  1. CPU 314IFM e 312IFM ->CPU314IFM_Manuale
  2. Siemens_Simatic_S7-1500_PLC_UVBAW6_v1_0