Skip to main content

Banderas SFC

Las banderas SFC son variables creadas implícitamente con nombres predefinidos que proporcionan funciones para controlar y diagnosticar diagramas SFC. Estas banderas le permiten activar transiciones de forma selectiva.

Por ejemplo

  • Detectar tiempos de espera

  • Restablecer cadenas de pasos

  • Activar el modo paso a paso

Para acceder a estas variables, se deben declarar y activar las banderas correspondientes.

Nombre

Tipo de datos

Descripción

SFCInit

BOOL

TRUE: Restablece la secuencia al paso inicial. Las demás banderas SFC también se restablecen (inicialización). Mientras la variable sea TRUE, el paso inicial permanece establecido (activo), pero no se ejecuta. La POU solo se procesa con normalidad después de volver a establecer SFCInit en FALSE.

SFCReset

BOOL

Se comporta de forma similar a SFCInit

En cambio, después de la inicialización, el paso inicial se sigue ejecutando. Por ejemplo, en el paso inicial puede volver a establecer inmediatamente la bandera SFCReset en FALSE.

SFCError

BOOL

Pasa a ser TRUE cuando se ha producido un tiempo de espera en un diagrama SFC.

Si después del primer tiempo de espera se produce otro en el programa, solo se detecta si la variable SFCError se ha restablecido previamente. De lo contrario, la bandera permanece establecida y no se registran tiempos de espera adicionales.

La declaración de SFCError es necesaria para que funcionen las demás variables de bandera para la supervisión de los tiempos: SFCErrorStep, SFCErrorPOU, SFCQuitError

SFCEnableLimit

BOOL

Se utiliza para la activación (TRUE) y desactivación (FALSE) selectivas del control de tiempos de espera en los pasos mediante SFCError

Si declara y activa esta variable (configuración de SFC), también debe establecerla en TRUE para que SFCError funcione; de lo contrario, se ignoran los tiempos de espera. Esto puede resultar útil, por ejemplo, durante la puesta en marcha o en el funcionamiento manual. Si no declara la variable, SFCError funciona automáticamente.

El requisito es la declaración de SFCError.

SFCErrorStep

STRING

Almacena el nombre del paso que ha provocado un tiempo de espera registrado por SFCError

El nombre se conserva hasta que el error de paso registrado se restablece mediante SFCQuitError (FALSE -> TRUE).

El requisito es la declaración de SFCError.

SFCErrorPOU

STRING

En caso de un tiempo de espera, almacena el nombre de la POU en la que se ha producido un tiempo de espera registrado por SFCError. El nombre se almacena hasta que el tiempo de espera se restablece mediante SFCQuitError.

El requisito es la declaración de SFCError.

SFCQuitError

BOOL

Mientras esta variable booleana sea TRUE, el procesamiento del diagrama SFC se detiene. En ese proceso se restablece cualquier tiempo de espera almacenado en la variable SFCError. Si vuelve a establecer la variable en FALSE, se restablecen todos los tiempos anteriores en los pasos activos.

El requisito es la declaración de SFCError.

SFCPause

BOOL

Mientras esta variable sea TRUE, el procesamiento del diagrama SFC se detiene.

SFCTrans

BOOL

Pasa a ser TRUE cuando conmuta una transición.

SFCCurrentStep

STRING

Muestra el nombre del paso activo en ese momento, independientemente de la comprobación de tiempo

En el caso de una rama paralela, siempre se almacena el nombre del paso de la rama situada más a la derecha.

SFCTip

SFCTipMode

BOOL

TRUE: Activa el modo paso a paso de la POU SFC

Si activa el modo paso a paso estableciendo SFCTipMode := TRUE, solo puede avanzar al paso siguiente estableciendo SFCTip en TRUE. Mientras establezca SFCTipMode en FALSE, también puede cambiar al paso siguiente mediante las transiciones.

SFCErrorAnalyzation

Contiene una cadena de todas las variables que contribuyen al valor total TRUE de SFCError (tiempo de espera en un paso)

SFCError debe estar activado para que esto funcione.

Para ello, SFCErrorAnalyzation utiliza implícitamente la función de la POU AnalyzeExpression de la biblioteca Analyzation.

