Discusiones sobre Productos NI

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

¿Cual es la diferiencia y en que se aplicaria cada uno de los siguientes: invoke nodes, register for events, Register event callback, call by reference node, create user event, generate user event ?

Antes que nada un saludo a todos y gracias por atender mi pregunta.
Estoy tratando de correr multiples VI´s bajo el mando de uno principal, esto es, que en un panel principal pueda elegir que VI´s quiero que se ejecuten ala par y cuales no, y si detube alguno de ellos poderlo volver activar en el momento deseado. Esto lo trate de intentar usando las estructuras de eventos pero despues de unos intentos y de leer me di cuenta que los eventos se ejecutan uno por uno, luego lo intente utilizando estructuras de secuencias con estructuras case y while loop´s y darle un tiempo de ejecucion de milisegundos para que asi se tenga la impresion que se estan ejecutando alapar, pero esto me genera un parpadeo constante de ventanas ademas que me va a complicar las cosas en otros aspectos. No se si esto lo pueda resolver con algunas de las funciones siguientes: invoke nodes, register for events, Register event callback, call by reference node, create user event, generate user event. Aun no tengo dominio sobre estas y la verdad estoy estancado en mi proyecto, agradecería bastante si me hecharan la mano en esto, explicarme sobre las funciones anteriores. Anexe un pequeño ejemplo de lo último que intente, estoy utilizando la versión 8.
Gracias y hasta luego!
0 kudos
Mensaje 1 de 4
3.133 Vistas
Una solución sería usar un EVENT con un diagrama asociado al cambio de valor de cada botón, y en cada diagrama llamar al VI correspondiente a través de VI Server, usando el método Run y en "Wait Until Done" poner FALSE. Para parar el VI puedes usar el método Abort; así cada VI se ejecutará de forma independiente.
0 kudos
Mensaje 2 de 4
3.121 Vistas

Qué tal Polaks,

Lo que más te recomiendo es que navegues un poco en los ejemplos para estas funciones. La mejor manera de hacerlo es ir al Help de LabVIEW, buscar el bloque por su nombre y al final de su ayuda, viene la liga para ejemplos de su utilización. Hay muchos ejemplos muy entretenidos que pueden ayudarte a comprender mejor el funcionamiento de los bloques.

 

Todas esas funciones que mencionas pueden ser bastante útiles, aquí te hago una breve descripción de cada una:

Invoke Nodes: Dado que LV es un lenguaje orientado a objetos, cada objeto que tú puedes utilizar consta de propiedades y de métodos (como los que pondrías en lenguaje C). Tú puedes accesar y manipular estas propiedades y métodos utilizando los nodos. Para las propiedades usas property nodes y para los métodos utilizas los invoke nodes.

Es decir, para la referencia que pongas (otra aplicación por ejemplo), con el invoke node puedes acceder a sus métodos, como abrir la aplicación, ejecutarla, cerrarla, detenerla, etc.

 

Register for events: Este bloque registra literalmente la ocurrencia de los eventos que le conectes, cada una de estas entradas de eventos es una referencia a aplicaciones, VIs, o eventos de usuario (como dar clic en el mouse).

 

Register event callback: A este bloque le dices que llame a un VI cuando un determinado evento ocurre. Tú defines el evento y el VI. Se utiliza principalmente para eventos .NET o ActiveX.

 

Call by reference node: Este nodo puede verse como un subVI que no se carga en memoria, sino sólo al momento de ejecutarse. Tú cableas una referencia al VI a utilizar y cada vez que el Call by Reference Node se ejectura, ese VI se carga en memoria, se corre y se cierra una vez que termine su ejecución. Al cablear la referencia, el nodo cambiará su forma para adaptarse a las terminales reales del VI al cuál se hace referencia.

 

Create user event: Te devuelve una referencia a un evento de usuario (sabe que ya sucedió el evento). En este bloque “crear el evento” se refiere obtener toda la información sobre éste para poder registrarlo o utilizarlo; es decir, puedes cablear su salida a un Register for events o a un Generate User Event.

 

Generate user event: Hace el broadcasting del evento mandando toda su información a las estructuras de eventos (event structure) registradas para su manipulación (El evento que ya sucedió, pásalo).

 

Saludos y gracias por utilizar los foros de NI

Arturo Vargas
National Instruments de México
0 kudos
Mensaje 3 de 4
3.101 Vistas
Saludos Rafa y Arturo!
Gracias por sus comentarios, no les habia respondido antes porque no le habia seguido con el priyecto a causa de mi trabajo. De hecho me estoy guiando por los ajenplos y la documentación que LabVIEW trae acerca de sus VI´s y si me han servido bastante, pero se llego en momento en que me bloquie y como no tenía mucha práctica con los VI´s que mencione no hayaba por donde llegarles. Pero ya gracias a sus comentarios tengo la idea mas clara y lo he resuelto, útilice el modo run usando los nodos de invocasión y la estructura de eventos, seguire explorando mas y talvez mas adelante los vuelva  atacar con mis dudas :D.

Gracias y hasta luego!
0 kudos
Mensaje 4 de 4
3.084 Vistas