Está en la página 1de 5

http://zone.ni.com/devzone/cda/tut/p/id/4120 http://www.gte.us.es/ASIGN/IE_4T/Programacion%20en%20labview.pdf http://cnx.

org/content/m18070/latest/

En este documento se analiza el uso de dos de espera VI, (ms) y esperar hasta el prximo ms mltiple, para dar tiempo a los bucles de software. Este documento asume que el motor de LabVIEW RT es la plataforma de ejecucin. En nuestro anlisis vamos a suponer que el VI se ejecuta en un hilo de tiempo crtico y que es en el bucle nico momento crtico en el sistema. Para una discusin completa de las prioridades y los hilos en LabVIEW RT, siga el enlace en la parte inferior de la pgina.

Cuando se utiliza la funcin de esperar hasta el prximo ms mltiple, si se le llama en paralelo con otro cdigo en el mismo bucle, el bucle tendr el perodo de milisegundos mltiple. Esto no ser el caso si el otro cdigo lleva ms tiempo que el mltiplo milisegundo. Debe utilizar este VI con cuidado en la prioridad de tiempo crtico de LabVIEW Real-Time. Recuerde que si cualquier VI duerme en un hilo momento crtico, el hilo completo duerme. Por esta razn, usted debe controlar cuando el esperar hasta el prximo mltiple ms se ejecuta, en lugar de colocar el VI en paralelo con otro cdigo. Para entender por qu, vamos a ver un lazo de control de ejemplo. En este ejemplo, vamos a leer una entrada analgica y luego escribir una salida analgica. El momento deseado del sistema se muestra en la Figura 1. Las flechas verticales representan mltiplos de 100 milisegundos.

Figura 2: Primer intento de bucle cronometrado

En este primer intento, no dictan cuando en la secuencia del esperar hasta el prximo mltiple ms se ejecuta. El comportamiento de este circuito ser diferente segn el momento en esperar hasta el prximo mltiple ms se ejecuta. Si el esperar hasta el prximo mltiple ms ejecuta en primer lugar, a continuacin, la entrada analgica ser seguida inmediatamente por la salida analgica. Este comportamiento es usualmente se desea, pero no est garantizada en el ejemplo anterior. Si el esperar hasta el prximo mltiple ms se ejecuta inmediatamente despus de la entrada analgica, la salida analgica no ser capaz de ejecutar hasta que el esperar hasta el prximo mltiple ms ha terminado. De nuevo, esto se debe a que cuando cualquier parte de un VI prioridad de tiempo crtico duerme, duerme todo el hilo. El momento

resultante sera como se muestra a continuacin, en la Figura 3. Este comportamiento generalmente no se desea. Figura 3: Estado de espera se ejecuta despus de la IA

En lugar de colocar el esperar hasta el prximo mltiple ms en paralelo con otro tipo de cdigo, podemos forzarlo a ejecutar en una secuencia especfica mediante el uso de flujo de datos, como se demuestra a continuacin. Con el siguiente ejemplo, la entrada analgica se producir inmediatamente despus de los mltiples milsima de segundo, y la salida se producir inmediatamente despus de eso. Figura 4: El control de la secuencia de eventos La espera (ms) Funcin Si la espera (ms) se llama en paralelo con otro cdigo, en otras prioridades que el momento crtico, el ciclo cuenta con el perodo de milisegundos de espera a menos que el otro cdigo toma ms tiempo que los milisegundos de espera. En LabVIEW Real-Time, no se recomienda el uso de este VI en paralelo con cualquier cosa en prioridad crtica del tiempo. Si la espera se ejecuta en primer lugar, todo el hilo va a dormir hasta que la espera (ms) ha terminado, y el cdigo en paralelo no se ejecutar hasta que la espera (ms) ha terminado. El perodo de lazo resultante ser el tiempo de ejecucin de cdigo adems de los milisegundos de tiempo de espera. Este VI no proporciona el tiempo de forma fiable consistente, incluso en la prioridad VI normal, ya que el jitter es acumulativo. Enlaces relacionados:

http://www.gte.us.es/ASIGN/IE_4T/Tutorial%20de%20Labview.pdf

