Main Content

La traducción de esta página aún no se ha actualizado a la versión más reciente. Haga clic aquí para ver la última versión en inglés.

Detectar errores de modelado en tiempo de edición

Cuando la comprobación en tiempo de edición está activada, el editor de Stateflow® detecta posibles errores y advertencias mientras trabaja en su gráfico. Si se solucionan estos problemas al principio del proceso de diseño, se pueden evitar las advertencias y los errores en tiempo de compilación o de ejecución.

El editor de Stateflow resalta los objetos que no pasan las comprobaciones en tiempo de edición en rojo (errores) o en naranja (advertencias). Cuando se selecciona un objeto que está resaltado y se hace clic en el indicador de error o advertencia, se muestra información sobre los detalles y las posibles soluciones.

Gestionar las comprobaciones en tiempo de edición

De forma predeterminada, las comprobaciones en tiempo de edición y el resaltado de errores de sintaxis están activados. Para desactivar las comprobaciones en tiempo de edición, en la ficha Debug, desactive la casilla Diagnostics > Edit-Time Errors & Warnings. Las comprobaciones en tiempo de edición también se pueden desactivar con edittime.setDisplayIssues (Simulink).

En esta tabla se enumeran las comprobaciones en tiempo de edición que tienen un parámetro de configuración de diagnóstico asociado en el panel Diagnostics > Stateflow del cuadro de diálogo Configuration Parameters.

Puede controlar el nivel de acción de diagnóstico de estas comprobaciones en tiempo de edición estableciendo el valor de su parámetro de configuración en error, warning o none. Cuando se modifica el ajuste de un parámetro de configuración, también cambia el nivel de diagnóstico de las correspondientes comprobaciones en tiempo de edición. Por ejemplo, si se define el parámetro de configuración Unreachable execution path como none, el editor de Stateflow no resalta las transiciones pendientes, los estados inaccesibles o el sombreado de transiciones.

Comprobaciones en tiempo de edición de estados y subgráficos

Atomic subchart contains state actions

  • Problema: No se admiten acciones de estado en los subgráficos atómicos.

  • Nivel de diagnóstico: Error.

  • Solución: Elimine las acciones de estado o muévalas a un subestado del subgráfico atómico.

    Atomic subchart that contains state actions.

Default transition is missing

  • Problema: En un gráfico o estado con descomposición exclusiva (OR) y al menos dos subestados o intersecciones, se requiere una transición predeterminada para indicar dónde se inicia la ejecución.

  • Nivel de diagnóstico: Error.

  • Solución: Especifique un estado inicial añadiendo una transición predeterminada. Para obtener más información, consulte Usar transiciones predeterminadas para especificar la actividad del subestado inicial.

    Chart with no default transition.

Graphical function contains a state

  • Problema: Dado que las funciones gráficas se ejecutan completamente en una sola unidad de tiempo, no deben contener ningún estado.

  • Nivel de diagnóstico: Error.

  • Solución: Remplace los estados con intersecciones. Para obtener más información, consulte Reuse Logic Patterns by Defining Graphical Functions.

    Graphical function that contains a state.

Invalid intersection

  • Problema: Los estados e intersecciones no deben superponerse en el editor de Stateflow.

  • Nivel de diagnóstico: Error.

  • Solución: Evite los cruces separando los estados y las intersecciones.

    Invalid intersection between states.

Monitoring leaf or child state activity of parallel states

  • Problema: Los gráficos y estados con descomposición paralela (AND) no admiten la supervisión de la actividad de los estados secundarios porque los subestados paralelos están activos simultáneamente.

  • Nivel de diagnóstico: Advertencia.

  • Solución: Abra Property Inspector o Model Explorer. Desactive la casilla Create output for monitoring o seleccione Self activity en la lista desplegable. Para obtener más información, consulte Monitor State Activity Through Active State Data.

    Parallel substates in a state that monitors child state activity.

State contains a syntax error

  • Problema: Una acción de estado no sigue las reglas de sintaxis de Stateflow. El editor de Stateflow destaca los errores de sintaxis con una línea roja ondulada. Consulte también Transition Contains a Syntax Error.

  • Nivel de diagnóstico: Error.

  • Solución: Corrija el error de sintaxis en la acción de estado. Para obtener más información, consulte Definir acciones en un estado.

    State that contains a syntax error.

    Nota

    En el gráfico principal, los subgráficos con errores de sintaxis se resaltan en rojo y un indicador de error destaca el problema de sintaxis. En el editor de subgráficos, el error de sintaxis aparece subrayado en rojo, pero no hay ningún indicador de problema.

