Main Content

Modificar el lenguaje de acción de un gráfico

Los gráficos de Stateflow® en los modelos de Simulink® tienen una propiedad de lenguaje de acción que define la sintaxis de las acciones de estado y transición. Un icono en la esquina inferior izquierda del área de trabajo del gráfico indica el lenguaje de acción del gráfico.

  • MATLAB® como lenguaje de acción.

  • C como lenguaje de acción.

Puede cambiar el lenguaje de acción de un gráfico en el cuadro Action Language del cuadro de diálogo de propiedades del gráfico. Para obtener más información, consulte Diferencias entre C y MATLAB como sintaxis de lenguaje de acción.

Cambiar el lenguaje de acción predeterminado

MATLAB es la sintaxis del lenguaje de acción predeterminado de los gráficos nuevos de Stateflow. Para crear un gráfico que utilice C como lenguaje de acción, introduzca:

sfnew -C

Para cambiar el lenguaje de acción predeterminado de los gráficos nuevos, utilice la función sfpref. Por ejemplo, para establecer C como lenguaje de acción de los gráficos nuevos, introduzca:

sfpref(ActionLanguage="C");

Corrección automática cuando se usa MATLAB como lenguaje de acción

Los gráficos de Stateflow que utilizan MATLAB como lenguaje de acción corrigen automáticamente los constructos de C comunes a la sintaxis de MATLAB:

  • Operaciones de aumento y disminución como a++ y a--. Por ejemplo, a++ se cambia a a = a+1.

  • Operaciones de asignación como a += b, a –= b, a *= b y a /= b. Por ejemplo, a += b se cambia a a = a+b.

  • Operaciones de evaluación como a != b y !a. Por ejemplo, a != b se cambia a a ~= b.

  • Los marcadores de comentarios // y /* */ se cambian a %.

Para desactivar esta preferencia, utilice la función sfpref:

sfpref(EnableLabelAutoCorrectionForMAL=false);

Conversión de la sintaxis de C a MATLAB

En el caso de los gráficos no vacíos, después de cambiar la propiedad del lenguaje de acción de C a MATLAB, aparece una notificación en la parte superior del gráfico. La notificación ofrece la opción de convertir parte de la sintaxis de C a la sintaxis de MATLAB. En la notificación, haga clic en el enlace para que Stateflow convierta la sintaxis en el gráfico. Los constructos de la sintaxis de C que se convierten incluyen los siguientes:

  • Indexación de base cero.

  • Operaciones de aumento y disminución como a++ y a--. Por ejemplo, a++ se cambia a a = a+1.

  • Operaciones de asignación como a += b, a –= b, a *= b y a /= b. Por ejemplo, a += b se cambia a a = a+b.

  • Operaciones binarias como a %% b, a >> b y a << b. Por ejemplo, a %% b se cambia a rem(a,b).

  • Operaciones bit por bit como a ^ b, a & b y a | b. Por ejemplo, si se selecciona la propiedad del gráfico Enable C-bit operations, a ^ b se cambia a bitxor(a,b).

  • Marcadores de comentarios de estilo C. Por ejemplo, // y /* */ se cambian a %.

Si el gráfico contiene constructos de C que no pueden convertirse a MATLAB, Stateflow muestra un mensaje en un cuadro de diálogo. Haga clic en el enlace de advertencias para mostrar las advertencias en Diagnostic Viewer. Elija si desea continuar con la conversión de la sintaxis admitida o no. Los constructos de C no convertidos a MATLAB incluyen los siguientes:

  • Conversiones de tipos explícitas con cast y type

  • Operadores como &, * y :=

  • Datos personalizados

  • Acceso a variables del área de trabajo con el operador ml

  • Funciones no admitidas en la generación de código

  • Notación hexadecimal y de precisión simple

  • Constantes contextuales

Consulte también

Temas relacionados