Discusiones sobre Productos NI

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

sincronizar datos enviados por serial

Hola a todos!
Me encuentro realizando un proyecto en el cual tengo una trama de datos enviada a través de un puerto serial, hasta el momento conseguí dividir la trama pero se presenta el siguiente problema:

Al enviar una trama fija para testear, en este caso ABC, sin embargo ocurre que aunque  inicialmente es así,  posteriormente se presentan desajustes. Arroja resultados como CBA, BCA…..

Que puedo hacer para solucionar esto?

Requiero ayuda urgente!!. Gracias

0 kudos
Mensaje 1 de 7
4.408 Vistas

Buen día adglz!

¿La división de la trama la realizas en labview? Si es así para que nos adjuntes una imagen y quizas solucionar el problema por ahi. 

Si no, adjuntar una imagen de tu VI o el VI para solucionar el problema.

 

Saludos.

0 kudos
Mensaje 2 de 7
4.352 Vistas

Hola adglz!

¿Cómo estas enviando los datos? ¿Que hardware estas usando, como es el codigo que utilizas, a que velocidad necesitas enviar datos?

 

Lo primero que se me viene a la mente es que de alguna manera estas generando datos mas rapido que como los envias y si no se estan encolando en un FIFO podria ser que al enviar los datos tome el valor generado y se salte algunos.

Con la informacion que tienes no se me ocurre mucho mas, pero mientras mas datos podas proveer mejor.

0 kudos
Mensaje 3 de 7
4.351 Vistas

gracias

si la separacion la realizo mediante labview, envio una secuencia de caracteres por medio de un microcontrolador por el puerto serial , colocando identifiacores en la trama, como una P para representar el inicio y una T para el final, como envia cadenas distinas a las que envio, identifico esos caracteres, pero siento que se pierde mucho tiempo.

 

Adjunto el archivo VI

0 kudos
Mensaje 4 de 7
4.343 Vistas

Hola adglz!

Revisando tu VI no vería ningún problema con que fallara a la hora de leer los datos. Pero si tengo algunas recomendaciones para ver si con eso funciona.

- La parte de la configuración del puerto serial por VISA te recomendaría la realizarás en la parte exterior del ciclo while. Porque esta configuración solo se realiza una sola vez, no es necesaria hacerla cada vez que quieras leer una trama nueva.

- Evita el uso de las variables locales, utiliza la misma salida del ciclo for (array de strings) y conéctala al index array. 

- Los case structure te almancenan más de dos casos. Puedes colocar los casos de todas tus variables en uno solo. Entonces, utilizas un ciclo while o for para extraer los valores del array. 

- Por último, puedes guardar los valores de tus trues o falses para posteriormente utilizarlo en tu INT. CERRADO. Utiliza el compound arithmetic function para realizar AND de más de dos inputs. (Click derecho, change mode. Para cambiar la lógica booleana o aritmetica).

- Trata de utilizar al mínimo los flat sequence. Por ejemplo, el que tienes más al interior es innecesario si cableas el array a un ciclo for o while. Ya que este cable lo hace secuencial.

 

¿La trama la envías cada 10ms? Esto para seleccionar el mejor wait.

Imagen relacionada

Como podemos ver, el "wait until next ms multiple" function espera un tiempo múltiplo del valor para terminar la operación dentro del frame. El "wait" function siempre esperará el valor que se le determino.

 

Por ejemplo: Si la operación duro 3ms (todo el procesamiento de la trama y sus operaciones), el wait terminará en el tiempo 13ms. En cambio, el wait until next terminará en el tiempo 10ms.

 

Para finalizar, checha que el baude rate de comunicación de tu micro sea de 115 200. Esto para sincronizarlo y evites perdidas de información.

Saludos.

 

0 kudos
Mensaje 5 de 7
4.333 Vistas

OK muchas gracias, soy nuevo en el ambiente de labview, no se si me podrian ayudar a extraer los elementos de un arreglo y guardar dichos elementos para usarlos posteriormente 

0 kudos
Mensaje 6 de 7
4.328 Vistas

adjunta  lo que estas haciendo, solo asi te puedo ayudar.

quieres guardar en una base de datos?

saludos.

0 kudos
Mensaje 7 de 7
4.209 Vistas