Discusiones sobre Productos NI

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

Enviar varias instrucciones en un mismo array por el puerto serie y que me las reconozca???

Bien, les comento.
Tengo hecho en labview con visa, un programa que envia una orden a la controladora de un robot por el puerto serie para que este haga algo.

Bien con esto solo puedo mandar instruccion a instruccion.

El caso es que quiero escribir, digamoslo así, un codigo de programa que conste de varias instrucciones una tras otra separados por un enter, y que el robot realice todas, una tras otra.
Tengo alguna idea de como poder hacerlo, por ejemplo, leer el array que se manda hasta que encuentre un "\n" que es un salto de linea, enviarla, esperar a que el robot devuelva un ">" con lo cual esta libre para recibir una nueva orden, leer de nuevo el array por donde iba hasta un nuevo "\n", volver a enviar esa ultima instruccion, y asi sucesivamente....

Pero no se como hacerlo, y si es posible hacerlo asi, o si hay otra forma mejor.

Si alguien puede ayudarme.

Saludos

PD: Lo he puesto en un post a parte del que ya tenia del puerto serie, pq ya lo solucione, ahora el problema es otro.
0 kudos
Mensaje 1 de 3
4.690 Vistas
Nadie sabe??
0 kudos
Mensaje 2 de 3
4.644 Vistas

Hola David, si se puede hacer tu idea, a lo mejor una opción mas simple en lugar de separarlas por enter es guardar las en un array, cada comando en un renglon separado, y leer ese array dentro de un ciclo for, e ir leyendo cada instrucción.

O incluso otra solución que podría funcionar mejor es implementa una maquina de estados sobre como implementar esta arquitectura hay ejemplos de labview, aquí básicamente puedes tener 3 estados.

En el primero es incrementar el índice del arreglo y leer el comando. En el segundo es mandar el comando al robot.

Y finalmente el tercero seria esperar a recibir una respuesta de que termino la ejecución.

Con la ventaja de que al ser una maquina de estados el agregar casos adicionales es sencillo.

Saludos, perdón por tardar en contestar pero como se veía que tenia reply el correo, parecía que ya estaba respondido

Saludos

 

Benjamin C
Principal Systems Engineer // CLA // CLED
0 kudos
Mensaje 3 de 3
4.489 Vistas