Discusiones sobre Productos NI

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

control de 20 equipos en red rs485 puerto serie en string

Hola os comento tengo varias dudas:

tengo una red de equipos en rs485 comunicandose por puerto serie.

El tema esta en que estoy haciendo pruebas con varios equipos para luego colocarlo,en la red  resulta que tengo que ir llamando a cada dispositivo uno a uno y yo recibo una respuesta de cada uno de ellos.

Estos equipos lo que le hago que le mando una trama por el puerto serie y espero la respuesta y es esa la que yo interpreto en mi codigo.

Esto lo he solucionado con flat secuence pero resulta que tengo un problema cuando el equipo no esta activo o no responde los valores del primer equipo se pasan al tercero y me gustaria que cuando ese equipo no este activo se paasara al siguientee y asi susecivamente.

 os dejo el codigo a ver si alguien a hecho algo de esto.

 

Descargar todos
0 kudos
Mensaje 1 de 2
4.158 Vistas

Hola, no estoy en al oficina por lo que no puedo mirar a tu código, pero te comento que probablemente no tienes puesto un valor de timeout en lectura adeguato y/u no miras al timeout, y por esto las respuestas se mezclan entre los equipos. Igualmente creo que la sequence se podría evitar puesto que los hilos de la comunicación ya ponen los vi en sucesión (write-read) sin necesidad de algo más.

 

Empieza poniendo como timeout el doble del tiempo de respuesta de tus equipos, y al salir del visa read mira al error out: si es timeout marcas el equipo como absente y reseteas el error. Además podrías añadir un visa read inmediato antes del write para limpiar la cola cuando empiezas a tratar cada equipos, así estas seguro de que no hay mensajes pendientes no leídos que pueden ser interpretados como respuestas.

 



Proud to use LW/CVI from 3.1 on.

My contributions to the Developer Community
________________________________________
If I have helped you, why not giving me a kudos?
0 kudos
Mensaje 2 de 2
4.144 Vistas