Main Content

Gestionar los símbolos en el editor de Stateflow

En el panel Symbols, puede visualizar y gestionar datos, eventos y mensajes mientras trabaja en el editor de Stateflow®. En la pestaña Modeling, seleccione Symbols Pane.

Desde el panel Symbols puede:

  • Añadir y eliminar datos, eventos y mensajes.

  • Establecer el tipo de objeto y ámbito.

  • Cambiar el número de puerto.

  • Editar el nombre de un objeto y actualizar todas las referencias al nombre del objeto en el gráfico.

  • Deshacer y rehacer cambios en el tipo, el nombre y el número de puerto.

  • Detectar objetos no utilizados.

  • Detectar y corregir objetos no resueltos.

  • Relacionar objetos en la ventana con el lugar donde se utilizan en el gráfico.

  • Visualizar y editar propiedades de objetos en Property Inspector.

Symbols pane showing input, output, and local data, an input event, and an output message.

Las filas del panel Symbols muestran la jerarquía de objetos. Expanda un objeto en la ventana para ver sus datos, eventos y mensajes jerárquicamente organizados bajo ese objeto. De forma predeterminada, todos los objetos no gráficos de un diagrama se enumeran en la ventana. Para visualizar únicamente los objetos que se utilizan en el nivel actual de la jerarquía y en niveles inferiores, seleccione el icono . Para buscar símbolos específicos, escriba en el cuadro de búsqueda Filter .

Añadir y modificar datos, eventos y mensajes

Para añadir un objeto no gráfico a un bloque de Stateflow, en el panel Symbols:

  1. Seleccione uno de estos iconos.

    IconoDescripción
    Añadir datos
    Añadir evento
    Añadir mensaje

  2. En la fila del objeto nuevo, en TYPE, seleccione el tipo de objeto.

  3. Edite el nombre del objeto.

  4. Para objetos de entrada y de salida, en PORT, seleccione un número de puerto.

  5. Para visualizar el objeto en Property Inspector, haga clic con el botón secundario en el objeto y seleccione Inspect.

  6. En Property Inspector, modifique las propiedades del objeto.

Después de añadir objetos con el panel Symbols, aparecerán como no utilizados hasta que los utilice en el diseño de Stateflow.

En el panel Symbols, puede modificar el nombre, tipo y número de puerto de los objetos de Stateflow. Edite el nombre de los objetos en el campo NAME. Cuando modifique el nombre de un objeto, seleccione Mayús + Intro para modificar el nombre de todas las referencias al objeto en todo el gráfico. Para cambiar el tipo o el número de puerto de un objeto, haga clic en el campo correspondiente y seleccione una de las opciones disponibles. Para eliminar un objeto, haga clic con el botón secundario en el objeto y seleccione Delete.

Detectar datos no utilizados en el panel Symbols

El panel Symbols indica los datos, mensajes, funciones y eventos no utilizados con un icono de advertencia amarillo . Puede resolver símbolos no definidos utilizando el panel Symbols o Symbol Wizard.

Symbols pane showing unused data.

El panel Symbols no detecta entradas ni salidas de funciones o parámetros de MATLAB® en subgráficos atómicos.

Para eliminar objetos no utilizados, haga clic con el botón secundario en el objeto en el panel Symbols y seleccione Delete. Eliminar objetos que no formar parte de la simulación ayuda a reducir el tamaño del modelo. En este gráfico, después de añadir data, aparece como no utilizado. Después de hacer referencia a data en el gráfico, el signo de advertencia desaparece.

Resolver símbolos con el panel Symbols

Los símbolos que aparecen en el gráfico, pero que no se han añadido como datos, eventos o mensajes, están no definidos o no resueltos. A medida que edita el gráfico, Stateflow detecta símbolos no definidos y los marca en el panel Symbols con un icono de error rojo .

En cada símbolo no definido, el panel Symbols muestra la clase y el ámbito inferidos del uso en el gráfico. Puede resolver símbolos no definidos de manera individual o en conjunto.

  • Para definir un símbolo con la clase y el ámbito inferidos, haga clic en el icono de error y seleccione Fix.

  • Para definir un símbolo con una clase o alcance diferentes, seleccione otra clase y ámbito de la lista desplegable TYPE.

  • Para resolver todos los símbolos no definidos con sus clases y ámbitos inferidos, haga clic en el botón Resolve undefined symbols .

Symbols pane showing unresolved data, events, and messages.

Resolver símbolos con Symbol Wizard

Si el gráfico contiene símbolos no definido cuando actualiza un modelo o gráfico, o simula un modelo, Symbol Wizard se abre y enumera los símbolos no definidos. En cada símbolo no definido, las columnas Class y Scope muestran la clase y el ámbito inferidos a partir del uso en el gráfico. Puede aceptar, modificar o rechazar la definición de cada símbolo que sugiera Symbol Wizard.

  • Para aceptar una definición con la clase y el ámbito inferidos, active la casilla junto al símbolo.

  • Para modificar una definición, seleccione una clase o ámbito diferente de las listas desplegables Class o Scope.

  • Para rechazar una definición, desactive la casilla junto al símbolo.

Después de editar las definiciones de los símbolos, añada los símbolos a la jerarquía de Stateflow haciendo clic en OK.

Symbols wizard showing unresolved data, events, and messages.

Detectar definiciones de símbolos en código personalizado

