Vai al contenuto
PLC Forum


Acquisizione Pt 100 Su S7300


Messaggi consigliati

Inserito:

Salve a tutti, ho un problema in un programma con S7-300:

Ho in ingresso una PT 100, ch tramite un convertitore, con un segnale analogico 0-10 V (-5/200 °C).

Questo segnale, lo devo soltanto ritrasformare in temperatura e mandarlo alla supervisione esistente.

Il programma è esistente, così come la supervisione. Io ho soltanto sostituito il convertitore che si era guastato. Come devo agire per calibrare nuovamente il nuovo convertitore?

la riga di comando che ho è questa:

L "TEMP" PEW286 -- TEMPERATURA

ITD

DTR

L 1.382500e+002

/R

T "AOUT"-T_TEMP DB1.DBD40 -- TEMPERATURA

Grazie

CIAO


Federico Milan
Inserita:

è una semplice linearizzazione, ossia

10V (4096 punti di analogica) --> 200 °C

0V ( 0 punti di analogica) --> -5 °C

quindi:

(4096 - 0) : (200 - -5) = (PEW - 0) : (Temp - - 5)

(PEW - 0) * (200 - -5) / (4096 - 0) = Temp - -5

Temp = PEW * 205 / 4096 - 5 =

Questo è quanto ti serve :) ciao

Inserita:

Salve,

in alternativa puoi utilizzare la funzione FC105 SCALE CONVERT che puoi trovare nelle Standard Library /TI-S7 Converting block di S7.

la funzione è questa.....

     CALL  FC   106
       IN     :=PEW286                  //ingresso 0-10V == 0-27648
       HI_LIM :=2.000000e+002           //Limite superiore desiderato (tuo caso 200.0 °C==10Volt=27648 su PEW286) 
       LO_LIM :=-5.000000e+000          //Limite inferiore desiderato (tuo caso -5.0 °C==0Volt=0 su PEW286)
       BIPOLAR:=#_False                 //OFF=Ingresso IN Unipolare / ON=Ingresso IN Bipolare
       RET_VAL:=#FC106_RET_VAL          //Codice di eventuale errore della funzione 
       OUT    :=DB1.DBD40               //Uscita temperatura linearizzata

Nell'esempio la funzione è stata rinominata in FC106 perchè la 105 era già presente.

Ovviamente questa funzione lavora correttamente solo sè il tuo ingresso analogico lavora nel range 10V==0-27648.

Per Federico Milan,

Forse mi sbaglio, la formula dovrebbe essere quella di una retta passante per due punti noti.

Temp = PEW * 205 / 4096 - 5

se eseguo la formula postata qui sopra con PEW=0Volt=0 Punti di analogica non ottengo -5°C e neppure 200°C con 10V=4096

Saluti

Cagliostro

Inserita:

La formula corretta se voglio linearizzare la temperatura come da caratteristiche trasduttore sarà:

T=(Valore PEW / Max punti analogica) * ( Lim max temperatura - Lim min temperatura) + Lim min temperatura

Es. con Max punti analogica = 4096 e PEW = 4096==>> T= (4096/4096)*(200-(-5))+(-5)=200°C

Es. com Max punti analogica = 4096 e PEW= 0=====>> T= (0/4096)*(200-(-5))+(-5)=-5°C

Inserita:

Perché 4096?

Il segnale 0-10V viene letto dal 300 come 0-27648

Quindi, se si preferisce fare il calcolo piuttosto che utilizzare la funzione di scalatura, la formula è:

t = Val_PEW * 205 / 27648 - 5

Si può risparmiare un'operazione calcolando direttamente il valore di 205/27648 = 0.00741464

In AWL:

L "TEMP" PEW286 -- TEMPERATURA
ITD
DTR
L 0.00741464
*R
L 5.0
-R
T "AOUT"-T_TEMP DB1.DBD40 -- TEMPERATURA

Inserita:

I due esempi fatti con la formula da me postata sono stati fatti solo per considerare quanto riportato nell'esempio di Federico tutto qua.

Nell'altro post con il codice inerente la FC105 rinominata FC106, a fianco ci sono i commenti del caso....... con la rappresentazione dei valori nel range 0-27648

IN :=PEW286 //ingresso 0-10V == 0-27648

Buona serata

Cagliostro

