From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.
We appreciate your patience as we improve our online experience.
From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.
We appreciate your patience as we improve our online experience.
el 09-12-2016 03:35 AM
Hola,
estoy preparando una aplicación con la que me comunico desde una tarjeta de NI-PXI-8432 mediante RS-232 con otro equipo.
Accedo a la tarjeta de NI-PXI-8432 mediante los VIs de VISA de lectura y escritura.
Este VI me devuelve la lectura de RS en un string, que luego lo quiero convertir a un integer (ciertas partes). Por lo que hago lo siguiente.
Para probar la comunicación de RS mando valores (desde un equipo externo al controlado por LabView) que se van aumentando en 1, y empezando por 0. Por lo que en LabView debería ir recibiendo 0, 1, 2, 3... y así sucesivamente.
Lo que me pasa en cambio es, que los primeros valores funciona correctamente hasta llegar al 9.
Creo que el string que me devuelve el VI de VISA read, está en ASCII, y por eso si veo en pantalla los valores del string son raros, pero al convertirlos a integer veo los datos correctamente. El décimo valor que recibo (debería corresponderse con el valor deseado 9) se corresponde con el símbolo del tabulador de acuerdo a la tabla ASCII, y al hacer la conversión no lo hace bien, y no convierte el valor como un 9. Interpreta el siguiente caracter que viene en el string. De acuerdo a la imagen que se adjunta, convierte el dato del segundo hilo en el primero, como si desapareciese el dato, no pudiera interpretar, y siguiera la lectura con el siguiente dato.
¿Sabe alguien a qué se puede deber esto? ¿Alguna configuración con la que se pueda subsanar este caso?
¿Se puede indicar de alguna manera, que el VI de read VISA no devuelva el dato en formato string, sino que en integer desde un principio?
Gracias.
Jon
el 09-12-2016 03:14 PM
Hola JonLer,
Haciendo una búsqueda rápida, encuentro estos documentos que quizá te puedan orientar en la aplicación que estás realizando:
Send or Receive Binary or Hexadecimal Data Using NI-VISA in LabVIEW
Writing Bits to the Serial Port Instead of Writing ASCII Strings
Un saludo!
el 09-16-2016 01:20 AM
Hola Oscar,
gracias por la info. Al final sí que parece que fuera una mala interpretación de los datos. He eliminado la parte del scan string, y directamente hago el Type cast al string que me devuelve el VISA. De esta manera interpreto correctamente el valor.
un saludo
Jon