Unreachable state

  • Problema: Un estado es inaccesible cuando ninguna ruta de ejecución válida conduce a él.

  • Nivel de diagnóstico: Depende del parámetro de configuración Unreachable execution path (Simulink).

  • Solución: Conecte el estado inaccesible con una transición desde un origen accesible.

    Chart that contains an unreachable state.

Comprobaciones en tiempo de edición de las transiciones

Dangling transition

Default transition path does not terminate in a state

  • Problema: En gráficos o estados con descomposición exclusiva (OR) y al menos un subestado:

    • Cada rama de la ruta de transición predeterminada debe conducir a un subestado.

    • Debe haber una rama de la ruta de transición predeterminada que no esté protegida por una condición o activada por un evento.

  • Nivel de diagnóstico: Depende del parámetro de configuración No unconditional default transitions (Simulink).

  • Solución: Termine cada rama de la ruta de transición predeterminada en un subestado. Asegúrese de que una de las ramas de la ruta de transición predeterminada no esté protegida por una condición o activada por un evento.

    Chart without an unconditional default transition branch to a state.

Invalid default transition path

  • Problema: Una ruta de transición predeterminada no debe salir del estado principal.

  • Nivel de diagnóstico: Error.

  • Solución: Cambie la ruta de transición predeterminada para que permanezca dentro del estado principal.

    Chart with an invalid default transition path.

Transition contains a syntax error

  • Problema: En una transición, una acción o condición no sigue las reglas de sintaxis de Stateflow. El editor de Stateflow destaca los errores de sintaxis con una línea roja ondulada. Consulte también State Contains a Syntax Error.

  • Nivel de diagnóstico: Error.

  • Solución: Corrija el error de sintaxis en la acción o condición de transición. Para obtener más información, consulte Definir acciones en una transición.

    Transition that contains a syntax error.

Transition action precedes a condition action along this path

  • Problema: Cuando una transición con una acción de transición va seguida de otra transición con una acción de condición, las acciones no se ejecutan en el orden de las transiciones. Los gráficos de Stateflow ejecutan acciones de condición cuando la condición asociada se evalúa como verdadera. Por el contrario, los gráficos ejecutan las acciones de transición solo cuando la ruta de transición se ejecuta por completo. Como consecuencia, un gráfico toma una ruta de transición y las acciones de condición ocurren antes que las de transición.

  • Nivel de diagnóstico: Depende del parámetro de configuración Transition action specified before condition action (Simulink).

  • Solución: Coloque la acción de transición después de la última acción de condición de la ruta.

    Transition path in which a transition action precedes a condition action.

Transition begins or ends in a parallel state

  • Problema: En los gráficos y estados con descomposición paralela (AND), todos los subestados afines están activos o inactivos al mismo tiempo.

  • Nivel de diagnóstico: Advertencia.

  • Solución: Elimine las transiciones o cambie la descomposición del estado principal a exclusiva (OR).

    Transitions that begin or end in a parallel states.

Transition connects to a box

  • Problema: Las transiciones deben conectarse solo con estados e intersecciones.

  • Nivel de diagnóstico: Error.

  • Solución: Mueva o elimine las transiciones unidas al cuadro.

    Chart with a transition that connects to a box.

Transition crosses parallel states

  • Problema: Los gráficos independientes de MATLAB® no admiten transiciones que crucen el límite de un estado paralelo.

  • Nivel de diagnóstico: Error.

  • Solución: Elimine el cruce de transición hacia o desde estados paralelos.

    Standalone chart with a transition that crosses the boundary of a parallel state.

Transition enters or exits graphical function

  • Problema: Las transiciones no deben entrar o salir de una función gráfica. Los diagramas de flujo de las funciones gráficas deben estar completamente contenidos dentro de la función.

  • Nivel de diagnóstico: Error.

  • Solución: Elimine la transición que entra o sale de la función gráfica.

    Chart containing transitions that enter and exit a graphical function.

Transition is not connected to entry/exit port

  • Problema: La transición no está conectada al puerto de entrada o salida cerca de su origen o destino.

  • Nivel de diagnóstico: Advertencia.

  • Solución: Conecte la transición al puerto o mueva su origen o destino a una ubicación diferente.

    Entry port that is located near the destination point of a default transition.

Transition loops outside natural parent

  • Problema: Si una transición sale del estado principal entre el origen y el destino, el gráfico ejecuta las acciones exit y entry en el estado principal antes de que el estado de destino se convierte en activo .

  • Nivel de diagnóstico: Depende del parámetro de configuración Transition outside natural parent (Simulink).

  • Solución: Mueva la transición para que esté contenida en el estado principal.

    Transition between substates that goes outside the boundary of the parent state.

