Tutorial del LabVIEW Statechart Module

Actualizado el Oct 31, 2023

Ambiente

Software

  • LabVIEW
  • LabVIEW Statechart Module

Este tutorial del Módulo NI LabVIEW Statechart está diseñado para el entorno de evaluación en línea de LabVIEW, por lo que no depende de ningún hardware. Cubre los conceptos básicos de la creación de una aplicación basada en gráficos de estado.

Introducción a las aplicaciones creadas con Statecharts

Con una aplicación existente basada en gráficos de estado, esta sección ilustra cómo puede utilizar gráficos de estado. La aplicación es un ventilador de techo que tiene velocidades variables y una luz que se puede encender / apagar. Además, esta aplicación hace uso de una arquitectura de diagrama de estado sincrónico. Las arquitecturas síncronas leen entradas y escriben en salidas periódicamente y no dependen de un disparador externo para hacer que el diagrama de estado evalúe las condiciones. Las aplicaciones síncronas son las más adecuadas para aplicaciones integradas y de matriz de puertas programables en campo (FPGA) en tiempo real.

  1. Ceiling Fan (sinchronized) .lvproj . Expanda LV Statechart.lvsc .
 
  1. Los diagramas de estado constan de activadores, entradas, salidas, datos de estado y un diagrama . Abra Edit Triggers and Groups . Esta sección es donde puede agregar disparadores externos que pueden causar una transición de estado. Dado que se trata de un diagrama de estado síncrono, no se han creado activadores. Haga clic en Ok .
  1. Abra Inputs.ctl . Aquí puede ver cuatro valores de entrada diferentes: luz, ventilador, interruptor y botones de parada.
  1. Abra Outputs.ctl . Tiene dos indicadores: un LED de estado de la luz y un indicador numérico de estado del ventilador.

 
  1. También se incluye dentro de un diagrama de estado StateData.ctl . Los datos de estado son un control que puede actuar como un conjunto de variables temporales a las que solo se puede acceder dentro del diagrama de estado.
  1. Abra Diagram.vi . Esta es ahora la lógica del diagrama de estado para el ventilador de techo. Los gráficos de estado se componen principalmente de regiones, estados y transiciones . Una región es un contenedor para uno o más estados, un estado es la condición en la que se encuentra el diagrama de estados y una transición es un medio para moverse entre estados.
  2. Haga doble clic en la transición que va entre Fan Off y Fan On .
  1. Esto abre la ventana de diálogo Configure Transition, donde se encuentra el código de LabVIEW que define una transición. Las pestañas Guard y Action definen dónde se escribe el código de LabVIEW. Una guardia es un condicional que se evalúa para determinar si se debe ejecutar una transición, mientras que la pestaña de acción especifica un comportamiento del sistema cuando se realiza una transición. Haga clic en OK .
  1. Haga doble clic en el estado Fan On .
  2. Esto abre el cuadro de diálogo Configure Setup para el ventilador.
  1. Los estados tienen varios tipos de acciones. Las acciones de entrada se ejecutan cada vez que se ingresa al estado y las acciones de salida se ejecutan cuando se sale del estado. Puede realizar acciones adicionales dependiendo del comportamiento en el sistema. Haga clic en OK.
  2. Al observar el diagrama de estado, el comportamiento se describe de la siguiente manera: inicialmente, el diagrama de estado está en el estado de apagado . Una vez que el interruptor está encendido, ingresa al superestado de Switch On . En este estado, contiene dos regiones ortogonales que actúan de forma independiente entre sí. Las entradas pueden cambiar la luz del estado de Light Off a Light On y también para los estados de Fan Off y Fan On . En última instancia, puede terminar el diagrama de estado mediante la entrada Stop .
  3. Volviendo a la ventana del Project Explorer , abra FanLightDemo - Sync.vi.
  4. Abra el diagrama de bloques escribiendo < Ctrl + E >. El statechart es ejecutado por Run Statechart.vi .
  1. Regrese al panel frontal. Ejecute el VI.
  1. Experimente con los botones y observe cómo esto impacta el diagrama de estado.
 

