Vai al contenuto
PLC Forum


. come leggere valori temperatura su plc


iz0bav

Messaggi consigliati

Salve ho un plc omron cs1h con modulo ad003 e sensore di temperatura della crouzet che ha una lettura da - 10 a +40 gradi e tensione in uscita 0 +10v
Vorrei visualizzare la temperatura su un monitor ns5 ma non riesco a gestire il tutto. 
Se gentilmente potete darmi qualche informazione su come effettuare la logica ve ne sarei grato. 
Premetto che di plc non ne so tantissimo, e lo uso solo per gestire in modo semplice la gestione della domotica di casa e dell'antifurto. 
Ho provato ad usare la funzione scl ma senza risultati 

Di seguito quello che ho fatto 

Allora l'ingresso della sonda sta sul cio 2011 del modulo ad003 
Muovo con la funzione mov l'ingresso su una dm2000
Poi la funzione scl la configuro nel seguente modo,  dm2000, dm2010 e il risultato dm2020

Premetto che i valori nella dm2010 sono  0000 +1 0000 +2 50(lettura massima dei grandi del modulo temperatura) +3 4000 (lettura massima del modulo temperatura in tensione pari a 10v)
Nella dm2020 ho la lettura in gradi che poi visualizzo sul monitor ns5
Ma la lettura non mi varia in modo costante ma solo a salti, ossia se leggo 22 gradi e soffio nel sensore per aumentare la temperatura mi salta a 35 gradi 
Dove sbaglio?
Dimenticato di dire che la sonda se la misuro con un voltmetro aumenta in modo graduale come anche il valore che leggo in ingresso su cio2011 
Grazie a presto 

Link al commento
Condividi su altri siti


L'errore dovrebbe stare nel tipo dei dati. La SCL vuole valori UINT per i valori di ingresso e di scalatura X, mentre vuole BCD per le scalature Y e per il risultato.

Nei tuoi parametri, il 50 deve essere espresso in BCD (quindi #0050) e non in decimale (&50), altrimenti il valore che scivi effettivamente è #0032 (50 in decimale espresso in esadecimale).

Quindi, te scaleresti l'ingresso 0-4000 (lettura convertita) in 0-50°. Però te prima dici che devi scalare tra -10° e 40°. Allora la SCL non va bene e devi usare la SCL2 o la APR (meglio la seconda se conti di usare tutti interi e non BCD)

Link al commento
Condividi su altri siti

Niente da fare non riesco a far funzionare la lettura, in uscita del scl o scl2 o apr non ho valori graduali ma va a salti del tipo ; se ho in uscita 16 gradi e soffio dentro al sensore invece di salire in modo proporzionale mi sale a step di 3 e passa gradi, tipo 16,19,22,26, 35

Gentilmente potete inviarmi sulla mail un esempio compilato 

Grazieeeee 

L'ingresso del modulo analogico ad003 è il cio2011

Link al commento
Condividi su altri siti

Ti metto qui (aiutiamo tutti, così) la parte di uso con APR, funzionante perfettamente su simulatore con tutti i dati in INT (non usare BCD):

 

La lettura dal modulo è supposta da 0 a 4000, limite inferiore temperatura (con ingresso a 0V) -10°C, limite superiore temperatura (con ingresso 10V) +40°C

Te lo scrivo in pseudoistruzioni utilizzando gli indirizzi che hai specificato te

Tabella dati per APR

MOV #0801 D2010  ; useremo tabella a 2 punti con dati con segno (INT)

MOV +0 D2011         ; valore di ingresso X0

MOV -10 D2012        ; valore in ° Y0

MOV +4000 D2013   ; valore in ingresso X1

MOV +40 D2014       ; valore in° Y1

 

A questo punto basta fare così:

MOV 2011 D2000               ; metti in D2000 la lettura 0-4000

APR D2010 D2000 D2020  ; esegui la conversione e metti il risultato in D2020

Link al commento
Condividi su altri siti

Innanzitutto grazie per la pazienza ,allora ho fatto come da te suggerito ma in uscita non ho nulla.

Sicuramente a causa delle mie poche basi sulla programmazione non riesco a trovare il problema 

ti allego screenshot delle istruzioni che mi hai cortesemente illustrato.

 

Ashampoo_Snap_2016.03.17_14h36m00s_003_.jpg

Link al commento
Condividi su altri siti

Questo è l'esempio di cui sopra, fatto lavorare in simulazione.

Come vedi, con il valore da me immesso di 2000 in CIO2011 (metà range), mi dà una conversione corretta di 15°C

 

Cattura.PNG

Link al commento
Condividi su altri siti

Leva la MOV che da CIO2011 scrive in D2000, e mettici te un valore in D2000 (collegato col PLC).

Se il valore in uscita non cambia, controlla che i dati nelle varie D2000-D2014 non vengano sovrascritte da qualcosa d'altro. Deve andare.

Link al commento
Condividi su altri siti

Il mistero si infittisce, ho tolto la mov e inserito i valori manualmente ma niente da fare non ho valori in uscita, ho anche cambiato tutte le dm usando da 3000 in poi e stesso problema, in simulazione funziona. 

La ad003 e il sensore di temperatura  funzionano perfettamente e in cio2011 vedo le variazioni. 

Domani resetto tutte le memorie e il plc e vedo di capire dove sta il problema. 

Link al commento
Condividi su altri siti

Perfetto ho appena risolto  il problema 

Non so il motivo ma mettendo la funzione  apr all'inizio del progetto del mio plc che comprende una trentina di sezioni magicamente mi da i valori in uscita e risponde perfettamente al variare della temperatura. 

Se la funzione apr la rimetto alla fine del progetto quindi prima del end non va più. 

Ctec che dire grazie per la pazienza e complimenti per la pronta disponibilità 

Link al commento
Condividi su altri siti

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...