Discusiones sobre Productos NI

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

Dirección de datos entre while loops

buenas tardes, desde hace días tengo problemas con un proyecto que trata sobre usar un sensor fotoeléctrico (CNY70) que me da valores de 0 a 50 y realizar comparaciones: x>30, x<20

Cuando sea mayor que 30, empezar a girar servo en una dirección, cuando sea menor que 20, que gire en dirección contraria y cuando esté entre 30 y 20 no hacer nada.

En la imagen adjunta se ve en el segundo loop el programa que intento hacer, cuando se cumpla una condición u otra mandarme a un while loop específico pero se mezclan entre sí los dos loops finales y mi servo se empieza a mover entre uno y otro, es decir, primero en una dirección y luego en otra.

Utilizo una local variable del dato del sensor llamada "espesor actual"

 

A que creen que se deba? gracias por su respuesta.

0 kudos
Mensaje 1 de 2
2.026 Vistas

Pablochacon,

 

Supongo que la manera más sencilla de tomar la decisión para tu comparación es utilizar un Case Structure.

 

En general no recomiendo tener While Loops anidados (es decir, uno dentro de otro) debido a los posibles bloqueos que pueden presentar.

 

Te recomiendo revisar los documentos Data Communication Methods in LabVIEW, y Transferring Data between Two Loops Running in Parallel  en LabVIEW Help, y considerar el uso de un Producer-Consumer pattern o la arquitectura Queued Message Handler.

 

Saludos,

0 kudos
Mensaje 2 de 2
1.984 Vistas