Transition shadowing

  • Problema: Cuando una transición incondicional se ejecuta antes que otras transiciones que salen del mismo origen, impide que se ejecuten las otras transiciones.

  • Nivel de diagnóstico: Depende del parámetro de configuración Unreachable execution path (Simulink).

  • Solución: No cree más de una transición incondicional desde cada estado o intersección. Especifique explícitamente que la transición incondicional se ejecute después de cualquier transición con condiciones. Para obtener más información, consulte Transition Evaluation Order.

    Chart with an unconditional transition that shadows a conditional transition.

Unconditional path out of state with during actions or child states

  • Problema: Las transiciones incondicionales que conducen a la salida de un estado impiden la ejecución de las acciones during en el estado y las transiciones entre estados secundarios.

  • Nivel de diagnóstico: Depende del parámetro de configuración Transition outside natural parent (Simulink).

  • Solución: Añada una condición a la transición o elimine las acciones during y los estados secundarios del estado.

    Chart with one transition out of a state with during actions and another transition out of a state with child states.

Comprobaciones en tiempo de edición de las intersecciones

Cycle contains transitions with transition actions

  • Problema: Los ciclos no deben contener transiciones con acciones de transición.

  • Nivel de diagnóstico: Error.

  • Solución: Elimine la acción de transición o elimine el ciclo borrando una transición.

    Flow chart with a transition action in a cycle.

Invalid history junction

  • Problema: Una intersección histórica no es válida cuando:

    • La intersección histórica está contenida en el nivel de gráfico de la jerarquía.

    • La intersección histórica está contenida en un estado con descomposición paralela (AND).

    • La intersección histórica está contenida en una función gráfica.

    • Hay varias intersecciones históricas contenidas en el mismo estado.

    • La intersección histórica es el origen de una transición.

  • Nivel de diagnóstico: Error.

  • Solución: Elimine la intersección histórica del nivel de gráfico de la jerarquía, de un estado con descomposición paralela (AND) o de una función gráfica. Elimine todas las intersecciones históricas del estado excepto una. Mueva el origen de transición a una intersección conectiva o a un estado. Para obtener más información, consulte Reanudar la actividad de un subestado previo con intersecciones históricas.

    Chart that contains an invalid history junction.

Junction has no unconditional escape from cycle

  • Problema: Una intersección debe tener una ruta de salida incondicional de un ciclo a un estado o intersección de terminación.

  • Nivel de diagnóstico: Error.

  • Solución: Cree una ruta incondicional desde la intersección hasta un estado o intersección de terminación.

    Junction with no unconditional escape from a cycle.

Transition paths from same source have different parents

  • Problema: las rutas de transición comienzan en el mismo estado de origen, pero tienen elementos principales diferentes.

  • Nivel de diagnóstico: Error.

  • Solución: modificar las rutas de transición para que tengan el mismo elemento principal.

    Junction with two incoming transition paths from the same source but with different parents.

Unexpected backtracking

  • Problema: Se puede producir un retroceso inesperado de las estructuras de control cuando varias rutas de transición del mismo origen conducen a una intersección y esta no tiene una ruta incondicional a un estado o intersección de terminación.

  • Nivel de diagnóstico: Depende del parámetro de configuración Unexpected backtracking (Simulink).

  • Solución: Cree una ruta incondicional desde la intersección hasta un estado o intersección de terminación. Para obtener más información, consulte Backtrack in Flow Charts.

    Por ejemplo, la intersección resaltada en este gráfico no tiene una ruta incondicional al estado A. Si ConditionA y ConditionB son verdaderas y ConditionC es falsa, el gráfico retrocede hasta la primera intersección de la ruta varias veces. Como resultado, el gráfico ejecuta las tres acciones de condición.

    Chart with unexpected backtracking.

    Para evitar el retroceso, se combinan las condiciones y se crea una ruta incondicional desde la segunda intersección hasta el estado de destino. Después del cambio, el gráfico ejecuta una sola acción de condición.

    Chart with no unexpected backtracking.

Unreachable junction

  • Problema: Una intersección es inaccesible cuando ninguna ruta de ejecución válida conduce a ella.

  • Nivel de diagnóstico: Depende del parámetro de configuración Unreachable execution path (Simulink).

  • Solución: Conecte la intersección inaccesible con una transición desde un origen accesible.

    Chart that contains an unreachable junction.

Comprobaciones en tiempo de edición de las funciones

Function is unused

  • Problema: Una función no se utiliza en un gráfico cuando no hay instrucciones que llamen a la función.

  • Nivel de diagnóstico: Advertencia.

  • Solución: Llame a la función desde una acción de estado o transición o desde otra función.

    Chart containing an unused function.