Para obtener información sobre la configuración avanzada del análisis, consulte también: SFC

SFCErrorAnalyzationTable

Contiene una tabla de las variables que contribuyen al valor total TRUE de SFCError (tiempo de espera en un paso)

SFCError debe estar activado para que esto funcione.

Para ello, SFCErrorAnalyzationTable utiliza implícitamente la función de la POU AnalyzeExpressionTable de la biblioteca Analyzation.

Para obtener información sobre la configuración avanzada del análisis, consulte también: SFC

Generación implícita de banderas SFC

Las banderas SFC se declaran automáticamente si ha activado la opción correspondiente. Puede ajustar esta opción en el diálogo de propiedades Configuración SFC para POU individuales o en el diálogo de configuración del proyecto SFC para todas las POU SFC del proyecto.

Sugerencia

La configuración de SFC de las banderas SFC de POU individuales solo es efectiva si no ha activado la opción Utilizar los valores predeterminados. Si ha activado esta opción, se aplica la configuración definida en la configuración del proyecto.

Sugerencia

Las banderas SFC que ha declarado en el diálogo de configuración de SFC solo son visibles en la vista en línea de la POU SFC.

Sugerencia

En el Propiedades de los elementos SFC puede definir si se debe exportar una definición de símbolo a la configuración de símbolos para una bandera.

Generación explícita de banderas SFC

Una declaración manual, como la que se requería anteriormente en CoDeSys V2.3, solo sigue siendo necesaria si debe haber acceso de escritura a las banderas desde otra POU. Tenga en cuenta lo siguiente al respecto:

Importante

Si las banderas se han declarado en una lista de variables globales, debe desactivar el ajuste Declarar en el diálogo de configuración de SFC. De lo contrario, también se crea implícitamente una bandera SFC local. En ese caso, se utiliza esta bandera en lugar de la variable global.

Ejemplo de aplicación para SFCError

ejemplo 1. Ejemplo

Ha creado una POU SFC denominada sfc1, que contiene un paso s1. Ha definido límites de tiempo en las propiedades del paso.

Si la duración de actividad del paso s1 supera el límite definido en sus propiedades de tiempo, se establece la bandera SFCError. La aplicación puede evaluar esta bandera para reaccionar al tiempo de espera.

Para permitir este acceso, debe activar y declarar la bandera en la configuración de SFC. Si solo la declara, la bandera SFC se muestra en la parte de declaración de la vista en línea de sfc1, pero no funciona.

_cds_img_sfc_sfc_flags.png

Ahora puede direccionar la bandera SFC dentro de la POU, por ejemplo en una acción (2), o desde fuera de la POU (1).

_cds_img_sfc_sfcerror_example.png

Vista en línea de la POU SFC sfc1:

_cds_img_sfc_sfcerror_example_online.png

SFCError pasa a ser TRUE en cuanto se produce un tiempo de espera dentro de sfc1.

Puede utilizar las banderas SFCErrorAnalyzation y SFCErrorAnalyzationTable de la biblioteca Analyzation para analizar la causa de un tiempo de espera. Estas banderas le permiten identificar los componentes individuales de la expresión que contribuyen a que SFCError obtenga el valor TRUE.



Acceso a las banderas

Sintaxis para el acceso

Dentro de la POU, asigne la bandera directamente: <variable name> := <sfc flag>

ejemplo 2. Ejemplo
checkerror := SFCError;


Desde otra POU con el nombre: <variable name> := <pou name>.<sfc flag>

ejemplo 3. Ejemplo:
checkerror := SFC_prog.SFCError;


Si necesita acceso de escritura desde otra POU, también debe declarar explícitamente la bandera SFC como variable VAR_INPUT en la POU SFC o globalmente en una GVL.

ejemplo 4. Ejemplo

Declaración local

PROGRAM SFC_prog
VAR_INPUT
    SFCInit : BOOL;
END_VAR

O declaración global en una lista de variables globales

VAR_GLOBAL
    SFCInit : BOOL;
END_VAR
PROGRAM PLC_PRG
VAR
    SetInit : BOOL;
END_VAR
SFC_prog.SFCInit := SetInit;  //Write access to SFCInit in SFC_prog