Vai al contenuto
PLC Forum


Ingresso Analogico - Conversione di un numero in negativo


Messaggi consigliati

Inserito:

In che modo si può convertire il valore e/o parte di esso proveniente da un ingresso analogico in un valore con segnp negativo?

Mi spiego meglio:

Ho un sensore di temperatura con uscita analogica 0-5 volt e range di temperatura da -20 a +80. ( di cui da 0 a 1,8 volt per il range da -20 a 0 gradi e da 1,8 a 5 volt per il range da 0 a 80 gradi).

Ora come faccio a visualizzare e/o convertire in negativo quella parte di segnale (tensione) una volta fatta la dovuta proporzione che fa riferimento a -20 a o gradi?

Grazie


Inserita:

Se la proprzione di scalatura che farai sarà lineare, il negativo verrà da solo, dove è il problema?

Ci sono già state discussioni sulle tecniche di scalatura. Puoi cercare quelle se non sai quel poco di matematica che occorre.

Inserita:

In tutta sincerità, non ho ancora scritto una riga di programma, stavo cercando di capire come impostrare il tutto. Premetto che il PLC in questione è un S7 1200, e se ho ben capito c'è anche un'istruzione chiamata SCALE_X (Riporta in scala) che dovrebbe servire appunto per svolgere questa funzione, ma non sono certo che serva proprio a questo, domani voglio provarla. In realtà mi farebbe piacere se qualcuno potesse comunque spiegarmi cone fare la conversione (matematicamente) nel PLC anche per cultura personale.

Grazie

Inserita:

Ti posso rispondere solo per quanto riguarda la formula:

Devi leggere un range di 5V che corrisponderanno a 100 gradi (80+20). Dunque devi moltiplicare per 20.

Poi la scala non parte da zero ma da -20, dunque devi restare 20.

La formula sarà: T= 20xt - 20 dove T è la temperatura e t la tensione.

ciao

Inserita:

Scusa ma non ho capito, perchè devo motiplicare per 20?

Nel mio ingresso analogico, una volta effettuata la cnversione, ottengo un valore se in (int) che va da - 32768 a + 32767 (con segno ) o a 65536 (senza segno), mentre se è (real) va da - 2147483648 a + 2147483647 (con sengno) o a 4294967296 (senza segno) quindi questo significa nel caso la conversione sia stata fatta in un numero intero ( INT) che quando sul mio ingresso analogico ho i 10 volt, dovrei ritrovarmi un valore pari a 32767. quindi quando ho i 5 volt (uscita massima del mio sensore) che corrispondono a 60 gradi C (nel precedente mio posto ho dato un'informazione errata dicendo che il valore massimo rilevato dal sensore fossero 80 gradi) dovrei quindi avere un valore pari a 16xxx.

Credo che mi sfugga qualcosa.

Ciao

Inserita:

Io ti ho messo una formula generica per fare un cambio di scala. Come ragiona il Siemens non lo so perché non lo conosco.

ciao

Inserita:

Molto probabilmente quando inserisci nel videoterminale il campo numerico per visualizzare la temperatura, puoi anche di impostare la scala di conversione dal numero binario che hai in una word e che corrisponde al segnale 0-5 volt, al numero da -20 a +80°C che vuoi visualizzare nel campo nuemrico.

Inserita: (modificato)

ci provo:

Prendi 32000 e non 32767 che è il valore max che può leggere l'ingresso (10volt=32000), dividila per 200 (80+20X2) perchè tu usi massimo 5 volt e il valore max per il plc è 10v = 32000/200=160 e moltiplicalo per 20=3200 che è il valore negativo che vuoi visualizzare quando l'ingresso è 0 volt quindi prendi la aiw che ti interessa, gli sottrai 3200 e la moltiplichi per 160.

prova del 9: 16000 è il valore in ingresso quando hai 5 volt quindi 80 gradi?=16000-3200/160=80...taaac!

Altra prova a 0 volt quindi -20gradi: 0-3200/160=-20 taaaac!

Al risultato applica un trunc così non vedi più le virgole.

Per fare i calcoli puoi usare gli accumulatori (AC0, AC1, AC2, non so quanti ce ne sono ma mella guida online c'è scritto) esempio: SUB aiw0 con 3200 risultato in ac0, DIV ac0 con 160 risultato ac1, trunc Ac1 in VW0.

VW0 sarà la tua lettura. Se vorrai disualizzare anche i decimali invece di trovare il rapporto 32000/200=160 fai 32000/20=16 e avrai il risultato con una cifra (centinaia) in più poi sul pannello se lo hai, gli imposti la virgola a un decimale. Io di solito faccio un po' di confusione con numeri reali. Non mi ricordo mai se gli interi possono essere negativi o servono i reali o se si usano le VW o le VD per i reali. Sono il solito casinista che però risolvo quando sono sul programma. Ho poca memoria.. :rolleyes:

Io faccio così per scalare il segnale dei trasduttori di pressione 4-20mA.

Provaci...Adès vo a dormèr (adesso vado a dormire).

L'ora di PLC Forum è indietro di 2 ore... :lol:

Modificato: da sondino
Inserita: (modificato)

Un grazie a tutti coloro che mi hanno risposto, in particolar modo a Batta, col quale ho avuto uno scambio di MP.

Ho compreso dove era il mio errore. L'ingresso analogico del logo non va da -32768 a + 32767 come credevo ma va da

-27647 a + 27648.

Sul soft Step 7 10.5 basic come detto nel mio precedente post, vi è un'istruzione apposita per portare in scala un segnale analogico dopo averlo (normalizzato).

L'ora di PLC Forum è indietro di 2 ore...

Ti correggo 1 ora soltanto

Ciao

Modificato: da baltimora
Inserita:
Ti correggo 1 ora soltanto

Ciao

Strano, avevo risposto a un quarto a mezzanotte e l'orario della risposta è 21:46, mah!

Inserita: (modificato)
L'ingresso analogico del logo

Intendevo dire dell'S7 1200

Perdonate l'errore.

Modificato: da baltimora

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