Invalid use of keywords as function arguments

  • Problema: Una definición de función utiliza una palabra clave reservada como argumento.

  • Nivel de diagnóstico: Error.

  • Solución: Cambie el nombre del argumento de la función. Para ver una lista de palabras clave reservadas, consulte Directrices para nombrar objetos de Stateflow.

    Function that uses a reserved keyword as an argument.

Comprobaciones en tiempo de edición de los puertos de entrada y salida

Entry junctions must have an unconditional path to a state

  • Problema: Una intersección de entrada debe tener una ruta de transición que no esté protegida por una condición o activada por un evento.

  • Nivel de diagnóstico: Error.

  • Solución: Añada una ruta incondicional desde la intersección de entrada hasta el estado.

    Entry junction that connects to a single conditional path to a state.

Entry junctions must have outgoing transitions

  • Problema: Una intersección de entrada no conecta con una ruta de transición saliente

  • Nivel de diagnóstico: Error.

  • Solución: Una las transiciones a la intersección de entrada o elimine la intersección.

    Entry junction that does not connect to a transition path.

Exit ports must have an unconditional path to a state

  • Problema: Un puerto de salida debe tener una ruta de transición que no esté protegida por una condición o activada por un evento.

  • Nivel de diagnóstico: Error.

  • Solución: Añada una ruta incondicional desde el puerto de salida hasta el estado.

    Exit port that connects to a single conditional path to a state.

Exit ports must have outgoing transitions

  • Problema: Un puerto de salida no se conecta a una ruta de transición saliente.

  • Nivel de diagnóstico: Error.

  • Solución: Una las transiciones al puerto de salida o elimine el puerto.

    Exit port that does not connect to a transition path.

Invalid entry or exit junction

  • Problema: Las intersecciones de entrada y de salida solo se admiten en los estados exclusivos (OR) y en los subgráficos atómicos.

  • Nivel de diagnóstico: Error.

  • Solución: Mueva la intersección a un estado exclusivo (OR) o a un subgráfico atómico, o bien elimínela.

    Entry and exit junctions in parallel (AND) states.

Missing entry or exit junction

  • Problema: Un puerto de entrada o de salida debe tener una intersección de entrada o de salida correspondiente.

  • Nivel de diagnóstico: Error.

  • Solución: Elimine el puerto o cree una intersección correspondiente con la misma etiqueta.

    Entry and exit ports that do not have a matching junction.

Multiple entry or exit junctions with same label

  • Problema: Las intersecciones de entrada y de salida del mismo estado principal deben tener etiquetas únicas.

  • Nivel de diagnóstico: Error.

  • Solución: Elimine una de las intersecciones o cambie una de las etiquetas.

    Two entry junctions that have the same label in1.

Path from entry junction contains a terminal junction

  • Problema: Todas las rutas desde una intersección de entrada deben llevar a un estado.

  • Nivel de diagnóstico: Error.

  • Solución: Remplace la intersección terminal por un estado.

    Entry junction that connects to a terminal junction.

Path from exit port contains a terminal junction

  • Problema: Todas las rutas desde un puerto de salida deben llevar a un estado.

  • Nivel de diagnóstico: Error.

  • Solución: Remplace la intersección terminal por un estado.

    Exit port that connects to a terminal junction.

Transition path from an entry junction to a history junction

  • Problema: Las rutas de transición desde las intersecciones de entrada no deben conectar con las intersecciones históricas.

  • Nivel de diagnóstico: Error.

  • Solución: Elimine la ruta desde la intersección de entrada hasta la intersección histórica.

    Entry junction that connects to a history junction.

Transition path from an inner transition to an exit junction

  • Problema: Las rutas de transición internas no deben conectar con una intersección de salida.

  • Nivel de diagnóstico: Error.

  • Solución: Elimine la ruta desde la transición interna hasta la intersección de salida.

    State that contains an inner transition to an exit port.

Transition path from entry junction or to exit junction must be contained in parent

  • Problema: Las rutas de transición que empiezan en las intersecciones de entrada o que terminan en las intersecciones de salida deben estar contenidas en el estado principal.

  • Nivel de diagnóstico: Error.

  • Solución: Modifique la ruta de transición para que esté contenida en el estado principal.

    Transition path that exits and re-enters a state before connecting to an exit junction.

Unreachable port or junction

  • Problema: Un puerto o una intersección son inaccesibles cuando ninguna ruta de ejecución válida conduce a ellos.

  • Nivel de diagnóstico: Depende del parámetro de configuración Unreachable execution path (Simulink).

  • Solución: Conecte el puerto de entrada o la intersección de salida inaccesibles con una transición desde un origen accesible.

    Chart that contains an unreachable entry junction and port.

Temas relacionados