Grafica tiempo real de motores

Tengo un PLC que controla 3 motores, los cuales mueven 3 actuadores x,y,z, el plc tiene un tarjeta rs-232 el cual me manda informacion como strings lo que yo quiero esque labview me grafique en tiempo real el movimiento de los actuadores como mencione anteriormente el plc me puede dar la posicion del actuador los actuadores comienzan en cero si tienen alguna duda preguntenme por favor esque estoy trabado gracias

sorry here is in english i have a motion controller that control 3 motors, and they control 3 actuators in x,y,z position the motion controller send me the position of the actuator in strings, i need to graph in real time the motion of this actuators how are they moving i slide switch button and i put a case structure inside the case struct i put a flat sequence in the first frame i put get motor1 position, and in the other frame i put get motor2 position, outside the case structure i put the switch button with the condition if the buttion is pressed then give me the motors position, i can read the 2 motors positions but i cant graph the signal what can i do?

Similar Messages

  • Combinar tiempo real a grafica XY

    Buenas noches a todos
    Antes que nada espero y todos se la hayan pasado bien en esta semana de fiestas bueno mi duda ahora es la siguiente intento realizar una graficas con un solo plot donde por el lado de la amplitud me muestre la "carga" y por el lado del tiempo muestre la "altura de carga" eso ya lo hice posible con la XY graph pero lo que me esta sucediendo ahora es que el plot unicamente sigue los puntos de carga y altura de carga los que yo defini y eso estaria bien pero lo que pasa es que no sigue un tiempo lo que quiero saber es si hay alguna manera de combinar en la XY graph el tiempo real junto con la carga y altura de carga que yo defini he leido preguntas anteriores y he usado el for loop con bundle pero cuando hago eso no me muestra ningun plot la grafica
    Adjuntare mi VI para que me puedan entender mejor viendolo espero y me puedan ayudar y muchas gracias por los apoyos anteriores de todos
    nota:
    en login seleccionen Adrian de luna para que asi puedan ver mi proyecto ejecutarse
    pass: 25663+ 
    version 2012
    ¡Resuelto!
    Ir a solución.
    Adjuntos:
    Login.vi ‏21 KB
    Proyecto.vi ‏241 KB

    Saludos Manuel tambien me la pase muy bien en estas fiestas gracias por preguntar
    Aqui te adjunto nuevamente mi VI aun no lo limpio porque quiero que todas las funciones queden antes de realizar la limpieza de programa.
    lo que quiero saber hacer es como podria determinar tiempo en la XY graph porque como se puede apreciar en el programa el plot que tiene como amplitud la carga y como time la altura de carga no sigue un tiempo determinado haciendo que el plot haga lineas en toda la XY graph lo que quiero hacer es que se muestre igual que una wave form graph pero con esas dos variables como amplitud y time.
    en caso de que dicha funcion no se pueda realizar entonces quisiera saber si me es posible realizar un reset en la wave form graph estilo como la XY ya que en caso de que no pueda lograr que las variables de XY graph sigan una linea determinada de tiempo pues no me quedara opcion que ralizar dos wave form graph con cada variable.
    muchisimas gracias por tu ayuda.
    Adjuntos:
    Login.vi ‏15 KB
    Proyecto.vi ‏261 KB

  • Pci-6251 soprta tiempo real

    Buen día:
    Quiero implementar un control de velocidad de un motor de cd en tiempo real, cuento con una tarjeta PCI-6251, el sensado de la velocidad es un encoger incremental.
    Preguntas:
    ¿La tarjeta PCI-6251 soporta el tiempo real?
    ¿Existe algun ejemplo para estudiar su implementación?
    Cuento con LabVIEW 8.0 y tengo instalado el modulo Real-Time.
    Tengo algunos problemas con el tutorial Real-Time.
    Gracias de antemano.

    Estimado itlcarlos
    Gracias por utilizar los foros de National Instruments.
    En primera instancia quisiera entender a lo que te refieres con "Tiempo real", ya que tiempo real indica que estarías trabajando bajo un sistema operativo determinístico con el cual te asegurarías que existe confiabilidad total en el sistema, de ser así no podrías trabajar en Windows ya que no es determinístico. Si intentas ver la tarjeta como un dispositivo RT no va a ser esto posible en el proyecto de LabVIEW.
    Ahora si te refieres con Tiempo Real a que la tarjeta trabaje de manera confiable y envíe la información en tiempo y forma al sistema operativo, te sugiero revises la hoja de especificaciones para que determines si la precisión y el reloj son suficientes para tu aplicación
    Me gustaría me aclararas si esa era tu pregunta o me detalles un poco más que es lo que intentas hacer y con todo gusto te ayudaré.
    También dime que problemas tuviste con el tutorial de Real Time para ver en que te podemos ayudar.
    Que tengas un excelente día.
    NI 625x Specifications
    http://www.ni.com/pdf/manuals/371291h.pdf
    Coamín Cruz
    Ae México

  • Como puedo monitorear un proceso en tiempo real usando una plataforma con LINUX, no importa que esta conectado a via TCP/IP con un equipo con SO windows, que actua como serviddor OPC

    Como puedo monitorear un proceso en tiempo real usando una plataforma con LINUX, no importa que esta conectado a via TCP/IP con un equipo con SO windows, que actua como serviddor OPC.
    Ing. Jorge Mirabal

    Jorge,
    Necesitas compar el programa de RT de National Instruments para hacer cualquier cosa en tiempo real o determinatistico como le acostrumbran llamar. La plataforma que uses no imporata. El sistema de desarrollo es el mismo en cualquier plataforma.
    Ing. Otman Estrada
    PS. Ademas de talves poderte ayadar, conteste tu pregunta porque queria ponerme el titulo de Ingeniero. Aqui en EEUU no se acostrumbra eso no importa cuanta educaccion tienes. Como dicen aqui, pienso que es "cool".

  • [Flash8] Control de Tiempo real "URGENTE"

    This is a multi-part message in MIME format.
    ------=_NextPart_000_0009_01C83934.20172710
    Content-Type: text/plain;
    charset="iso-8859-1"
    Content-Transfer-Encoding: quoted-printable
    Hola gente, tengo un problema algo engorroso encima, el tema
    es que =
    tengo publicado un juego de carreras en la web de un cliente
    y donde =
    registramos los tiempos de los usuarios para determinar la =
    clasificaci=F3n. El problema que hemos detectado es que el
    crono lo =
    basamos en el tiempo de reproducci=F3n de frames, o sea 24f
    son 1 seg. =
    Pues bien, hay m=E1quinas que se muestran incapaces de
    reproducir 24f =
    por segundo y eso provoca que el tiempo no sea real,
    alterando as=ED =
    claramente el resultado del jugador. Haciendo calculos
    r=E1pidos =
    signfica que una maquina qu solo reproduzca 12f por segundo
    estar=E1 =
    dividiendo el tiempo por 2.
    Que me aconsejariais para calcular el tiempo en un tiempo
    real para =
    todos?
    Muchas gracias.
    Oscar.
    ------=_NextPart_000_0009_01C83934.20172710
    Content-Type: text/html;
    charset="iso-8859-1"
    Content-Transfer-Encoding: quoted-printable
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0
    Transitional//EN">
    <HTML><HEAD>
    <META http-equiv=3DContent-Type content=3D"text/html; =
    charset=3Diso-8859-1">
    <META content=3D"MSHTML 6.00.6000.16544"
    name=3DGENERATOR>
    <STYLE></STYLE>
    </HEAD>
    <BODY bgColor=3D#ffffff>
    <DIV><FONT face=3DArial size=3D2>Hola gente,
    tengo un problema algo =
    engorroso=20
    encima, el tema es que tengo publicado un juego de carreras
    en la web de =
    un=20
    cliente y donde registramos los tiempos de los usuarios para
    determinar =
    la=20
    clasificaci=F3n. El problema que hemos detectado es
    que el crono lo =
    basamos=20
    en el tiempo de reproducci=F3n de frames, o sea 24f son 1
    seg. Pues =
    bien, hay=20
    m=E1quinas que se muestran incapaces de reproducir 24f por
    segundo y eso =
    provoca=20
    que el tiempo no sea real, alterando as=ED claramente el
    resultado del =
    jugador.=20
    Haciendo calculos r=E1pidos signfica que una maquina qu solo
    reproduzca =
    12f por=20
    segundo estar=E1 dividiendo el tiempo por
    2.</FONT></DIV>
    <DIV><FONT face=3DArial size=3D2>Que me
    aconsejariais para calcular el =
    tiempo en un=20
    tiempo real para todos?</FONT></DIV>
    <DIV><FONT face=3DArial
    size=3D2></FONT> </DIV>
    <DIV><FONT face=3DArial size=3D2>Muchas
    gracias.</FONT></DIV>
    <DIV><FONT face=3DArial
    size=3D2>Oscar.</FONT></DIV></BODY></HTML>
    ------=_NextPart_000_0009_01C83934.20172710--

    This is a multi-part message in MIME format.
    ------=_NextPart_000_0018_01C839E3.479D9C10
    Content-Type: text/plain;
    charset="iso-8859-1"
    Content-Transfer-Encoding: quoted-printable
    Ya que trabajas con Flash 8 deber=EDas utilizar la clase
    Date, aunque la =
    resoluci=F3n exacta del problema es posible que pase por el
    uso de la =
    clase Timer de Actionscript 3, mucho m=E1s avanzada, pero
    solo =
    disponible en Flash CS3.
    Salu2
    `8=AC}
    Juan Muro
    "oscar" <[email protected]> escribi=F3 en el mensaje de
    noticias =
    news:[email protected]...
    Hola gente, tengo un problema algo engorroso encima, el tema
    es que =
    tengo publicado un juego de carreras en la web de un cliente
    y donde =
    registramos los tiempos de los usuarios para determinar la =
    clasificaci=F3n. El problema que hemos detectado es que el
    crono lo =
    basamos en el tiempo de reproducci=F3n de frames, o sea 24f
    son 1 seg. =
    Pues bien, hay m=E1quinas que se muestran incapaces de
    reproducir 24f =
    por segundo y eso provoca que el tiempo no sea real,
    alterando as=ED =
    claramente el resultado del jugador. Haciendo calculos
    r=E1pidos =
    signfica que una maquina qu solo reproduzca 12f por segundo
    estar=E1 =
    dividiendo el tiempo por 2.
    Que me aconsejariais para calcular el tiempo en un tiempo
    real para =
    todos?
    Muchas gracias.
    Oscar.
    ------=_NextPart_000_0018_01C839E3.479D9C10
    Content-Type: text/html;
    charset="iso-8859-1"
    Content-Transfer-Encoding: quoted-printable
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0
    Transitional//EN">
    <HTML><HEAD>
    <META http-equiv=3DContent-Type content=3D"text/html; =
    charset=3Diso-8859-1">
    <META content=3D"MSHTML 6.00.6000.16546"
    name=3DGENERATOR>
    <STYLE></STYLE>
    </HEAD>
    <BODY bgColor=3D#ffffff>
    <DIV><FONT face=3DArial size=3D2>Ya que trabajas
    con Flash 8 deber=EDas =
    utilizar la=20
    clase Date, aunque la resoluci=F3n exacta del problema es
    posible que =
    pase por el=20
    uso de la clase Timer de Actionscript 3, mucho m=E1s
    avanzada, pero solo =
    disponible en Flash CS3.</FONT></DIV>
    <DIV><FONT face=3DArial
    size=3D2>Salu2</FONT></DIV>
    <DIV><FONT face=3DArial
    size=3D2>`8=AC}</FONT></DIV>
    <DIV><FONT face=3DArial size=3D2>Juan
    Muro</FONT></DIV>
    <BLOCKQUOTE dir=3Dltr=20
    style=3D"PADDING-RIGHT: 0px; PADDING-LEFT: 5px; MARGIN-LEFT:
    5px; =
    BORDER-LEFT: #000000 2px solid; MARGIN-RIGHT: 0px">
    <DIV>"oscar" &lt;<A
    href=3D"mailto:[email protected]">[email protected]</A>&gt; =
    escribi=F3 en=20
    el mensaje de noticias <A=20
    =
    href=3D"news:[email protected]">news:fjeank$9n3$1@forums=
    .macromedia.com</A>...</DIV>
    <DIV><FONT face=3DArial size=3D2>Hola gente,
    tengo un problema algo =
    engorroso=20
    encima, el tema es que tengo publicado un juego de carreras
    en la web =
    de un=20
    cliente y donde registramos los tiempos de los usuarios para
    =
    determinar la=20
    clasificaci=F3n. El problema que hemos detectado es
    que el crono =
    lo basamos=20
    en el tiempo de reproducci=F3n de frames, o sea 24f son 1
    seg. Pues =
    bien, hay=20
    m=E1quinas que se muestran incapaces de reproducir 24f por
    segundo y =
    eso provoca=20
    que el tiempo no sea real, alterando as=ED claramente el
    resultado del =
    jugador.=20
    Haciendo calculos r=E1pidos signfica que una maquina qu solo
    =
    reproduzca 12f por=20
    segundo estar=E1 dividiendo el tiempo por
    2.</FONT></DIV>
    <DIV><FONT face=3DArial size=3D2>Que me
    aconsejariais para calcular el =
    tiempo en=20
    un tiempo real para todos?</FONT></DIV>
    <DIV><FONT face=3DArial
    size=3D2></FONT> </DIV>
    <DIV><FONT face=3DArial size=3D2>Muchas
    gracias.</FONT></DIV>
    <DIV><FONT face=3DArial =
    size=3D2>Oscar.</FONT></DIV></BLOCKQUOTE></BODY></HTML>
    ------=_NextPart_000_0018_01C839E3.479D9C10--

  • Como configuro adobe cs6 para esccharme en tiempo real

    compre una mezcladora Xenyx q802 USB y no la puedo configurar con el adobe audition cs6 para escuchar mi vos en tiempo real , como puedo configurar el programa muchas gracias !

    Hola.
    El tema de relacionar los usuarios SB1 con las máquinas ha surgido constantemente en los Foros. Aún no hay una solución completa pero hay aproximaciones interesantes que funcionan.
    Por favor sigue este link a otro caso donde se habla de esto: Saber en que PC está conectado un usuario a B1.
    En cuanto a los add-ons, déjame miro.
    Espero sea de ayuda.
    Saludos.

  • Filtro mediana a tiempo real

    Hola a todos!! Tengo una duda.
    Estoy trabajando con un sistema a tiempo real, encontré una solución para atenuar ciertos picos, este es aplicar un filtro de mediana a la señal, pero buscando ejemplos he visto que ninguno de estos lo usa con datos dinámicos.
    ¿Es posible realizar un median filter a tiempo real? Si alguien tiene un ejemplo sencillo q por favor me lo envíe.
    Muchas gracias de antemano!!! 

    Foro Repetido:
    http://forums.ni.com/ni/board/message?board.id=6170&message.id=5490&jump=true
    Saludos
    Benjamin C
    Senior Systems Engineer // CLA // CLED // CTD

  • ¿como ver con query  addon conectado/desconectado en tiempo real xusauario?

    Encontré estas tablas pero dan información de la configuración de los Add ons instalados,
    Definición del ad don en la  compañía
    SELECT *  FROM OARI T0
    Registro del Ad don en SBO COMMON :
    SELECT * FROM SARI
    Definicion de add on en  usuarios
    SELECT * FROM ARI1
    El tema es que requiero apoyo para ver si por medio de un query puedo ver si un ad don esta o no está conectado en tiempo real por determinado usuario.

    Hola.
    El tema de relacionar los usuarios SB1 con las máquinas ha surgido constantemente en los Foros. Aún no hay una solución completa pero hay aproximaciones interesantes que funcionan.
    Por favor sigue este link a otro caso donde se habla de esto: Saber en que PC está conectado un usuario a B1.
    En cuanto a los add-ons, déjame miro.
    Espero sea de ayuda.
    Saludos.

  • Desplegar datos en tiempo real (hora y fecha)

    Estimados,
    Es la primera vez que recurro al foro, espero puedan ayudarme.
    Les comento que estoy desarrollando una aplicación bastante sencilla pero tengo algunos problemas. Estoy adquiriendo datos por el puerto serial y necesito desplegarlos en una gráfica, en donde en el eje "y" estén los datos adquiridos y en el eje "x" la hora y fecha en que se adquirió los datos. Estoy teniendo problemas en poder visualizar los datos en tiempo real, lo unico que pude hacer hasta ahora es almacenarlos en un array y luego desplegarlos, pero no es lo que estoy necesitando. 
    Espero puedan ayudarme con comentarios y/o ejemplos. Adjunto mi .vi para que entiendan mejor lo que necesito.
    Saludos.
    José Pablo
    Attachments:
    UI.vi ‏45 KB

    Buen día JosePaPenayo,
    Lo que requieres hacer es algo muy sencillo. En la siguiente liga se muestra como realizar este proceso:
    http://digital.ni.com/public.nsf/allkb/6F0054EEABAFE4B886256F2700012142
    También te dejo esta liga con un ejemplo de cómo poder realizarlo:
    https://decibel.ni.com/content/docs/DOC-8097
    Espero que esta información te sea de utilidad.
    -- Luis C.

  • Como conseguir realizar un auto ROI mientras capturo video en tiempo real

    Buenos días.
    Alguien me puede ayudar, necesito información de como hacer un auto enfoque de mi región de interés (ROI automático) al momento en que estoy capturando video, la idea es poder capturar la información de la placa de un vehículo al ingresar a un parqueadero pero quiero poder realizar el auto enfoque.
    de ante mano muchas gracias por la ayuda.

    Hola,
    Tal vez la solución de los dos fóruns abajo puede ayudarle con su solicitud.
    Maybe the solutions of the two foruns bellow may help you with your application.
    http://forums.ni.com/t5/Machine-Vision/How-to-auto-adjust-ROI-for-License-Plate-recognition-system-w...
    http://forums.ni.com/t5/Machine-Vision/Adaptive-ROI/m-p/1693198
    Saludos,
    Abel Souza
    Applications Engineering
    NI Brazil
    Abel Souza
    Engenheiro de Aplicações
    National Instruments Brasil

  • Hasta cuantos canales puedo tocar en tiempo real mientras grabo en una i7?

    Tengo una i7 MacBook Pro , hasta cuantos canales en vivo y con cuantos efectos puedo tocar a la ves con un retardo de hasta 15mls?
    Y como debo programarla?

    Compruebe que las opciones de audio tienen un nivel bajo búfer - Esto disminuirá la latencia de 15 ms a lo que su equipo puede ser cómodo.
    Usted será capaz de reproducir muchos canales a la vez en i7 - En caso de ser fácilmente 20 a 50 canales dependiendo de lo que se le asigna.

  • Sensorless control DC motor based on mathematic​al model

    Hi,
    I have DC motor, I put together mathematical model and transfer function of torque, speed and position PI control too.
    Can someone help me to implement it to real process? I need control real DC motor with H-bridge with sensorless method based on mathematical model. (using LW card 6211)
    Thank you veru much.
    Attachments:
    servo_control.JPG ‏52 KB

    Dear Džon,
    First of all, welcome to the NI Forums!
    In order to actually implement a control system, you will either need Control Design and Simulation Toolkit  ( http://sine.ni.com/nips/cds/view/p/lang/hu/nid/138​54 )
    or you will have to calculate the inverse Laplace of your resulting function and implement the numerical model. 
    By implementation I mean that you will most likely have to use numerical Integration.
    How you should do it is the following:
    Get the highest order of the outputs derivate to the left side of you equation -->      a_n * Y^(n) = ....
    where a_n is your coefficient resulted to Y^(n), then divide by a_n so you have something like: Y^(n) = ...
    after this you must integrate n times in respect to time. So you will have the y(t) resulting function in time domain.
    From there you must implement the equation on the right hand side with numerical methods. At the end you will most likely have a DAQmx task or an Express VI to actually output your control signal. (for that please refer to the examples of analog output / PWM)
    However, if you have access to Control Design and Simulation Toolkit. You may realise your system in a simulation loop as replicate your block diagram structure. (Please check examples installed with the toolkit) 
    If you have a specific question then please feel free to ask, and provide as much detail as possible.
    Best regards,
    Peter
    Peter L.
    National Instruments Hungary
    Applications Engineer

  • Como graficar en una graph normal un dato en x diferente del tiempo

    necesito que me ayuden a saber como como graficar en una graph normal un dato en x diferente del tiempo o como utilizar una xy graph en tiempo real.

    Ricarro,
    No sé qué versión de LabVIEW está utilizando, pero existe un ejemplo en LabVIEW 5.1 y 6i, el cual es "XY Graph.VI". Lo encuentra en Search Examples>>Graphs and Charts. Este VI describe cómo se emplea un XY Graph, ya que esa funcionalidad que usted busca no existe en los waveform graphs and charts.
    Espero que esta información sea de utilidad.
    L Aguila
    Ingeniero de Aplicaciones
    National Instruments

  • Como controlar velocidad con un PID con USB 6008 ?????

    Buenas tardes.
    Acabo de adquirir mi placa USB 6008 y estoy comenzando a trabajar para poder controlar la velocidad de un motor trifásico asincrónico estandar.
    Para esto contruí con un microcontrolador y una etapa de potencia la parte del variador. Y logré con esto que mi variador reciba una entrada de 0 a 5 Vcc y con ello varía la Frecuenci-Tensión de salida. Es decir solo necesito entregarle 0 a 5 V para que este actúe sobre todo el rango de frecuencias de salida.
    También contruí una placa de aislación galvánica que separa absolutamente la salida analógica de mi USB 6008 con la placa del variador que construí, como para separar las masas y la señal y evitar inconvenientes en mi Notebook y placa de adquisición.
    El feedback de velociodad lo hago con un sensor óptico y un disco dentado acoplado al eje del motor que me puede dar según mi necesidad 1 , 2 , 4 , 6 , 8 ó 10  pulsos por vuelta de acuedo a como lo ubique ó a mi necesidad.
    Entiendo que la placa USB 6008 no es la mejor alternativa para trabajar a tiempo real, y mi sistema operativo ( windows vista x64) tampoco. Pero mi sistema es bastante inercial desde el punto de vista mecánico, y también lo es por la placa del variador que no tiene una respuesta instantanea por cuestiones de constantes de tiempo que le di al firmware del micro. Es decir que no necesito velocidad en el sistema ni en el VI que necesito desarrollar.
    Resumiendo, necesito entrar a mi placa USB 6008 con pulsos ( los que se necesiten por cada vuelta del motor) y luego salir por una salida analógica ( de 0 a 5 V) con la información de velocidad que va al variador.
    Tengo a mi disposición Labview 8.5 con el Control design & simulation que tiene incluidos subVI con PID's listos para usar.
    En medio de este sitema, necesito generar un VI con el que pueda dar una referencia de velocidad desde un potenciómetro virtual en mi panel frontal, y que el PID en el programa de Labview corrija errores de velocidad por alguna pequeña variación de la carga, etc.
    La verdad que estuve probando hacer un VI con un PID bastante simple, pero a la hora de simularlo, fuí modificando los parámetros del PID y no vi que se haga "mas inercial"cuando aumento el tiempo integral. Tambien probé salir de mi placa con una tensión analógica, y dar una referencia con un potenciómetro como para probar si el PID se hace mas "rápido ó lento" al modificar las variables Integrales ó derivativas y no vi variaciones en la respuesta.
    Por eso es que pido ayuda en este foro, ya que probablemente alguien ya hizo alguna prueba, o me puede indicar como arrancar con este tema.
    Este proyecto es solo con fines académicos, para mi tesis de Ing. Electrónica. Por ello el motor no tiene carga, solo el disco dentado y el sensor óptico, solo lo puedo frenar un poco para ver la corrección.
    He comprobado que saliendo de mi placa 6008 con una señal analógica, pasandola por una placa que simula un retardo en el tiempo de esta señal, y reingresandola a una entrada de mi placa 6008 para luego con un VI generar el PID y tratar de que esta señal de entrada a la placa 6008 sea igual a la de setpoint, solo logro oscilaciones con una media que está lejos del valor del setpoint.
    Espero que alguien me pueda indicar como empezar, ó darme algún ejemplo que me pueda ayudar, ya que no soy experto el Labview, solo acabo de empezar a usarlo.
    Reitero que no necesito velocidad ya que mi sistema es lento, y solo debo variar mi salida analógica con velocidades muy bajas. Es decir no necesito respuesta inmediata.
    La idea es hacer una demostración del uso de un PID en un sistema real con Labview.
    Saludos...!!!!

    Hola.
          Sigue unos links para su consulta.
         http://forums.ni.com/ni/board/message?board.id=240​&message.id=8027&requireLogin=False
         http://zone.ni.com/devzone/cda/tut/p/id/3782
         http://zone.ni.com/devzone/cda/tut/p/id/6951
    Saludos
    Diogo.
    Diogo Aparecido
    Engenheiro de Aplicação
    National Instruments Brasil

  • Multiple timed loop question

    I am currently in the planning stage of a medium sized labview application and I need some help figuring out the best approach as application of this size is still new territory for me.
    I have a daq device monitoring 4 channels, a couple of motor controls, and the goal is to update the GUI with the information from the 4 channels, and also calculations performed on that information, all while letting the user control the motors in real time. All actions and data will be logged and written to disc preferrably in real time.
    The plan so far is of course to beak them up into subVI's, with the motor controls in 1 subVI, and the monitoring in 1 subVI, calculation performed on the data in another subVI, and a main driver VI that controls the timing of the loops and updates the GUI.
    I initially thought about using action engines for the data acquisitions, but I realized that using action engines might "freeze" the program when data acquisition is happening, and the user will lose control of the motors. Another approach is the producer/consumer pattern, where the incoming data from the DAQ is consumed to perform calculations and the data logged onto disc. This is the approach that I think I will take, but how do I implement the real time motor controls into this pattern?
    The idea that I have is to have a main program state machine that handles all user input, and parallel loops that implement the producer/consumer model, and another parallel loop that will update the motor information when it is changing. Is this a suitable approach for an application of this type? Would a queue help the timing aspect in between the parallel loops? As calculations must be performed on each iteration and updated to the gui before the next data point is acquired, at the speed of 100hz. I am having trouble visualizing how to implement multiple loops in separate subVI's and synchronizing the data in between each other.
    Please advice if there are other better patterns/approach for something like this.
    Thank you.

    Producer consumer would fit here well. You will also need to use a state machine system for flow control. I would also look into event structures and firing events. If you put all of this together it will make a nice simple upgradable program. This is a system that I helped somone else start.
    Tim
    Johnson Controls
    Holland Michigan
    Attachments:
    Try This System.zip ‏84 KB

Maybe you are looking for

  • I can't install extensions in CS 5.1

    I am trying to install the WebZap V1.0 extension but it is not working. This is what I have done so far: I downloaded the Extension Manager for CS5 patch and tried to install it. The patch does not intall and I get the response, "Update is not applic

  • [Solved] GeForce FX 5200 @ 1024x768 :(

    I installed drivers as https://wiki.archlinux.org/index.php/Nouveau $ xrandr -q Screen 0: minimum 320 x 200, current 1024 x 768, maximum 4096 x 4096 VGA-1 connected 1024x768+0+0 (normal left inverted right x axis y axis) 0mm x 0mm    1024x768       6

  • Issue in Purchase Register

    Hi All, I am facing a  typical scenario while running the purchase register. Most of the grpo's that were created during the period of 01-04-09 to 30-09-09 are with the excise tax codes and while creation of the a/p invoices, the tax code has been ch

  • Why are my books not deleting?

    Why are my books not deleting?

  • Sending mail automatically on date

    Hi, I am new to JavaMail. I am having a doubt that is there any method in JAVA that automatically send the mail on a particular day. For e-x, if i set the sentDate as tomorrow, it has to send the mail on tomorrow itself, not the day, when i composed