Solución
La principal diferencia entre la llamada por referencia utilizando un nodo de invocación (Invoke Node) y el nodo de llamada por referencia (Call by Reference Node) es la facilidad de programación frente a la flexibilidad de la arquitectura.
Cuando use un nodo
Call by Reference , debe conectar una referencia de VI estrictamente escrita (strictly typed). Una referencia de VI estrictamente escrita incluye información del panel del conector con los tipos de datos, así como la referencia a la VI. Cuando se utiliza el
Call by Reference Node, LabVIEW crea un panel de conector para usted debajo del nodo. Con el nodo
Call by Reference Node, puede aprovechar la carga de un VI dinámicamente, mientras tiene la comodidad de un cableado simple.
Cuando utiliza un
Invoke Node, no es necesario que use una referencia estrictamente escrita. Como resultado, puede pasar cualquier VI a un nodo de invocación para ejecutarlo. El uso del nodo Invoke permite una mayor flexibilidad, ya que le permite llamar a VIs que no tienen el mismo panel de conectores. Esta es una forma sencilla de abrir solo el Panel frontal y ejecutar un VI. Sin embargo,
si desea pasar valores, deberá conocer los nombres de los Controles y sus tipos de datos , lo que requiere una programación adicional. El método
Invoke Node se vuelve más flexible porque puede pasar cualquier ruta de VI a esta configuración y podrá abrir y cargar ese VI.
Otro beneficio de usar el
Invoke Node para llamar a un VI por referencia es la capacidad de interactuar con el VI. El método Invoke Node le permite interactuar con el VI mientras se está ejecutando, por ejemplo, si es necesario controlarlo o en caso de que las salidas deban leerse varias veces. Usando el nodo
Call by Reference, el panel del conector generará valores solo una vez, cuando el VI finalice la ejecución. No proporciona la capacidad de interactuar con un VI en ejecución.