Espere VI El VI espera provoca un VI para dormir por la cantidad especificada de tiempo. Por ejemplo, puede utilizar el VI Wait con la Unidad contra el establecido en milisegundos en un VI que se ejecutan en el objetivo de RT para proporcionar tasas de bucle hasta 1 kHz. Si el valor del temporizador de milisegundos del RTOS es de 112 ms, cuando el VI se ejecuta y espera la entrada de conteo es igual a 10, entonces el VI duerme y no vuelve hasta que el valor de tiempo de milisegundos es igual a 122 ms. La siguiente figura muestra el momento en que una aplicacin en tiempo real utilizando el VI Wait. La aplicacin se ejecuta en la figura de la funcin A, B ejecuta la funcin, y luego utiliza el VI Wait a dormir 10 ms despus de la ejecucin de la funcin B. Sola en la VI mltiple Siguiente El VI Wait Until Next mltiple causa un hilo a dormir hasta que el valor de la milsima de segundo RTOS o el temporizador de microsegundos es igual a un mltiplo de la entrada de contaje. Por ejemplo, si la espera hasta VI siguiente mltiplo ejecuta con una entrada de Conde de 10 ms y el valor RTOS milisegundo del temporizador es de 112 ms, el que llama a la VI Wait Until Next VI mltiple duerme hasta que el valor del temporizador de milisegundos es igual a 120 ms por 120 ms es el primer mltiplo de 10 ms despus de la ejecucin de la VI Wait Until Next mltiple. La siguiente figura muestra el momento en que una aplicacin en tiempo real utilizando el VI Wait Until Next mltiple. La aplicacin se ejecuta la funcin A, B ejecuta la funcin, y luego duerme hasta que el valor del temporizador de RTOS milsima de segundo es igual a un mltiplo de 20 ms, lo que es el tiempo especificado por la entrada de Conde de la espera hasta VI mltiple en Siguiente. En la figura anterior, el tiempo de ejecucin para el VI Wait Until Next mltiple vara en funcin de la ejecucin de la funcin A y B. Cuando Funcin final A y B de ejecucin, el VI Wait Until Next mltiple se ejecuta hasta que el temporizador del sistema operativo llega a la siguiente mltiplo de 20 ms. Definir el orden de ejecucin para la sincronizacin en tiempo real de las iniciativas voluntarias Evite el uso de la VI espera o esperar hasta VI siguiente mltiplo en paralelo con otro cdigo de LabVIEW. Debido a la naturaleza preventiva de la RTOS, LabVIEW ejecuta la sincronizacin en tiempo real de las iniciativas voluntarias y el cdigo de otro en un orden de serie. Por ejemplo, si el VI Esperar ejecuta primero, todo el hilo duerme y el cdigo en paralelo no se ejecuta hasta que los rendimientos de espera VI. Es posible utilizar una estructura de LabVIEW para forzar una secuencia de ejecucin especfica, tal como en el ejemplo siguiente. En el siguiente diagrama de bloques, el VI Wait Until Next mltiple hace que el VI a dormir hasta que el temporizador de milisegundos llega a un mltiplo de 100 ms. Cuando los rendimientos VI del sueo, el VI comienza a ejecutar el VI Adquirir y salida de datos. Si usted tiene corriendo otros

VIs en el objetivo a menor prioridad, el RTOS ejecuta los VIs mientras que la aplicacin espera a que el VI actual para volver a dormir.

http://zone.ni.com/reference/en-XX/help/370622E-01/lvrtconcepts/timing_control_loops/

Wait VI The Wait VI causes a VI to slee

Esperar hasta el prximo Funcin ms Mltiple Tabla de contenidos LabVIEW 2010 Ayuda Fecha Edicin: junio de 2010 Nmero de parte: 371361G-01 Ver ficha del producto Ser dueo de la paleta: El tiempo VIs y Funciones Requiere: Paquete bsico Espera hasta que el valor del temporizador se convierte en un milisegundo mltiplo de la especificada mltiple milisegundo. Utilice esta funcin para sincronizar las actividades. Usted puede llamar a esta funcin en un bucle para controlar la velocidad de la ejecucin del bucle. Sin embargo, es posible que el perodo primer bucle puede ser corto. Cableado de un valor de 0 a la entrada de las fuerzas de varios milisegundos el subproceso actual para obtener el control de la CPU. Esta funcin hace que las llamadas asincrnicas del sistema, pero los propios nodos funcionan de forma sincrnica. Por lo tanto, no se completa la ejecucin hasta el tiempo especificado ha transcurrido. Detalles

http://www.pages.drexel.edu/~pyo22/mem639/lab-usb6211CountersAndTimers/labusbCountersAndTimers083107.pdf milisegundos mltiple es la entrada que especifica cuntos milisegundos caducar cuando el VI se ejecuta. Cableado de un valor de 0 para este parmetro hace que el subproceso actual para obtener el control de la CPU. valor en milisegundos del temporizador devuelve el valor del temporizador de milisegundos despus de la espera. Esperar hasta el prximo ms detalles Mltiples Cuando LabVIEW llama un VI por ejemplo, si milisegundo mltiple es de 10 ms y el valor del temporizador milisegundo es de 112 ms, el VI espera 8 milisegundos ms hasta que el valor del temporizador milisegundo es de 120 ms, un mltiplo de 10.

http://www.pages.drexel.edu/~pyo22/mem639/lab-usb6211CountersAndTimers/labusbCountersAndTimers083107.pdf

ftp://ftp.ni.com/pub/devzone/tut/cld_r_sample_exam_web_es.pdf

También podría gustarte