gestione segnali analogici S7-1200 · Per la normalizzazione si ricorre alle operazioni di calcolo....

17
ELABORAZIONE DEI SEGNALI ANALOGICI NEL PLC S7-1200 Segnali analogici A differenza di un segnale binario, che può assumere solo i due livelli ("tensione presente +24V" stato 1, "tensione non presente 0V" stato 0) i segnali analogici possono assumere un qualsiasi numero di valori all'interno di un determinato campo. Un sensore analogico con uscita in tensione può essere rappresentato da un potenziometro. A seconda della posizione della manopola è possibile impostare qualsiasi resistenza, fino al valore massimo. Le grandezze fisiche vengono convertite in tensioni, correnti o resistenze elettriche mediante un trasduttore. Per rilevare un numero di giri, ad es., è possibile convertire la gamma di velocità 500 ... 1500 giri/min in un campo di tensione di 0 ... +10V con un trasduttore. Se il numero di giri misurato fosse 865 giri/min il trasduttore fornirebbe un valore di tensione pari a + 3,65 V.

Transcript of gestione segnali analogici S7-1200 · Per la normalizzazione si ricorre alle operazioni di calcolo....

Page 1: gestione segnali analogici S7-1200 · Per la normalizzazione si ricorre alle operazioni di calcolo. ... istruzioni di base → operazioni di confronto → >= trascinare... istruzioni

ELABORAZIONE DEI SEGNALI ANALOGICI NEL PLC S7-1200

Segnali analogiciA differenza di un segnale binario, che può assumere solo i due livelli ("tensione presente+24V" → stato 1, "tensione non presente 0V" → stato 0) i segnali analogici possonoassumere un qualsiasi numero di valori all'interno di un determinato campo. Un sensoreanalogico con uscita in tensione può essere rappresentato da un potenziometro. A secondadella posizione della manopola è possibile impostare qualsiasi resistenza, fino al valoremassimo.Le grandezze fisiche vengono convertite in tensioni, correnti o resistenze elettrichemediante un trasduttore. Per rilevare un numero di giri, ad es., è possibile convertire lagamma di velocità 500 ... 1500 giri/min in un campo di tensione di 0 ... +10V con untrasduttore. Se il numero di giri misurato fosse 865 giri/min il trasduttore fornirebbe unvalore di tensione pari a + 3,65 V.

Page 2: gestione segnali analogici S7-1200 · Per la normalizzazione si ricorre alle operazioni di calcolo. ... istruzioni di base → operazioni di confronto → >= trascinare... istruzioni

Per elaborare le grandezze analogiche con un PLC, il valore letto della tensione, dellacorrente o della resistenza deve essere convertito in un'informazione digitale. Questaconversione viene definita conversione analogico-digitale (conversione A/D). Ciò significaad es. che il valore della tensione di 3,65V viene salvato come informazione in una serie dicifre binarie. Più cifre binarie vengono utilizzate per la rappresentazione digitale, maggioreè la risoluzione. Per l'elaborazione del valore analogico, i tipi di dati 'INT' e 'REAL' sono particolarmenteimportanti. Infatti i valori analogici immessi sono disponibili come numeri interi in formato'INT' e per garantire che l'ulteriore elaborazione sia precisa - considerato l'errore diarrotondamento di 'INT' - vanno utilizzati solo numeri in virgola mobile 'REAL' .

Immissione/emissione dei valori analogici

I valori analogici vengono immessi ed emessi nel PLC come informazioni a parola (tipo INTa 16 bit corrispondente a una WORD). Queste parole sono accessibili con gli operandi:

%IW 64 Indirizzo del primo ingresso analogico (Canal e 0)%IW 66 Indirizzo del secondo ingresso analogico (C anale 1)

%QW 80 Indirizzo uscita analogica

Page 3: gestione segnali analogici S7-1200 · Per la normalizzazione si ricorre alle operazioni di calcolo. ... istruzioni di base → operazioni di confronto → >= trascinare... istruzioni

La trasformazione del valore analogico per l'ulteriore elaborazione nel PLC è uguale peringressi e uscite analogici.I campi dei valori digitalizzati sono rappresentati in questo modo:

Normalizzazione dei valori analogici in Unità Ingeg neristiche

