From 04:00 PM CDT – 08:00 PM CDT (09:00 PM UTC – 01:00 AM UTC) Tuesday, April 16, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.

LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

comunicación rs485 con labview

Hola a todos. Estoy intentado comunicarme desde labview con un analizador de red. El analizador se comunica mediante el RS-485 por lo que estoy utilizando un conversor de RS-485 a 232 (Magic 485F9 de AMPLICON) para conectarlo al PC. He creado un programa donde intento hacer una lectura de una serie de parámetros pero no consigo obtener respuesta. Tal vez no este introduciendo bien la trama de escritura al analizador (quiero enviar el valor HEX 0A 04 00 00 00 0A 71 76 que es un ejemplo que viene en el datasheet del analizador) y por eso no responde. Les adjunto los datasheets del analizador de red, del conversor RS-485 y el programa del labview.

 

Espero me puedan ayudar, muchas gracias,

 

Oscar

0 Kudos
Message 1 of 7
(4,641 Views)

Hola Oscar,

Yo estoy usando un traductor (translate.google.com) para convertir del Inglés al Españolpor lo que me perdone si hay algún error gramatical. 

¿Ha intentado hacer una primera "Loopback Test" usando HyperTerminal 

0 Kudos
Message 2 of 7
(4,622 Views)

Hola goodnaysayer,

 

soy nuevo en labview y no se que es un Loopback Test. Creo que el error está en que no introduzco bién la pregunta al dispositivo. Los primeros bytes que le debo mandar son "0A 04 00 00 00 0A" y no se pueden convertir en ASCII. En cambio, los siguientes bytes "71 76" si que tienen conversión a ASCII y si que se envian. Espero que me puedas ayudar.

 

Muchas grácias.

0 Kudos
Message 3 of 7
(4,518 Views)

Hola Oscar:

Si quieres probar las comunicaciones serie lo puedes hacer con el siguiente programa fuente que puedes descargar en

http://www.aulamoisan.com/fuentes-labview/ModBUSSerialLabVIEW.zip

El programa que te menciono funciona con ModBUS RTU.

Otra cosa. Tienes que cerciorarte de que el analizador lo tienes configurado con el número 10, segun el ejemplo que planteas, porque por defecto el número de periférico es 1.

 

Saludos... Moises San Martin

_________________________________________
https://aulamoisan.uva.es

0 Kudos
Message 4 of 7
(4,511 Views)

Hola Moises,

 

Primero que nada muchas gracias por el VI que me has facilitado, me va a ayudar mucho en mi proyecto. Respecto al número de periférico, el que tenia configurado era el 10 así que por eso no era el problema.

He estado mirando el programa para poder entenderlo y debo decir que menos mal que me lo prestaste porque me parece bastante complicado. Hoy probé de comunicarme con el analalizador de red y me sale el mismo mensaje de error. Te adjunto dos imagenes, una del error y otra dónde se produce (VISA:  (Hex 0xBFFF0015) Timeout expired before operation completed.). ¿Puede ser que el conversor no funcione correctamente?

Otra duda que tengo es ¿por qué utilizas un retardo tan grande (5 segundos)? Te lo digo porque lo interesante de estas comunicaciones es que se hagan cuanto más rápidas mejor.

Por último, me he dado cuenta que nosotros nos comunicamos por el puerto COM1 pero he puesto un "probe" en la entrada del módulo donde da error y la dirección del puerto es "ASRL1::INSTR", ¿esta es la dirección que utilizan los módulos VISA?

 

Siento las molestias, y de nuevo muchas gracias.

 

Un salduo, Oscar.

Download All
0 Kudos
Message 5 of 7
(4,495 Views)

Hola Oscar:

 

Segun la figura adjunta veo que no has puesto bien el número de periférico (10), lo tienes que poner en Slave, no en Nº de puntos.

 

Otra cosa, el programa es simplemente de prueba para experimentar las comunicaciones. En los programas con poner retardo de 1segundo entre dos comunicaciones es suficiente. Los 5 segundos no son de retardo, sino de tiempo máximo. Si funciona bien, la lectura la hace en decimas de segundo.

 

Antes de ver si es el conversor el que no funciona bien, prueba otras opciones. ASRL1::INSTR es el COM1 si no me equivoco. También puedes modificar el programa para poder poner ASRL1::INSTR. En las versiones actuales de LabVIEW si utilizas un control VISA ya te indica los puertos disponibles.

 

Que tengas suerte... Moisés

_________________________________________
https://aulamoisan.uva.es

Message 6 of 7
(4,481 Views)

Hola de nuevo Moisés,

 

El número de periférico lo he cambiado tanto al analizador como en el programa (pero gracias por la observación). El 10 que he puesto en "No. of points" son el número de registros que quiero leer a partir de la dirección base 0 (protocol start address), es decir, desde la dirección 00 a la 09.

 

Mi versión de Labview es la 7.1, así que me tendré que apañar con la que tengo aunque me hubiese gustado tener alguna más actual. Mañana probaré de poner la dirección ASRL1::INSTR en lugar de COM1 para ver si sigue el error o no. En cuanto tenga la solución ya te comentaré.

 

Muchas gracias por tus respuestas.

 

Saludos, Oscar.

0 Kudos
Message 7 of 7
(4,464 Views)