Vai al contenuto
PLC Forum


ingresso analogico


Christian Bortotto

Messaggi consigliati

Christian Bortotto

Salve

Ho preso una cpu1214 e una scheda AnalogInput e una AnalogOutput. Praticamente ho un pressostato che lavora in 4..20mA e devo comandare una valvola che ha come entrata 0..10V.

Come posso fare per comandare anche a step la valvola in base all' entrata?

Es.:

PRESSOSTATO   VALVOLA

4mA                     10V

5mA                     12V

6mA                     14V

7mA                     16V

ecc ecc

Link al commento
Condividi su altri siti


Ciao Christian,una domanda,dove trovi quei valori superiori ai 10V in uscita visto che la massima tensione del modulo analogico può essere,appunto,10V?

Se ti basta comandare la valvola linearmente puoi copiare l' AIW.... nell' AQW...

Link al commento
Condividi su altri siti

Se il pressostato lavora da 4 a 20ma è la valvola da 0 a 10v, come fa la valvola ad essere a 10v con pressostato a 4ma? Dovrebbe essere 0v a 4 ma è 10v a 20mA. Ciao

Link al commento
Condividi su altri siti

Grazie Blackice era da questa mattina che mi stavo incasinando per capire come fare un out analogica inversamente proporzionale all'ingresso,

ed ecco la risposta

Link al commento
Condividi su altri siti

Christian Bortotto

Grazie della spiegazione , ma siccome non ho molta dimestichezza con il ladder secondo voi per far questa sottrazione o una conversione inversamente proporzionale come dovrei muovermi?

o forse è meglio che usi l'SCL  

if ingresso = 0

then uscita = 10

end if

 

if ingresso = 1

then uscita = 9

end if

ecc ecc..

Link al commento
Condividi su altri siti

Quote

if ingresso = 0

then uscita = 10

end if

 

if ingresso = 1

then uscita = 9

end if

ecc ecc..

 

Quando tu leggi un segnale analogico non puoi pretendere di di leggere un valore perfettamente stabile e quindi una soluzione come quella da te prospettata oltre a limitare molto il campo di azione di una eventuale regolazione creerebbe una bella indeterminazione (a meno che tu non scriva un numero di if then tanti quanti sono i valori di risoluzione del campo analogico :blink:.)

In ladder, deve eseguire l'istruzione SUB (se non sbaglio) in maniera incondizionata (cioè ogni ciclo macchina) tra il valore che ti è stato suggerito e il valore analogico. Poi con un MOVE lo trasferisci all'uscita... 

Link al commento
Condividi su altri siti

Prima di pensare al linguaggio da utilizzare dovresti leggere i manuali e capire come vengono elaborati i segnali analogici.

Leggere un segnale 0..10V non significa leggere valori da 0 a 10.

Lo stesso vale per segnali in corrente: se hai un segnale di 12 mA dal canale analogico mica leggerai 12.

In particolare, da un ingresso analogico 0..10V di un S7-1200 leggerai un valore da 0 a 27648 (da 0Hex a 6C00Hex).
Lo stesso valore vale per un segnale 4..20ma (4 ma --> 0; 20 mA --> 27648).

Uguale ragionamento per i segnali in uscita: se vuoi impostare a 5V un'uscita analogica 0..10V dovrai scrivere nel canale 13824 (la metà di 27648).

Nel tuo caso, anche se dubito molto che questa operazione possa assolvere la funzione di regolazione della valvola, ti basta fare: OUT := 27648 - IN;

Però, ripeto: sono quasi sicuro che questo non risolverà minimamente il tuo problema di regolazione.

Link al commento
Condividi su altri siti

Quote

Come posso fare per comandare anche a step la valvola in base all' entrata?

 

Se la domanda è questa dubito che voglia cercare una "regolazione"...almeno mi par di capire.....

Link al commento
Condividi su altri siti

Christian Bortotto

certo Batta lo so che non si leggono come da mio esempio , ma appunto era un esempio. Volevo sapere quele istruzioni usare con il 1200 in ladder.

Grazie lucky67

Link al commento
Condividi su altri siti

l'if equivale a un blocco di confronto  ( operazioni di confronto in TIA )

 

Prendi un blocco di uguaglianza , sopra ci metti 1, sotto la tua variabile eventualmente approssimata vedi te.

 

Se invece vuoi tenere un range da 0 a 1 ... da 1 a 2 ... da 2 a 3 ... fai un confronto >= partendo dal numero più basso  0>=     1>= ... e via cosi, tanto vengono letti in sequenza e ti rimane solo il valore corretto in uscita a fine ciclo.

Un po' stringato come risposta lo so, + più veloce farlo che dirlo :D

 

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