Se un valore di ingresso analogico è disponibile come valore digitalizzato, nella maggiorparte dei casi deve ancora essere normalizzato per far sì che i valori numericicorrispondano alle grandezze fisiche del processo.Per la normalizzazione si ricorre alle operazioni di calcolo.Per assicurare la massima precisione possibile i valori da normalizzare devono essereconvertiti nel tipo di dati REAL così da ridurre al minimo gli errori di arrotondamento.

Page 4: gestione segnali analogici S7-1200 · Per la normalizzazione si ricorre alle operazioni di calcolo. ... istruzioni di base → operazioni di confronto → >= trascinare... istruzioni

Esempio: controllo del livello di un serbatoio.

Un sensore misura il livello di riempimento in un serbatoio e lo converte in un segnale ditensione 0-10V.0V corrispondono a un livello di 100 litri e 10V a un livello di 1000 litri.Il sensore viene collegato al primo ingresso analogico del S7-1200.Il segnale deve essere immesso in una funzione FC1 ed essere normalizzato.Successivamente si dovranno programmare la visualizzazione per il livello superiorea 990 litri e per il livello inferiore a 110 litri.

Tabella di attribuzione:

Indirizzo Simbolo Tipo di dati Commento

%IW 64 AI_LEVEL_TANK Int Ingresso analogico serbatoio%Q 0.0 Tank1_max Bool Visualizzazione del livello > 990 litri%Q 0.1 Tank1_min Bool Visualizzazione del livello < 110 litri

Creiamo un nuovo progetto in TIA Portal dal nome “controllo_serbatoio” → aggiungi nuovodispositivo → cpu1214c AC-DC-Rly. Ora il software passa automaticamente alla vista progetto con la configurazione hardwareaperta(“Generale Dispositivi”).Qui è possibile aggiungere ulteriori moduli prelevandoli dal catalogo hardware (a destra!).

Page 5: gestione segnali analogici S7-1200 · Per la normalizzazione si ricorre alle operazioni di calcolo. ... istruzioni di base → operazioni di confronto → >= trascinare... istruzioni

Inserire qui la “signal board” per un'uscita analogica trascinandola con il mouse dalcatalogo. ( (Catalogo) → Signal board → AQ1 x 12 bit → 6ES7 232-… )Controllare poi che l'indirizzo IP sia corretto.Ora definiamo le variabili PLC globali .Queste variabili PLC globali sono nomi descrittivi corredati di commento per gli ingressi e leuscite che vengono utilizzati nel programma. In un secondo momento, durante laprogrammazione, da questi nomi si potrà accedere alle variabili PLC globali.Queste variabili globali si possono utilizzare in tutto il programma in tutti i blocchi.Nella navigazione del progetto selezionare :→ Controllo_serbatoio [CPU1214C AC/DC/R] → Variabili PLC→ Tabella delle variabilistandard) con un doppio clic e inserire i nomi degli ingressi e delle uscite come nella figuraseguente.

Page 6: gestione segnali analogici S7-1200 · Per la normalizzazione si ricorre alle operazioni di calcolo. ... istruzioni di base → operazioni di confronto → >= trascinare... istruzioni

Per creare la funzione FC1 selezionare nella navigazione del progetto →Controllo_serbatoio[CPU1214 AC/DC/R] → Blocchi di programma → Inserisci nuovoblocco.

Page 7: gestione segnali analogici S7-1200 · Per la normalizzazione si ricorre alle operazioni di calcolo. ... istruzioni di base → operazioni di confronto → >= trascinare... istruzioni

Selezionare 'Function (FC)' e assegnare il nome 'controllo_livello_serbatoio' . Comelinguaggio di programmazione utilizziamo lo schema funzionale 'FBD' o FUP . Lanumerazione è automatica. Poiché questa FC1 in un secondo tempo verrà richiamatacomunque con il nome simbolico, il numero non ha più una grande importanza. Applicare i dati inseriti con 'OK' . ( → Funzione (FC1) → controllo_livello_serbatoio → FUP→ OK).

Page 8: gestione segnali analogici S7-1200 · Per la normalizzazione si ricorre alle operazioni di calcolo. ... istruzioni di base → operazioni di confronto → >= trascinare... istruzioni

Il blocco 'controllo_livello_serbatoio' si apre automaticamente. Prima di poter scrivere ilprogramma è necessario dichiarare l'interfaccia del blocco.Con la dichiarazione dell'interfaccia si definiscono le variabili locali, conosciute solo inquesto blocco.Le variabili si suddividono in due gruppi:

