LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

¿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.
Gracias y hasta luego!
0 Kudos
Message 1 of 2
(3,142 Views)

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
Message 2 of 2
(3,124 Views)