La estructura del evento no captura el Cambio de valor del indicador

Actualizado el Oct 20, 2023

Reportado en

Software

  • LabVIEW Full
  • LabVIEW Base
  • LabVIEW Professional

Detalles del problema

Usando una estructura de eventos, configuré un caso para ejecutar cuando hay un cambio de valor de un indicador en mi panel frontal. En mi VI, el indicador recibe un valor de otra parte de mi código. Cuando ejecuto el VI, puedo ver el cambio del valor del indicador, pero el código en el caso de evento que configuré nunca se ejecuta.

Solución

La Estructura de eventos solo registra los eventos generados por la interacción directa del usuario con el panel frontal. En este problema, el valor del indicador se cambia mediante programación, por lo que LabVIEW no captura el evento de Cambio de Valor. Además, los eventos de Cambio de valor no se producen si utiliza VI Server, variables globales, variables locales, etc. para cambiar los objetos de VI o del panel frontal mediante programación.

Hay una excepción: los eventos para controles e indicadores pueden generarse mediante programación con un nodo de propiedad, utilizando la propiedad Val (Sgnl) (Value (Signaling)), como la figura de abajo. Esta propiedad de solo escritura crea un evento que actúa como un cambio de valor del panel frontal cada vez que se escribe. Sin embargo, tenga cuidado de utilizar esta propiedad en un bucle, ya que si se escribe en cada iteración del bucle, generará un desencadenante de cambio de valor para cada iteración, independientemente de si el valor se cambió realmente.

Consulte la figura a continuación para ver una demostración sobre el evento de cambio de valor utilizando la propiedad Val (Sgnl).
Este VI usa el Val (Sgnl) Propiedad para actualizar el indicador, así como para generar un evento. Cuando se actualice el indicador "A * B", la estructura del evento registrará el evento y actualizará el indicador "Última actualización" con la hora actual.

En contraste, vea la figura a continuación para ver una demostración sobre el evento de Cambio de Valor usando la propiedad Value.
 
Este VI usa la propiedad de Cambio de Valor para actualizar el indicador. Cuando se actualice el indicador "A * B", la estructura del evento no registrará el evento ya que no hay evento para registrar.

En ambos VIs, el producto se escribe mediante programación en el indicador "A * B". Ambos VI también tienen una estructura de eventos destinada a capturar un evento de cambio de valor del indicador "A * B". Solo el VI que utiliza la propiedad Valor (señalización) registrará un evento cuando se actualice el indicador "A * B".