Discusiones sobre Productos NI

cancelar
Mostrando los resultados de 
Buscar en lugar de 
Quiere decir: 

Convertir U16 a Flotante

¡Resuelto!
Ir a solución

Que tal a todos, una consulta, estoy realizando una práctica con PAC3200 de Siemens que por medio de LabVIEW  y el protocolo Modbus pueda enviar y visualizar los datos que envia el dispositivo (entrega voltaje alterno), pero el PAC envia datos en tipo Single de 32 y LabVIEW lee U16, es decir, separa un dato Single de 32 en dos de U16, necesito volver a unir esos datos para convertirlo en un Single y visualizar el voltaje real que envia el PAC, alguien me puede apoyar?

0 kudos
Mensaje 1 de 10
5.557 Vistas

 

Hola:

 

Para unir dos números de 16 bits en uno de 32 bits tienes la función Join Numbers. Te pongo figura para mayor aclaración.

 

Saludos... moisan

Join Numbers.png

_________________________________________
https://aulamoisan.uva.es

Mensaje 2 de 10
5.556 Vistas

Que tal, moisan

 

Muchas gracias por la información, eso ya lo había intentado, te anexo el VI que estoy usando, conecto por Modbus ethernet el PAC3200 y leo los datos que envia, se supone que debería visualizar 3 lecturas de 127 volts.

0 kudos
Mensaje 3 de 10
5.553 Vistas
Hola Fer_Ruiz: Más que 127 voltios, dado que ModBUS da números enteros, normalmente estos equipos proporcionan la tensión multiplicada por 10 o por 100 para poder considerar decimales. Si te funciona la comunicación ModBUS, ¿qué valores te proporciona? Pon los 12 registros para ver si da el valor de 127 voltios. Saludos... Moisés
_________________________________________
https://aulamoisan.uva.es

0 kudos
Mensaje 4 de 10
5.548 Vistas

Que tal moisan.

 

Te adjunto capturas del VI, el panel frontal y diagrama de bloques, en el panel frontal podras observar los elementos Hi y Low que envio al Join Number, el elemento Low es fijo y el Hi variable, y el resultado de estos, pero al intercambiar posiciones el valor cambia a uno mayor, en lugar de ser 1.12..... E+9 cambia a 3.43...... E+9.

 

Espero me haberme explicado claramente, si no aquí estamos en contacto.

 

Muchas Gracias

Descargar todos
0 kudos
Mensaje 5 de 10
5.537 Vistas

 

Hola Fer_Ruiz:

 

Observo que los valores que salen son demasiado grandes. La respuesta que te da, ¿son voltios o milivoltios?

 

Por otra parte, cuando extraes los valores del array debes tener en cuenta que el primer valor es el 0 y el segundo el 1 (no el 0 y el 1 como tienes en tu programa).

 

Saludos... moisan

_________________________________________
https://aulamoisan.uva.es

0 kudos
Mensaje 6 de 10
5.521 Vistas

En las imágenes que posteaste anteriormente, ¿qué valor te muestra el PAC3200?

David P.
National Instruments
Applications Engineer
www.ni.com/soporte
0 kudos
Mensaje 7 de 10
5.513 Vistas

Hola Fer_Ruiz:

 

Corrijo el mensaje anterior.

 

Observo que los valores que salen son demasiado grandes. La respuesta que te da, ¿son voltios o milivoltios?

 

Por otra parte, cuando extraes los valores del array debes tener en cuenta que el primer valor es el 0 y el segundo el 1 (no el 1 y el 2 como tienes en tu programa).

 

Saludos... moisan

_________________________________________
https://aulamoisan.uva.es

0 kudos
Mensaje 8 de 10
5.501 Vistas
Solución
Aceptado por Fer_Ruiz

Que tal moisan

 

Ya logramos resolver el inconveniente usamos la funcion "Type Cast" la cual convierte cualquier tipo de dato en otro que nosotros deseemos, en nuestro caso teniamo una entrada U32, eso va a la entrada de la función, en el tipo creamos una constante del tipo que deseamos que sea el valor de salida, para nosotros un SGL y el indicador igual del tipo de dato que queremos la salida, y listo con eso obtuvimos ya la correcta visualizacion de los 124V

0 kudos
Mensaje 9 de 10
5.491 Vistas
Enhorabuena y gracias por compartir la solución.

Marca, si quieres, tu mensaje como solución para ayudar a otros usuarios
Saludos... Moisan
_________________________________________
https://aulamoisan.uva.es

0 kudos
Mensaje 10 de 10
5.481 Vistas