el 11-07-2013 04:47 AM
Hola a todos, he estado leyendo el foro y no he encontrado (o no he buscado bien) una respuesta adecuada a mi problema, por lo que siguendo este hilo:
Pone que cree nuevos hilos y por eso no he continuado allì.
Esto generando senales con un DAQassistants y un simulador de senal dentro de un while para que se haga de manera contìnua en el tiempo, pero necesito obtener una muestra cada cierto tiempo que yo le ponga como arbitrario y con eso operar despuès sin que se reinicie la generaciòn de la senales de nuevo. Para ello he utilizado una estructura de "generate ocurrence", "Set occurrence" y "Wait ocurrence" que creo que podrìa funcionar para operar sòlo cuando tome la muestra. El problema es que no sè como muestrearla, pues con el AI Acquire Waveform podrìa muestrear las senales de entrada, pero no me reconoce la salida del generador de funciones ni del DAQAssistant como vàlidas. Les mando una imagen para ver la composiciòn. Querrìa muestrear la senal (incluso antes del DAQ assistant de màs arriba y la ùltima de todas que es uan senal que recibo de un sensor de presiòn.
Muchas gracias por todo.
Un saludo,
Miguel.
¡Resuelto! Ir a solución.
el 11-11-2013 05:52 AM
Hola Miguel_Torino,
Estoy mirando la captura de pantalla que has adjuntado pero no entiendo una cosa, para que utilizas los registros de desplazamiento del bucle salida señal digital control relé. Podrias hacer una captura de pantalla de todo el diagrama de bloques o, mejor, adjuntar el codigo del VI para poder verlo con mayor detalle y de esta manera conseguir ayudarte. Gracias
Un saludo, que pases un buen día
el 11-15-2013 02:55 AM
Muchas gracias!!!!!!! Aquì te lo adjunto, lo utilizo solo para que se sincronicen las senales digital y analògica...
Muchas gracias de nuevo.
Un saludo,
Miguel.
el 11-15-2013 05:18 AM
Asi la sincronización no se realiza, para hacer una sincronización mirate los ejemplos de labVIEW puesto que vienen bien explicados y conseguiras entenderlo. Para encontrar estos ejemplos mira en Help > Find Examples... Ademas tambien puedes acceder a la página de ni.com/examples para encontrar mas ejemplos.
Un saludo, que pases un buen día
11-15-2013 09:03 AM - editado 11-15-2013 09:04 AM
Ya he conseguido muestrearlas. Ya hice lo de los ejemplos y no me quedò del todo claro, pero volveré a hacerlo este fin de semana. Ahora el problema que tengo es que uso whiles dentro de una "flat sequence" pero por la forma de los whiles no me pasa al siguiente "piso" de la secuencia...supongo que serà por el problema de sincronizaciòn que me dices, pero si crees que puedo hacerlo de alguna manera mejor, te agradecerìa la mano ;), he probado a hacerlo con timing loops y con occurences, pero ninguna me va bien 😞
Muchas gracias por la ayuda,
Un saludo,
Miguel.
el 11-18-2013 02:03 AM
Hola Miguel_Torino,
Me alegro que hayas conseguido avanzar con tu proyecto. En referencia al problema que tienes con los bucles while, necesitaria ver una captura de pantalla para comprender mejor el problema y poder ayudarte.
Un saludo
el 11-18-2013 04:42 AM
Hola, lo primero voy a comentar còmo he solucionado lo del muestreo por si a alguien le puede servir: he utilizado un "relay" dentro de un case con un contador de iteraciones gobernado y actualizado por variables globales y con eso puedo tomar un valor segùn me interese en un momento u otro.
El problema que tengo es que (te adjunto la captura de pantalla) he pensado en meter los "whiles" dentro de un case que llegado a un contador pase con una comparaciòn al otro caso del case que es en el que quiero operar. El contador veo que se actualiza de valor (con el indicador que he puesto para ver los cambios) pero el hecho es que no se pasa al otro caso...
Muchas gracias de nuevo,
Miguel.
el 11-22-2013 04:23 AM
Hola Miguel_Torino,
Puedes pasarme el VI para poder testearlo en mi ordenador. Gracias.
Un saludo, que pases un buen día.
el 11-25-2013 03:56 AM
Hola, te paso también un esquema hecho a mano del cto a implementar con Labview. Con la variable global no se actualiza cada vez y eso es un problema. el objetivo es que se tomen los valores muy ràpidamente (mustreo my continuado y denso, lo del valor 15 es sòlo por ver si funcionaba). No sè si serìa posible que se muestreara cada poco (contador hasta 2) y pareciera que la senal que se manda por el BNC2120 (que serìa lo mejor).
Por otro lado, creo que para que esto funcionase bien deberìa estar el DAQmx que se utiliza para la salida analògica estar fuera del While...me equivoco?
Gracias de nuevo por toda la ayuda que me estàn dando.
Un saludo,
Miguel.
el 11-26-2013 02:22 AM
Hola!
Por otro lado, creo que para que esto funcionase bien deberìa estar el DAQmx que se utiliza para la salida analògica estar fuera del While...me equivoco?
A esta pregunta: lo puedes dejar dentro del bucle para que de este modo se este escribiendo continuamente.
El posible problema puede ser la variable: enable señal cuadrada, puesto que dentro de la estructura case no sabes cual se ejecuta primero, si el relay o poner false dicha variable. Revisalo y haz que se ejecute en el orden correcto, puesto que LabVIEW ejecuta las acciones cuando tiene todas sus entradas, y en este caso ambas funciones tendrían las entradas a la vez, con lo que no podemos conocer cual se ejecuta primero.
Tambien te diría que inicializaras las variables, porque sino no sabras con que valor se ejecutan al principio.
Si quieres controlar el tiempo con el que se ejecuta un bucle while, te recomiendo que utilices la función "wait until next", de este modo el bucle se ejecutara en el tiempo que le estipules (siempre que ese tiempo sea mayor al tiempo que tarda en ejecutarse) y no consumiras tantos recursos del microprocesador.
Espero que la información te sirva. Comenta cuando revises.
Un saludo, que pases un buen día.