simo86 Inserito: 12 maggio 2010 Segnala Inserito: 12 maggio 2010 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 -- TEMPERATURAITDDTRL 1.382500e+002/RT "AOUT"-T_TEMP DB1.DBD40 -- TEMPERATURAGrazieCIAO
Federico Milan Inserita: 12 maggio 2010 Segnala Inserita: 12 maggio 2010 è una semplice linearizzazione, ossia10V (4096 punti di analogica) --> 200 °C0V ( 0 punti di analogica) --> -5 °Cquindi:(4096 - 0) : (200 - -5) = (PEW - 0) : (Temp - - 5)(PEW - 0) * (200 - -5) / (4096 - 0) = Temp - -5Temp = PEW * 205 / 4096 - 5 =Questo è quanto ti serve ciao
cagliostro Inserita: 12 maggio 2010 Segnala Inserita: 12 maggio 2010 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 linearizzataNell'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 - 5se eseguo la formula postata qui sopra con PEW=0Volt=0 Punti di analogica non ottengo -5°C e neppure 200°C con 10V=4096SalutiCagliostro
cagliostro Inserita: 12 maggio 2010 Segnala Inserita: 12 maggio 2010 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°CEs. com Max punti analogica = 4096 e PEW= 0=====>> T= (0/4096)*(200-(-5))+(-5)=-5°C
batta Inserita: 12 maggio 2010 Segnala Inserita: 12 maggio 2010 Perché 4096?Il segnale 0-10V viene letto dal 300 come 0-27648Quindi, se si preferisce fare il calcolo piuttosto che utilizzare la funzione di scalatura, la formula è:t = Val_PEW * 205 / 27648 - 5Si può risparmiare un'operazione calcolando direttamente il valore di 205/27648 = 0.00741464In AWL:L "TEMP" PEW286 -- TEMPERATURA ITD DTR L 0.00741464 *R L 5.0 -R T "AOUT"-T_TEMP DB1.DBD40 -- TEMPERATURA
cagliostro Inserita: 12 maggio 2010 Segnala Inserita: 12 maggio 2010 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-27648IN :=PEW286 //ingresso 0-10V == 0-27648Buona serataCagliostro
simo86 Inserita: 13 maggio 2010 Autore Segnala Inserita: 13 maggio 2010 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 -- TEMPERATURAITDDTRL 1.382500e+002/RT "AOUT"-T_TEMP DB1.DBD40 -- TEMPERATURAGRAZIECIAO
batta Inserita: 13 maggio 2010 Segnala Inserita: 13 maggio 2010 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-10V2) in S7-300 il segnale 0-10V viene letto come 0-27648Quindi 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°CQuindi, la formula corretta è quella che ti abbiamo postato, e che invece continui ad ignorare.temperatura = Val_PEW * 205 / 27648 - 5Per comodità puoi riassumerla in:temperatura = Val_PEW * 0.007414641 - 5oppure:temperatura = Val_PEW / 134.8683 - 5Sicuramente non in:temperatura = Val_PEW / 138.25Dov'è che non siamo stati sufficientemente chiari?
cagliostro Inserita: 13 maggio 2010 Segnala Inserita: 13 maggio 2010 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 rapportoL "TEMP" PEW286 -- TEMPERATURA ITD DTR L 1.382500e+002 /R T "AOUT"-T_TEMP DB1.DBD40 -- TEMPERATURAvisualizzerà 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 è.SalutiCagliostro
simo86 Inserita: 17 maggio 2010 Autore Segnala Inserita: 17 maggio 2010 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
Messaggi consigliati
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 accountAccedi
Hai già un account? Accedi qui.
Accedi ora