1) Parametri del blocco che costituiscono l'interfaccia del blocco per il richiamo nelprogramma:

Page 9: gestione segnali analogici S7-1200 · Per la normalizzazione si ricorre alle operazioni di calcolo. ... istruzioni di base → operazioni di confronto → >= trascinare... istruzioni

2) Dati locali che permettono il salvataggio di risultati intermedi:

Page 10: gestione segnali analogici S7-1200 · Per la normalizzazione si ricorre alle operazioni di calcolo. ... istruzioni di base → operazioni di confronto → >= trascinare... istruzioni

Per la dichiarazione delle variabili locali nel nostro esempio sono necessarie le seguentivariabili:Input:AI_LEVEL_TANK Qui il sensore di livello immette il valore analogico Output:LIVELLO_MAX Qui viene scritto nell'uscita lo stato della visualizzazione del

livello max.LIVELLO_MIN Qui viene scritto nell'uscita lo stato della visualizzazione del

livello min.Temp:tank_level_real Questa variabile è necessaria per salvare un valore

intermediotank_level_norm Qui viene fornito un valore per il livello di riempimento in

formato di virgola mobile normalizzato in un campo di 100-1000 litri.

Page 11: gestione segnali analogici S7-1200 · Per la normalizzazione si ricorre alle operazioni di calcolo. ... istruzioni di base → operazioni di confronto → >= trascinare... istruzioni

Dopo aver dichiarato le variabili locali è possibile immettere il programma della FC1utilizzando i nomi delle variabili. (Le variabili sono identificate dal simbolo '#').Lo realizziamo in FUP(FBD) .

Page 12: gestione segnali analogici S7-1200 · Per la normalizzazione si ricorre alle operazioni di calcolo. ... istruzioni di base → operazioni di confronto → >= trascinare... istruzioni

1) Segmento1: conversione dell'ingresso analogico (0-27648) da INT a REAL:

istruzioni di base → operazioni di conversione → NORM_X trascinare...

Page 13: gestione segnali analogici S7-1200 · Per la normalizzazione si ricorre alle operazioni di calcolo. ... istruzioni di base → operazioni di confronto → >= trascinare... istruzioni

2) Segmento 2: Normalizzazione nel range 100-1000 (conversione in unità ingegneristiche):

istruzioni di base → operazioni di conversione → SCALE_X trascinare...

Page 14: gestione segnali analogici S7-1200 · Per la normalizzazione si ricorre alle operazioni di calcolo. ... istruzioni di base → operazioni di confronto → >= trascinare... istruzioni

3) Segmento 3: determino livello>990 litriistruzioni di base → operazioni di confronto → >= trascinare...istruzioni di base → combinazioni logiche di bit → assegnazione (=) trascinare...

Page 15: gestione segnali analogici S7-1200 · Per la normalizzazione si ricorre alle operazioni di calcolo. ... istruzioni di base → operazioni di confronto → >= trascinare... istruzioni

4) Segmento 4: determino livello<110 litriistruzioni di base → operazioni di confronto → <= trascinare...istruzioni di base → combinazioni logiche di bit → assegnazione (=) trascinare...

Page 16: gestione segnali analogici S7-1200 · Per la normalizzazione si ricorre alle operazioni di calcolo. ... istruzioni di base → operazioni di confronto → >= trascinare... istruzioni

Ora inseriamo la funzione appena creata nel Main [OB1] trascinandola:…....

Nell'OB1 le variabili di ingresso e di uscita ora vanno interconnesse con le variabili PLC.

Page 17: gestione segnali analogici S7-1200 · Per la normalizzazione si ricorre alle operazioni di calcolo. ... istruzioni di base → operazioni di confronto → >= trascinare... istruzioni

Successivamente occorre selezionare le “Proprietà” del blocco 'Main[OB1]' elaboratociclicamente (tasto dx). Selezionare nelle proprietà il linguaggio di programmazione ('Linguaggio' ) schemafunzionale 'FBD' . ( → FUP → OK)

Salviamo il progetto e carichiamolo sul PLC:Per caricare l'intero programma nella CPU selezionare prima la cartella'controllo_serbatoio' nella navigazione del progetto e fare clic sul simbolo (Carica neldispositivo). Avviare la CPU.Con un clic del mouse sul simbolo Monitoring on/off (Controllo on/off) è possibile controllarelo stato delle variabili durante il test del programma.