Variables implícitas - Indicadores SFC
Cada paso SFC y acción IEC proporciona variables generadas de forma implícita para la observación del estado de los pasos y acciones IEC durante el tiempo de ejecución. También puede definir variables para observar y controlar la ejecución de un SFC (tiempos de espera, restablecimiento, modo de información). Estas variables también las puede generar implícitamente el objeto SFC.
Básicamente, para cada paso y cada acción IEC, se genera una variable implícita. Una instancia de estructura, llamada así por el elemento, por ejemplo, paso 1 para un paso con nombre de paso step1. Puede definir en las propiedades del elemento si se debe exportar una definición de símbolo para este indicador a la configuración de símbolos y de qué forma este símbolo debe ser accesible en el controlador.
Los tipos de datos para esas variables implícitas están definidos en la biblioteca IecSFC.library. Esta biblioteca se incluirá automáticamente en el proyecto tan pronto como se añada un objeto SFC.
Estado de paso y acción, y tiempo de paso
Básicamente, para cada paso y acción IEC se crea una variable de estructura implícita de tipo SFCStepType o SFCActionType. Los componentes de la estructura (indicadores) describen el estado de un paso o una acción, o el tiempo procesado de un paso activo.
La sintaxis para la declaración de variable implícita es:
<nombre de paso>: SFCStepType;
o
_<nombre de acción>:SFCActionType;
NOTA: Las variables implícitas para las acciones de IEC van precedidas de un carácter de subrayado.
Están disponibles los siguientes indicadores booleanos para los estados de paso o acción:
Indicadores booleanos para los pasos:
Indicador booleano |
Descripción |
---|---|
<nombre de paso>.x |
muestra el estado de activación actual |
<nombre de paso>._x |
muestra el estado de activación para el siguiente ciclo |
Si <nombre de paso>.x = TRUE, el paso se ejecutará en el ciclo actual.
Si <nombre de paso>._x = TRUE y <nombre de paso>.x = FALSE, el paso se ejecutará en el siguiente ciclo. Esto significa que <nombre de paso>._x se copia a <nombre de paso>.x al principio de un ciclo.
Indicadores booleanos para acciones:
Indicador booleano |
Descripción |
---|---|
_<nombre de acción>.x |
es TRUE si se ejecuta la acción |
_<nombre de acción>._x |
es TRUE si la acción está activa |
Generación de símbolos
En las propiedades del elemento de un paso o una acción, se puede definir si se debe añadir una definición de símbolo a una configuración de símbolos posiblemente creada y descargada para el indicador de paso o nombre de acción. Para ello, haga una entrada para el derecho de acceso deseado en la columna Símbolo de la vista de propiedades del elemento.
NOTA: Si utiliza el indicador booleano <nombre de paso>.x para forzar un determinado valor de estado para un paso (para establecer un paso como activo), tenga en cuenta que esto afectará a todos los estados no controlados en el SFC.
|
FUNCIONAMIENTO IMPREVISTO DEL EQUIPO |
No utilice el indicador booleano <nombre de paso>.x para forzar un valor de estado que establezca un paso activo. |
El incumplimiento de estas instrucciones puede causar la muerte, lesiones serias o daño al equipo. |
Tiempo a través de variables TIME:
El indicador t ofrece el intervalo de tiempo actual que ha transcurrido desde que se activó el paso. Esto solo se aplica a los pasos, no importa si existe o no un tiempo mínimo configurado en los atributos de paso (vea más adelante: SFCError).
Para pasos:
<nombre de paso>.t (<nombre de paso>._t no utilizable para propósitos externos)
Para acciones:
No se utilizan variables de tiempo implícitas.
Control de la ejecución SFC (tiempos de espera, restablecimiento, modo de información)
Puede utilizar algunas variables implícitas disponibles, también denominadas indicadores SFC (vea la tabla siguiente) para controlar el funcionamiento de un SFC. Por ejemplo, para indicar los desbordamientos de tiempo o activar el modo de información para cambiar las transiciones.
Para poder acceder a estos indicadores, tiene que declararlos y activarlos. Para ello, utilice el cuadro de diálogo Configuración SFC. Éste es un subcuadro de diálogo del cuadro de diálogo Propiedades.
La declaración manual, que se necesitaba en SoMachine/SoMachine Motion V3.1, solo es necesaria para permitir el acceso de escritura desde otra POU (consulte el apartado Acceso a los indicadores).
En este caso, considere lo siguiente:
Si declara el indicador globalmente, debe desactivar la opción Declarar en el cuadro de diálogo Configuración SFC. De lo contrario, esto da lugar a un indicador local declarado implícitamente, que se emplearía en lugar del global. Tenga en cuenta que la configuración SFC para una POU SFC se determina inicialmente por las definiciones establecidas en el cuadro de diálogo Opciones > SFC.
Tenga presente que la declaración de una variable de indicador realizada únicamente a través del cuadro de diálogo Configuración SFC sólo será visible en la vista online SFC POU.
Se pueden utilizar las siguientes variables implícitas (indicadores). Para este fin, tiene que declararlas y activarlas en el cuadro de diálogo Configuración SFC.
Variable |
Tipo |
Descripción |
---|---|---|
SFCInit |
BOOL |
Si esta variable se convierte en TRUE, el diagrama funcional secuencial se establecerá de nuevo en el Paso inicial. Todos los pasos y acciones y otros indicadores SFC se restablecerán (inicialización). El paso inicial se mantendrá activo, pero no se ejecutará mientras la variable sea TRUE. Vuelva a ajustar SFCInit a FALSE para volver al procesamiento normal. |
SFCReset |
BOOL |
Esta variable se comporta de forma similar a SFCInit. A diferencia de esta última, sin embargo, se realiza un posterior procesamiento después de la inicialización del paso inicial. Por lo tanto, en este caso, se puede realizar un restablecimiento a FALSE del indicador SFCReset en el paso inicial. |
SFCError |
BOOL |
Tan pronto como se produzca un timeout en 1 de los pasos en el SFC, esta variable pasará a ser TRUE. Condición previa: SFCEnableLimit debe ser TRUE. Tenga en cuenta que no se puede registrar un timeout adicional antes de un restablecimiento de SFCError. Se debe definir SFCError si desea utilizar los otros indicadores de control de tiempo (SFCErrorStep, SFCErrorPOU y SFCQuitError). |
SFCEnableLimit |
BOOL |
Puede utilizar esta variable para la activación (TRUE) y desactivación (FALSE) explícitas del control de tiempo en los pasos a través de SFCError. Esto significa que si esta variable se declara y se activa (Configuración SFC), se debe establecer en TRUE para que SFCError funcione. De lo contrario, no se registrará ningún timeout de los pasos. El uso puede ser razonable en inicios o en funcionamiento manual. Si la variable no está definida, SFCError funcionará de forma automática. Condición previa: se debe definir SFCError. |
SFCErrorStep |
STRING |
Esta variable almacena el nombre de un paso en el que SFCError.timeout registró un timeout. Condición previa: se debe definir SFCError. |
SFCErrorPOU |
STRING |
Esta variable almacena el nombre de la POU SFC en la que se ha producido un timeout. Condición previa: se debe definir SFCError. |
SFCQuitError |
BOOL |
Siempre que esta variable sea TRUE, la ejecución del diagrama SFC se detendrá y la variable SFCError se restablecerá. Tan pronto como la variable se haya restablecido a FALSE, todos los estados de tiempo actuales en los pasos activos se restablecerán. Condición previa: se debe definir SFCError. |
SFCPause |
BOOL |
Siempre que esta variable sea TRUE, la ejecución del diagrama SFC se detendrá. |
SFCTrans |
BOOL |
Esta variable pasa a ser TRUE tan pronto como se acciona una transición. |
SFCCurrentStep |
STRING |
Esta variable almacena el nombre del paso activo, independientemente de la supervisión del tiempo. En caso de secuencias simultáneas, se registrará el nombre del paso exterior derecho. |
SFCTipSFCTipMode |
BOOL |
Estas variables permiten utilizar la modalidad de pulsador en la gráfica actual. Cuando esta modalidad se ha activado mediante SFCTipMode = TRUE, solo puede saltar al siguiente paso si establece SFCTip = TRUE (flanco ascendente). Mientras SFCTipMode esté establecido en FALSE, se pueden saltar las transiciones. |
En la imagen siguiente se muestra un ejemplo de varios indicadores de error SFC detectados en modalidad online del editor.
Se ha detectado un timeout en el paso s1 del objeto SFC POU con el indicador SFCError.
Para permitir el acceso a los indicadores para el control de la ejecución del SFC (timeouts, restablecimiento, modo de información), declare y active las variables de indicador como se describió anteriormente (Control de la ejecución SFC).
Sintaxis para el acceso desde una acción o transición dentro de la POU SFC:
<nombre de paso>.<indicador>
o
_<nombre de acción>.<indicador>
Ejemplos:
status:=step1._x;
checkerror:=SFCerror;
Sintaxis para acceder desde otra POU:
<POU SFC>.<nombre de paso>.<indicador>
o
<SFC POU>_<nombre de acción>.<indicador>
Ejemplos:
status:=SFC_prog.step1._x;
checkerror:=SFC_prog.SFCerror;
Tenga en cuenta lo siguiente en caso de acceso de escritura desde otra POU:
oLa variable implícita, además, se tiene que declarar explícitamente como una variable VAR_INPUT del SFC POU, o
oSe tiene que declarar globalmente en una GVL (lista de variables globales).
Ejemplo: Declaración local
PROGRAM SFC_prog
VAR_INPUT
SFCinit:BOOL;
END_VAR
Ejemplo: Declaración global en una GVL
VAR_GLOBAL
SFCinit:BOOL;
END_VAR
Acceso al indicador en PLC_PRG:
PROGRAM PLC_PRG
VAR
setinit: BOOL;
END_VAR
SFC_prog.SFCinit:=setinit; //Write access to SFCinit in SFC_prog