escala valor analogico

  • 2 Respuestas
  • 823 Vistas

javierc

  • Novato
  • *
  • Mensajes: 3
escala valor analogico
« : marzo 04, 2015, 18:02:29 pm »
tengo problema para escalar un valor  ... en el lcd  me muestra  cualquier valor como resultado
de la operacion matematica  
la idea seria

entrada 1    

  2v   ____   -1 bar      
10v   ____  5 bar

formato de salida
0,000

entrada 2    

  2v   ____   0  temp      
10 v  ____  150 temp

formato de salida
000,0

Código: [Seleccionar]
new float:presionCAMARA
new float:temperaturaCAMARA
new float:presionv1
new float:temperaturav2
PlcMain()
{
LcdClear()
 
for(;;)
   { prestemp()  
Vin12FilterOn(200, 2000)  
   prestemp()
   //LcdPrintf(0, 0, "I1 %02.2f %01.3f", presionv1, presionCAMARA )
    LcdPrintf(0, 0, "I2 %f", temperaturav2)
    LcdPrintf(0, 1, "t2 %f",Float:temperaturaCAMARA)

// Conmutar led D1 "DEBUG".
     LedToggle()
  DelayMS(500)
 }

   // Retorno..
   return 0
}
prestemp()
{

    presionv1 = Float: Vin1ReadVolt()
temperaturav2 = Float: Vin2ReadVolt()
//0,75 -2,5
//18,75 -37,5
    presionCAMARA = Float:(presionv1*0.75)-2.5
//temperaturaCAMARA = Float: (temperaturav2*18.75)-37.5
temperaturaCAMARA = Float: (temperaturav2*0.15)

//presion = -0.80
//temperaturaCAMARA = -135.8
}
« Última Modificación: marzo 04, 2015, 18:03:43 pm por Soporte »

Soporte

  • Global Moderator
  • Experto
  • *****
  • Mensajes: 1725
  • Soporte Técnico
Re: escala valor analogico
« Respuesta #1 : marzo 04, 2015, 18:12:17 pm »
Buenas tardes Javier,

Aparentemente declaras mal las variables float al comienzo, debe estar en mayúsculas la "F" de "Float" así:

new Float: presionCAMARA
new Float: temperaturaCAMARA
new Float: presionv1
new Float: temperaturav2


Tambien los cast "Float:" no son necesarios cuando operas puramente variables float, por ejemplo:

temperaturaCAMARA = Float: (temperaturav2*0.15)

Cambialo a:

temperaturaCAMARA = temperaturav2*0.15

Lo mismo que:

LcdPrintf(0, 1, "t2 %f",Float:temperaturaCAMARA)

Usa solamente:

LcdPrintf(0, 1, "t2 %f", temperaturaCAMARA)

Ya que en este caso LcdPrintf() admite punto flotantes.

Te adjunto tu programa en un proyecto StxLadder en el archivo Escalar.zip adjunto al mensaje (abajo).

Abrilo y proba las correcciones que hicimos en ese código con la placa.

Avísanos si eso soluciono tu problema (ya que no lo probamos en hardware a tu programa).

Quedamos a disposición.



« Última Modificación: marzo 04, 2015, 19:32:11 pm por Soporte »
SOPORTE TÉCNICO

Slicetex Electronics
www.slicetex.com

javierc

  • Novato
  • *
  • Mensajes: 3
Re: escala valor analogico
« Respuesta #2 : marzo 04, 2015, 19:30:34 pm »
mil Gracias por la pronta respuesta
no lo he probado aun pero creo que  funcionara .. es probable que sea el tema de la mayúsculas
lo otro lo agregue después para probar  ..  lo veo esta noche en el equipo y te cuento..
saludos