Vai al contenuto
PLC Forum


Conversione 4-20 Ma In Gradi C


Messaggi consigliati

Inserito:

Buona sera a tutti,

sto tentando di effettuare una conversione sul mio Siemens 313c per permettere una lettura di una temperatura tramite ingresso 4-20mA (l'intento è quello di accontentare un cliente che vuole sbarazzarsi di un vecchio Ascon XA).

Ho un trasduttore con collegato all'ingresso una normalissima PT100 che mi fornisce un'uscita di 4 mA (per 0 gradi) e di 20 mA (per 200 gradi). Il mio quesito è:

se collego l'uscita del mio trasduttore all'ingresso analogico per corrente del mio PLC, come posso impostare un programma per una lettura in gradi del segnale 4-20 mA, rispettando sempre la condizione che 4 mA = 0° e 20 mA = 200°? Non credo di cavarmela con una semplice conversione dell'ingresso in decimale... Qualcuno ha idea?

Grazie mille per l'ascolto! Buona serata!


Inserita:

Il segnale analogico da 0 a 20mA è trasformato in un numero binario scritto nella word associata all'ingresso analogico (nell'esempio allegato il numero va da 0 a 1741).

Devi scoprire come si chiama la word, in numero di bit utilizzati e il numero binario corrispondente a 20mA. Siccome il numero scritto nella word tutto spostato a sinistra (pusizioni più significative nella word) dovrai farlo scorrere verso destra di un determinato numero di posizioni e scritto in un altra word. Nell'esempio i 4 bit più a destra non sono utilizzati quindi il contenuto della word è fatto scorrere a destra di 4 posizioni utilizzando l'istruzione "SHR_W".

A queesto punto il numero è utilizzabile e non devi fare altro che una divisione tra il numero corrispondente a 20 mA e una costante in modo che il risultato sia 200 (graqdi centigradi). Questa divisione (cambiamento di scala) è meglio farla fare al videoterminale.

Ciao

Inserita:

Se configurato correttamente, sul canale analogico leggerai 0 con segnale 0 mA e 27648 (6C00 in esadecimale) con segnale 20 mA.

Ti basta un semplice calcolo per convertire 27648 in 200 °C.

Oppure, puoi utilizzare la funzione FC105 SCALE che trovi nelle librerie Siemens in Standard Library --> TI-S7 Converting Blocks --> Blocks.

Inserita:

c'erano 2 figure identiche. Ho rimesso il file corretto. Ciao

post-83864-0-06500900-1413446177_thumb.j

  • 2 weeks later...
Inserita:

Io ho utilizzato l'FC105 per convertire una misura in ingresso all'analogica in gradi e funziona benissimo!

CALL "Read Analog Value 464-2" // FC105

IN :=PEW320

HI_LIM :=2.000000e+002 // 200°

LO_LIM :=0.000000e+000 //0°

BIPOLAR:=FALSE

RET_VAL:=MW100

OUT :=MD120

è possibile comprimere il valore in uscita " double word - MD120" in una " word MW120 " ed eventualmente indurire la misura togliendo tutto ciò che vi è dopo la virgola?

Inserita:

Ho cercato RND sul manuale ma parla solo di arrotondamenti al numero intero.. però per far diventare una Md in MW c'è un modo particolare?

Inserita:

un doppia parola prima la devi convertire in un numero intero poi la trasferisci in una mw

Inserita:

L'istruzione RND effettua la conversione da REAL a DINT con arrotondamento (a differenza di TRUNC, che tronca la parte decimale).

Il valore da convertire deve, ovviamente, essere compreso nei limiti di una DINT, ovvero tra -2147483648 e 2147483647.

Per scrivere una DINT in una INT non c'è bisogno di alcuna istruzione di conversione, basta che il valore sia compreso tra -32768 e +32767.

Quindi, se il valore in formato REAL è compreso tra -32768.0 e +32767.0, si può scrivere:

L MiaVarReal

RND

T MiaVarInt

Inserita:

Salve a tutti,

sono tornato a lavorare sulla conversione da segnale in ingresso in 4-20 mA a lettura in gradi. Ho cercato di svolgere tutto facendo quattro conti, calcolando il rapporto tra il valore massimo di lettura in ingresso per 20 mA (27648) e la scala massima in gradi del mio convertitore di Pt100 (cioè 200). La costante rilevata l'ho utilizzata come denominatore per ricavare una lettura in gradi dall'ingresso dove è montata l'uscita del convertitore in mA.

In pratica:

      L     27648
      L     200
      /D    
      T     MD    90

      L     PEW  128
      L     MD    90
      /D    
      T     MD    20
....il tutto funziona e riesco a leggere i gradi rilevati dalla sonda....PERO'! A mio malgrado non riesco ad ottenere una lettura dei gradi su MD20 che abbia almeno un numero decimale dopo la virgola....Il risultato che ho ottenuto per ora, è una lettura non precisa per lavorarci. Qualcuno allora sa come posso ottenere il numero decimale dopo la virgola su MD20, in modo tale da poter ricavare anche le differenze di decimo di grado sulla temperatura? Grazie mille per l'ascolto! PS: con FC105 "Read analog value 464-2", ho ottenuto in uscita solamente dei valori che sembrano (da quello che leggo nei test in rappresentanza decimale) i valori in Ohm che assume la termoresistenza.... Non è possibile ottenerne uno in mA e/o direttamente in gradi? Di seguito il mio programma:
      CALL  "Read Analog Value 464-2"
       IN     :=PEW128
       HI_LIM :=2.000000e+002
       LO_LIM :=0.000000e+000
       BIPOLAR:=TRUE
       RET_VAL:=MW0
       OUT    :=MD40

Grazie mille!!

Inserita:

Se vuoi vedere la virgola devi convertire le variabili in REAL

CIAo

Beppe

Inserita:

Se vuoi ottenere il valore in decimi di grado, devi fare i calcoli per la conversione usando i decimi di grado.

Nei tuoi calcoli utilizzi invece i gradi.

Inoltre c'è un modo più breve per effettuare il calcolo:

L PEW 128 //Carica valore ingresso analogico

ITD //Converti in DINT

L L#2000 //Carica il valore massimo in decimi di grado in formato DINT

*D //Moltiplica

L L#27648 //Carica valore massimo ingresso analogico

/D //Dividi

T MD20 //Scrivi risultato in decimi di grado (con centesimo di grado troncato)

Se invece vuoi il risultato in virgola mobile:

L PEW 128

ITD

DTR

L 0.007233796 // (200/27648)

*R

T MD20

La FC105 invece non ti funziona perché hai scritto "BIPOLAR = TRUE", ed invece devi impostare FALSE.

Inserita:

Grazie mille a tutti, non ho avuto modo di rimettermi sul progetto, ma stasera provo il tutto e vi faccio sapere!

Grazie!

Inserita:

La prova è riuscita! Ho ottenuto una lettura ancora più precisa con la virgola mobile e, quindi, una regolazione PID molto più efficente!

Grazie mille a tutti!

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