Inserita:

Ok, grazie a tutti, ora provo nei modi che mi avete suggerito, ma se invece volessi linearizzare la misura intervenendo sul valore di L, è possibile? Posso modificare il valore di 1.382500e+002 per ottenere un giusto risultato? Come và calcolato quel valore?

L "TEMP" PEW286 -- TEMPERATURA

ITD

DTR

L 1.382500e+002

/R

T "AOUT"-T_TEMP DB1.DBD40 -- TEMPERATURA

GRAZIE

CIAO

Inserita:

Ti abbiamo detto che la tua formula è sbagliata.

La costante 138.25 sarebbe quasi corretta se il segnale 0-10V corrispondesse a una temperatura di 0-200°C.

Ripartiamo da zero.

I dati del problema sono:

1) temperatura da -5° a +200°C viene convertita in segnale 0-10V

2) in S7-300 il segnale 0-10V viene letto come 0-27648

Quindi il valore 27648 corrisponde ad una escursione di temperatura di 205°C.

E si deve poi considerare che non si parte da 0°C, ma da -5°C

Quindi, la formula corretta è quella che ti abbiamo postato, e che invece continui ad ignorare.

temperatura = Val_PEW * 205 / 27648 - 5

Per comodità puoi riassumerla in:

temperatura = Val_PEW * 0.007414641 - 5

oppure:

temperatura = Val_PEW / 134.8683 - 5

Sicuramente non in:

temperatura = Val_PEW / 138.25

Dov'è che non siamo stati sufficientemente chiari?

Inserita:

Salve,

partendo dal presupposto che hai postato:

Ho in ingresso una PT 100, ch tramite un convertitore, con un segnale analogico 0-10 V (-5/200 °C).

il codice che attualmente è inserito nella CPU a prescindere dal valore della costante che adesso è 138,25 ma che tu vorresti modificare per ottenere "l'esatta visualizzazione" della temperatura sul supervisore di impianto o di linea, non è corretto.

E' evidente che la costante di scalatura (138,25) attualmente utilizzata, troverebbe il corretto impiego se il tuo trasduttore di temperatura PT100 inviasse un segnale 0/10V = 0/200°C.

Così non è......a 0 V come da te postato, la temperatura da visualizzare sarebbe di -5°C, invece il risultato del rapporto

L "TEMP" PEW286 -- TEMPERATURA
ITD
DTR
L 1.382500e+002
/R
T "AOUT"-T_TEMP DB1.DBD40 -- TEMPERATURA

visualizzerà un dato pari a 0°C cioè 0/138,25.

Ora non so l'importanza di questa visualizzazione nell'eventuale gestione del processo.

Può anche darsi che il dato visualizzato, anche sè propriamente non corretto, non sia determinante per il processo o l'indicazione che comunque deve segnalare.

Ad ogni modo perchè non sistemare la cosa in modo definitivo?????

Gli esempi ti sono stati forniti.

Se invece non ti senti sufficientemente sicuro di modifcare il codice introducendo le nuove istruzioni, ma riadattando invece la costante 138,25 con un nuovo valore , allora questa è un'altra cosa.

Ricapitolando, quanto da te richiesto nell'ultimo post è possibile, pur mantenendo comunque sempre quel famoso errore su 0V=0°C visualizzati e non -5°C.

La costante 138,25 è ottenuta dal rapporto tra 27648/200°C

Come ben sai 27648 rappresenta la conversione dell'ingresso analogico in digitale, quando viene applicata una tensione di 10V corrispondente al range massimo di temperatura (in questo caso 200°C).

Quindi riadattando questa costante ottieni quello che definisci un "giusto risultato", tuttavia come spiegato pocanzi, il risultato prorpio giusto non è.

Saluti

Cagliostro

Inserita:

Grazie a tutti, ho fatto come mi avete detto, cioè modificando il valore di L, ed ora il sistema sta funzionando correttamente, visualizzo una giusta temperatura sul PC, verificata conuno strumento.

Saluti

Crea un account o accedi per commentare

Devi essere un utente per poter lasciare un commento

Crea un account

Registrati per un nuovo account nella nostra comunità. è facile!

Registra un nuovo account

Accedi

Hai già un account? Accedi qui.

Accedi ora
×
×
  • Crea nuovo/a...