Creación de una aplicación de diagrama de estado

Esta sección cubre el desarrollo de un diagrama de estado y su integración en su aplicación, que simula el calentamiento y enfriamiento de un tanque de agua. Consiste en un tanque que se calienta a una temperatura definida por el usuario, después de lo cual el tanque se enfría a otra temperatura definida por el usuario. El sistema tiene un interruptor de emergencia que detiene el proceso en cualquier momento.

Primero necesita crear su proyecto.

  1. Desde la pantalla de Introducción a LabVIEW, seleccione Empty Project .
  1. Haga clic con el botón derecho en Mi Computer y seleccione New >> Statechart .
  1. Guarde el diagrama de estado como monitor de temperatura.
  2. Ha creado la estructura de archivos del diagrama de estado en la ventana Explorador de proyectos.
Ahora ha creado el marco para su diagrama de estado. La siguiente sección describe los pasos necesarios para crear su aplicación basada en gráficos de estado: entradas, salidas, diagrama, código e integración.
Los pasos principales para la creación de un diagrama de estado son definir las entradas de su sistema, determinar las salidas del sistema, crear un diagrama que represente su diagrama de estado, implementar el comportamiento en el código de LabVIEW y luego integrar el diagrama de estado en su aplicación de LabVIEW.

Definición de entradas

Durante esta fase, cree el clúster de entrada para su diagrama de estado.

  1. Desde la ventana del Explorador de proyectos, abra Inputs.ctl.
  1. Cambie el nombre del botón a "Stop".
  2. Agregue tres controles numéricos para High Temp , Low Temp y Current Temp. El grupo de entrada completo debe verse como la imagen a continuación.
  1. Abra StateData.ctl. Puede utilizar este control para valores temporales y datos de estado internos. En este ejemplo, mantenga una copia de la temperatura actual. Cambie el nombre del control a Temperature.
 

Determinación de salidas

Ahora que ha completado las entradas a su sistema, puede crear la salida de su diagrama de estado.

  1. Desde la ventana del Explorador de proyectos, abra Outputs.ctl .

 
  1. Cambie el nombre del indicador numérico a Temperature. El clúster de salida completo debería verse como la imagen a continuación.
 
 

Crear diagramas

Ahora que las entradas y salidas están completas, puede crear el diagrama que representa su diagrama de estado.

  1. Abra Diagram.vi. Durante esta parte del ejercicio, solo utilizará la paleta Statechart Development.
  1. Cree un estado llamado Controller . Dentro de este estado, cree una región llamada Control de temperatura . Además, el diagrama requiere un pseudoestado inicial y una transición. El diagrama debería verse así:
  1. Dentro de la región de Temperature Control , agregue dos estados adicionales llamados Heating Cooling. Estos estados deben estar conectados por una transición. Dentro de esta región, debe agregar un pseudoestado inicial y una transición. El diagrama ahora debería verse así:
  1. Fuera del estado del controlador, agregue un pseudoestado de Terminal. Agregue una transición del estado del controlador al terminal y una transición del estado de enfriamiento al bloque de terminales. El diagrama debe verse como la imagen de abajo. Este es el diagrama de estado completo para su aplicación.
 

Implementación de código

