Vai al contenuto
PLC Forum


variabili in "real" per Weintek


bepin

Messaggi consigliati

ciao

premetto che non ho pratica con i numeri in "real" della Siemens, nel mio campo non ne ho bisogno;

ora però devo gestire delle temperature con analogiche 4-20mA: come posso inserire delle variabili in formato "real"

in un pannello Weintek?

ho provato con variabili in "int", "dint",..ecc e poi fare la conversione nel blocco di programma ma non mi funziona, oppure sbaglio qualcosa

qualche consiglio? 

GRAZIE mille

Link al commento
Condividi su altri siti


Supponiamo di stare usando lo EasyBuilder Pro.

Le variabili reali (o meglio, in virgola mobile) sono quelle definite come 32-bit Float (Float è infatti la definizione in inglese di floating point, virgola mobile).

Nel PLC Siemens, essendo una 32bit, dovrai definirla Real a 32bit (2 word, 4 byte).

Casomai specifica i modelli in uso (display e PLC)

Link al commento
Condividi su altri siti

grazie Ctec

sto usando Easy Builder Pro ed il PLC è un Vipa  visto da Tia Portal come una cpu S7 315

nel pannello voglio solo impostare una variabile che mi faccia da parametro di conversione

del valore analogico al valore di temperatura (solo per comodità mentre faccio le tarature)

ora sto usando questo blocco…la riga con le // è quella di partenza, quella sotto la sto usando


#t1_real:= INT_TO_REAL (#in);// converte valore ingresso in real
#mx_real := INT_TO_REAL(#mx);// converte valore ingresso in real

//  #t_out_real := (#t1_real * #mx_real) + (-10);//calcola il valore

#t_out_real := (#t1_real * 0.004340278) + (-10);//calcola il valore


#out := REAL_TO_INT(#t_out_real);//lo riconverte in intero

 

come posso inserire quel  0.004340278 (che è un valore in virgola mobile) nel pannello?

sempre grazie per eventuali consigli

Link al commento
Condividi su altri siti

Temo di non aver capito.

Quel blocco di conversione lo fai nel PLC, penso: sembra scritto in ST. E a che ti serve immettere il valore a display?

Oppure il calcolo lo fa una macro del display (non mi torna la sintassi)?

 

Se invece vuoi avere la cambiabilità del numero da display, che vada nella mx_real, lo definirai nel pannello come

image.png.23529f887da2ad6fbd4fd48407e15b34.png

 

Link al commento
Condividi su altri siti

Si, la conversione la faccio nel plc, il valore lo metto a display solo per mia comodità (e per imparare qualcosa di nuovo…) e magari lo lascio al tecnico del cliente se vuole aggiustarlo meglio, oppure poi lo cancello

La sonda con un range -10 ÷ +1050°C da in uscita dell’analogica una IW con il valore 0 ÷27648

Converto tutto in real, eseguo il calcolo – che è la formula della retta cartesiana   y=m*x+q

aggiungo il “-10” iniziale e trasformo in Int.

Grazie della pazienza, domani ci provo

ciao

 

 

Link al commento
Condividi su altri siti

18 ore fa, bepin scrisse:

Si, la conversione la faccio nel plc, il valore lo metto a display solo per mia comodità (e per imparare qualcosa di nuovo…) e magari lo lascio al tecnico del cliente se vuole aggiustarlo meglio, oppure poi lo cancello

La sonda con un range -10 ÷ +1050°C da in uscita dell’analogica una IW con il valore 0 ÷27648

Converto tutto in real, eseguo il calcolo – che è la formula della retta cartesiana   y=m*x+q

aggiungo il “-10” iniziale e trasformo in Int.

Grazie della pazienza, domani ci provo

ciao

 

 

 

Non mi pare corretto: se tu hai una sonda che ha un'escursione -10- + 1050 °C. e a questa escursione corrisponde un valore 0 27648 vuol dire che a zero sei già a -10 e quindi non devi fare nessuna aggiunta. Poi perchè in INT scusa? devi trasformare in real visto che devi macinare un pò di numeri con un pò di calcoli in cui sono coinvolte divisioni e la temperatura ottenuta è già real per essere data in pasto al HMI

 

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