Variables implícitas - Indicadores SFC

Descripción general

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 (timeouts, restablecimiento, modalidad 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 el 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 guion bajo.

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. Por lo tanto, <nombre de paso>._x se copia en <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.
 ADVERTENCIA
FUNCIONAMIENTO IMPREVISTO DEL EQUIPO
No utilice el indicador booleano <nombre de paso>.x para forzar un valor de estado que establezca un paso activo.
Si no se siguen estas instrucciones, pueden producirse lesiones graves, muerte o daños en el 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, independientemente de si existe o no un tiempo mínimo configurado en los atributos de paso (consulte a continuación: 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. Este es un subcuadro de diálogo del cuadro de diálogo Propiedades del objeto.

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 SFC POU 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 solo será visible en la vista en línea de 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 en 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, la variable pasará a ser TRUE. Requisito: SFCEnableLimit debe ser TRUE.

Tenga en cuenta que no se puede registrar ningún timeout más antes de restablecer SFCError. SFCError debe estar definido si desea utilizar los otros indicadores de control de tiempo (SFCErrorStep, SFCErrorPOU, SFCQuitError).

NOTA: Puede usar los indicadores SFCErrorAnalyzation y SFCErrorAnalyzationTable para determinar los componentes de la expresión que contribuyen al valor TRUE de SFCError. En el editor SFC, el indicador SFCErrorAnalyzationTable usa esta función implícitamente para el análisis de expresiones en transiciones.

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. Por lo tanto, 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.

Requisito: SFCError debe estar definido.

SFCErrorStep

STRING

Esta variable almacena el nombre de un paso en el que SFCError.timeout registró un timeout. El nombre se almacena hasta que el error de paso registrado se restablece mediante SFCQuitError.

Requisito: SFCError debe estar definido.

SFCErrorPOU

STRING

Esta variable almacena el nombre de la POU de SFC en la que se ha producido un timeout. El nombre se almacena hasta que se restablece el timeout mediante SFCQuitError.

Requisito: SFCError debe estar definido.

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.

Requisito: SFCError debe estar definido.

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 este modo se ha activado mediante SFCTipMode=TRUE, solo puede saltar al siguiente paso ajustando SFCTip=TRUE (flanco ascendente). Siempre y cuando SFCTipMode se haya establecido en FALSE, será posible omitir las transiciones.

SFCErrorAnalyzation

Variable de cadena que contiene las variables que contribuyen al valor total TRUE de SFCError (timeout en un paso). Como requisito previo, SFCError debe estar activado.

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

SFCErrorAnalyzationTable

Tabla que contiene las variables que contribuyen al valor total TRUE de SFCError (timeout en un paso). Como requisito previo, SFCError debe estar activado.

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

En la imagen siguiente se muestra un ejemplo de varios indicadores de error SFC detectados en la modalidad en línea del editor.

Se ha detectado un timeout en el paso s1 del objeto SFC POU con el indicador SFCError.

Acceso a los indicadores

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 SFC POU:

<nombre de paso>.<indicador>

o

_<nombre de acción>.<indicador>

Ejemplos:

status:=step1._x;
checkerror:=SFCerror;

Sintaxis para acceder desde otra POU:

<SFC POU>.<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:

  • La variable implícita, además, se tiene que declarar explícitamente como una variable VAR_INPUT de la POU SFC, o

  • se 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

Análisis de expresiones

La biblioteca Analyzation permite analizar expresiones. Se puede utilizar, por ejemplo, en el diagrama SFC para examinar el resultado del indicador SFCError. Este indicador se usa para supervisar timeouts en el diagrama SFC.

Puede usar los indicadores SFCErrorAnalyzation y SFCErrorAnalyzationTable para determinar los componentes de la expresión que contribuyen al valor TRUE de SFCError.