Leer y escribir el valor de un control/indicador del VI principal desde un SubVI

Actualizado el Dec 27, 2019

Reportado en

Software

  • LabVIEW

Programming Language

  • LabVIEW G

Detalles del problema

  • Quiero actualizar mis controles e indicadores VI de nivel superior con el estado "live" de los controles e indicadores   del subVI  mientras se ejecuta el subVI. ¿Cómo hago esto?
  • Tengo algunos controles e indicadores en mi VI principal , y quiero acceder a su valor en un subVI. ¿Cómo puedo leer y escribir valores del control o indicador VI prinicipal  desde un subVI?

Solución

En LabVIEW, cada control o indicador en el front panel tiene su propia referencia que puede pasarse a cualquier parte del proyecto y usarse para acceder a cualquier propiedad, incluido el valor. Los siguientes pasos explican cómo crear un nodo de referencia de un control o indicador, pasarlo a un sub-VI y leer/escribir el control/indicador en el subVI.

En el VI principal,

  1. Abra el block diagram y haga clic con el botón derecho en el control/indicador al que desea acceder en el subVI.
  2. Haga clic en Create >> Reference para crear el nodo de referencia de este control/indicador, luego suéltelo en el block diagram

En el SubVI,

  1. Abra el front panel y agregue un Control Refnum . Hay varias maneras de hacer eso:
    1. Copie una constante de este tipo de control desde el VI principal y péguelo en el front panel del subVI:
      1. Haga clic con el botón derecho en el nodo de referencia que creó en el VI principal y seleccione Create >> Constant..
      2. Seleccione el nodo constante y presione < Ctrl + X > para cortarlo.
      3. Abra el front panel  del subVI y presione < Ctrl + V >. El nodo constante se pegará y cambiará automáticamente a un control del mismo tipo.
    2. Cree un Control Refnum directamente en el front panel del Sub-VI:
      1. Haga clic con el botón derecho en el front panel del subVI y seleccione Controls Palette >> Modern >> Refnum >> Control Refnum.
      2. Seleccione la VI Server Class apropiada según el tipo de control en el VI principal. Haga clic con el botón derecho en Control Refnum y seleccione Select VI Server Class >> Generic >> GObject >> Control >> [seleccione el tipo de control]
  2. En el block diagram del sub-VI (ver Figura 1), cree un Property Node implícito para el refnum. Se puede encontrar en laFunctions Palette >> Programming >> Application Control >> Property Node.
  3. Conecte Control Refnum a la entrada de referencia del Property Node implícito.
  4. Haga clic en la lista desplegable del Property Node y seleccione Value como parámetro de entrada.
  5. Haga clic con el botón derecho en el parámetro y seleccione Change to Write para permitir entradas en el parámetro.
  6. Conecte los datos variables a la entrada de Value del Property Node implícito.
Figura 1: Sub-VI DigNum Refnum pasado a un property node
  1. Enlace el Control Refnum a un terminal en el conector pane del subVI , para que la referencia se pueda pasar del VI principal al subVI.

En el VI principal,

  1. Abra el block diagram (consulte la Figura 2) y conecte el nodo de referencia al terminal recién creado del sub-VI.
 
Figura 2: Referencia de control numérico pasada al SubVI
 

Información adicional

Al ejecutar el VI principal, cualquier cambio realizado en el control en el sub-VI también se actualizará en el VI principal porque están vinculados a través de la referencia de control.

El nodo de propiedad utilizado puede utilizarse para acceder no solo al valor, sino también a una variedad de otras propiedades de control / indicador. Consulte el manual LabVIEW 2018 Help  para obtener más información.