el 03-05-2010 09:44 AM
Hola,
Adjunto un JPG donde se ve un control cableado a un case, el case acepta enteros y el control (en este caso) está en formato real. Al cablear un número en decimales al case se realiza una coerción y se convierte en un entero (el qual uso en el case ...... si el valor es este entero en concreto haz esto ... otro valor haz esta otra cosa.
Según he leído esto es poco Optimizado (lo ideal es evitar la coerción), por ejemplo cambio el formato del control antes de cablearlo al caso pero...... esto parece que consume mas recursos y el objetivo es optimizarlos.
Algúno tiene una solución mejor que utilize menos recursos de los utilizados por labVIEW en la coerción?
muchas gracias !
el 03-06-2010 03:12 PM
Oriol.bofill
La solución que le das a la coerción es buena, sin embargo puedes probar cambiar las propiedades de tu control numerico y cambiar el formato de doble precisión (DBL) a un formato de entero de 8 bits con signo (I8). Espero esto te sea de ayuda.
Saludos Cordiales.
el 03-08-2010 02:20 AM
Hola Oriol,
como bien dices, la coerción no es óptima porque consume recursos de memoria. Esto es, cuando un valor coerce, se cree un buffer de memoria para efectuar tal conversión. En este caso tenemos dos alternativas a la coerción:
1.- Si el valor nos viene impuesto como salida de un subVI o de otro proceso o hilo de LabVIEW, hay que utilizar los bloques de conversión de datos tal y como lo has hecho tú.
2.- Si ese valor lo definimos nosotros podemos controlar su representación. Selecciona con el botón derecho el control y >> Representation. Ajusta el tipo de dato al valor que necesitas. Observa la captura adjunta.
Espero que esta información te sea de utilidad.
Un saludo.
Jesus