La detección de símbolos definidos en código personalizado depende del parámetro de configuración del modelo Import custom code.

  • Si selecciona Import custom code, el analizador sintáctico de Stateflow intenta encontrar símbolos no resueltos del gráfico en el código personalizado. Si el código personalizado no define estos símbolos, aparecen en Symbol Wizard.

  • Si no selecciona Import custom code, el analizador sintáctico de Stateflow considera los símbolos de datos no resueltos del gráfico como definidos en el código personalizado. Si el código personalizado no define estos símbolos, la simulación y la generación de código a partir del modelo genera un error.

La opción Import custom code no está disponible para gráficos que utilizan MATLAB como lenguaje de acción. Para obtener más información, consulte Import custom code (Simulink).

Trazabilidad de datos, eventos y mensajes

Stateflow ofrece trazabilidad entre el gráfico y los símbolos no gráficos. Cuando selecciona un símbolo en el panel Symbols, Stateflow resalta secciones del gráfico que acceden a ese símbolo. Cuando selecciona un objeto en el gráfico, Stateflow resalta los símbolos que utiliza el objeto.

Para controlar cuándo se resaltan los objetos y los símbolos, seleccione el botón de preferencia . Aparece un menú desplegable.

Symbols pane preference menu.

Para que Stateflow resalte los símbolos del panel Symbols que utiliza un objeto, seleccione Highlight used symbols. Si desea que Stateflow resalte los objetos del gráfico que usan un símbolo, seleccione Highlight uses on diagram. Con Highlight uses on diagram, puede elegir que se resalten:

  • Todos los usos del símbolo de un gráfico.

  • Los objetos a partir de los que se lee el símbolo.

  • Los objetos en los que se escribe el símbolo.

Nota

Utilice la opción Update value column during simulation para permitir que los valores mostrados en el panel Symbols se actualicen durante la simulación.

Por ejemplo, abra el modelo sf_tetris2.

openExample("stateflow/TetrisExample")

Haga doble clic en el gráfico TetrisLogic. En el panel Symbols, cuando selecciona la constante ARENA_HEIGHT, los estados y funciones que usan ARENA_HEIGHT se resaltan.

Chart highlighting objects that use the constant ARENA_HEIGHT.

Para ver los usos de la constante ARENA_HEIGHT, abra la función freeze.

Graphical function highlighting a transition that uses the constant ARENA_HEIGHT.

También puede seleccionar un objeto gráfico como un estado, transición o función en el gráfico y visualizar los símbolos que utiliza el objeto. Por ejemplo, en el gráfico TetrisLogic, expanda el símbolo MainArea en el panel Symbols. Si selecciona el estado FreezeShape en el gráfico, los datos locales shape y la función freeze() se resaltan en el panel Symbols. Esto indica que esos objetos se usan dentro del estado FreezeShape.

Symbols pane highlighting symbols used in the state Draw.

En el modo de depuración, los valores de cada dato se muestran en la columna VALUE del panel Symbols. Stateflow actualiza los valores periódicamente cuando se está ejecutando la simulación. La columna de valores resalta los cambios en los valores de los datos a medida que se producen los cambios. Cuando el depurador se detiene en un punto de interrupción, puede actualizar el valor inicial o cambiar el valor de un símbolo tanto en la línea de comandos como en el panel Symbols.

Datos o mensajeActualizar valor inicialActualizar durante la depuración
EntradaNoNo
Salida
ParámetroNoNo
ConstanteNo
Memoria de almacenamiento de datosNo
Local

En elementos de bus, puede cambiar el valor de un símbolo tanto en la línea de comandos como en el panel Symbols.

Elemento de busActualizar valor inicialActualizar durante la depuración
EntradaNoNo
SalidaNo
ParámetroNoNo
ConstanteNoNo
Memoria de almacenamiento de datosNo
LocalNo

En el panel Symbols, los arreglos multidimensionales aparecen como el tipo de datos y el tamaño del arreglo. Si el arreglo no tiene más de 100 elementos, mantenga el cursor sobre el símbolo para visualizar los elementos. En el caso de arreglos que contienen más de 100 elementos, utilice la línea de comandos para ver los elementos.

Cuando la simulación esté pausada, mantenga el cursor sobre los mensajes en el área de diseño para visualizar las cargas en cola. Esto es similar a la funcionalidad del cursor sobre el área de diseño. Para otros objetos no escalares, aparecen el tamaño y el tipo de datos. Para ver estos valores, use la ventana Watch. Consulte Inspect and Modify Data and Messages While Debugging y Track Data in the Watch List.

Symbols pane showing values during simulation.

Limitaciones del panel Symbols

  • No se pueden añadir datos, eventos o mensajes al panel Symbols si están jerárquicamente organizados bajo un estado o función. Para añadir estos tipos de objetos, utilice Model Explorer.

  • Cuando modifica el código de una función de MATLAB, los cambios no se actualizan en el panel Symbols hasta que no se guarda la función de MATLAB.

  • No se pueden deshacer o rehacer los cambios en una entrada y salida en funciones de MATLAB.

  • No se pueden recuperar datos, eventos o mensajes eliminados de una tabla de transición de estados.

  • No se pueden deshacer los cambios en el ámbito de datos jerárquicamente organizados bajo funciones gráficas, funciones de MATLAB y tablas de verdad como elemento principal.

  • No se puede deshacer el cambio de nombre de un objeto en tablas de verdad.

  • Cuando elimina datos de objetos contenidos en un estado basado en Simulink, el objeto permanece en el estado basado en Simulink y el símbolo de los datos se muestra como no definido en el panel Symbols.

Temas relacionados