Con su diagrama completo, ahora puede implementar su código de LabVIEW en el diagrama de estado.

  1. Haga clic con el botón derecho en la transición que ingresa al estado de calefacción . Seleccione Configure Transition .
  2. En el cuadro de diálogo Configurar estado, en la pestaña Acción , conecte Inputs.Current Temperature a StateData . Temperature
  1. Haga clic con el botón derecho en el estado de Heating . Seleccione Configure State .
  2. En el cuadro de diálogo Configurar estado, cree una reacción estática presionando el botón Create en la parte inferior izquierda de la ventana. Seleccione la reacción estática recién creada y navegue hasta la pestaña Acción. Dentro de la pestaña de acción, agregue el valor de 1 a StateData.Temperature . Conecte este valor a StateData.Temperature y Output.Temperature Haga clic en OK.
  1. Ahora agregue código a las transiciones entre Calefacción y Refrigeración. Este código determina cuándo ocurre la transición entre calefacción y refrigeración. Haga clic con el botón derecho en la transición y seleccione " Configure Transition ... "
  2. Seleccione la pestaña Guard. Cambie las entradas para que sean StateData.Temperature y Inputs.High Temp . Determine si la temperatura de los datos del estado es mayor o igual a la temperatura alta. Conecte la salida de la comparación a Execute? terminal. Si la temperatura actual es mayor o igual que la temperatura alta, pasa al estado de enfriamiento. Haga clic en OK .
  1. Configure el estado de Cooling . Haga clic con el botón derecho en el estado de refrigeración y seleccione Configure State ... Dentro del cuadro de diálogo Configurar estado, seleccione StateData.Temperature . Reste 1 del valor y conecte a StateData.Temperature y Output.Temperature .
  1. Configure la transición dejando el estado de enfriamiento. Haga clic con el botón derecho en la transición y seleccione Configurar transición . En el código de protección, determine si StateData . La temperatura es menor o igual que la entrada . Baja temperatura . Si esto es cierto, la transición debería ejecutarse. Conecte la salida de esta comparación a Execute? terminal.
  1. Configure la transición dejando el estado del controlador y terminando en el estado del terminal. En el código de protección, conecte Input.Stop a Execute? terminal.
  1. Ahora el diagrama de estado está completo con la funcionalidad que necesita. El paso final es generar el código para el diagrama de estado haciendo clic en el botón Generate LabVIEW code for this Statechart.
 

Integrando el Statechart en su aplicación

Ha completado su cuadro de estado. Luego, llame y ejecute su diagrama de estado desde su aplicación de LabVIEW.

  1. Desde la ventana Explorador de proyectos, cree un nuevo VI.
  1. En el diagrama de bloques, en la paleta Statechart >> Statechart Communication , seleccione Run Statechart.vi .
  1. Haga clic con el botón derecho en Run Statechart.vi y seleccione Link to Statechart . Enlace al diagrama de estado del monitor de temperatura que acabamos de crear.
  2. Haga clic con el botón derecho en la terminal de entrada para Run Statechart.vi y cree un control.

  1. Cambie al panel frontal y agregue un Waveform Graph a la interfaz de usuario.
  1. Regrese al diagrama de bloques. Haga clic con el botón derecho en el terminal de salida Run Statechart.vi y seleccione Cluster, Class, & Variant Palette >> Unbundle by Name .
  1. Conecte la salida de Unbundle by Name al gráfico de forma de onda. Coloque un ciclo cronometrado alrededor del código. Conectar la terminal Terminated? desde Run Statechart.vi hasta la parada del bucle while.
  1. Haga clic con el botón derecho en Execute Statechart.vi y seleccione Configure ... En el cuadro de diálogo de configuración, en Statechart Diagram State , marque Show Terminal? casilla de verificación.
  1. Cree un indicador para el terminal Diagram Display del Run Statechart.vi . El código completo debe tener el siguiente aspecto:
  1. Ingrese los valores de temperatura actual, temperatura alta y temperatura baja y ejecute el VI. El panel frontal completo debe verse como sigue.

Más información y ejemplos

Estos son algunos ejemplos empaquetados de aplicaciones creadas con el LabVIEW Statechart Module:

  • Fan Demo (Asynchronous): la demostración de ventilador de techo que utiliza arquitecturas asíncronas.
  • SPI Statechart Demo: protocolo SPI desarrollado utilizando statecharts.
  • PackML - Modelo de máquina de lenguaje de máquina de paquetes.

Para más ejemplos de envío, en LabVIEW, vaya a la opción de menú Help >> Find Examples... para abrir el Buscador de ejemplos.
Busque en Toolkits and Modules >> Statechart para encontrar ejemplos adicionales de statechart.