Skip to main content

Reglas generales para bloques de funciones relacionados con la seguridad

Estas reglas de programación corresponden a las "Reglas generales para bloques de funciones relacionados con la seguridad" de PLCopen. Se aplican a los bloques de funciones compatibles con PLCopen.

Reglas específicas del bloque de funciones

Importante

Cuando se utilizan bloques de funciones de PLCopen, el usuario debe asegurarse de que en la aplicación se llame al bloque de funciones al menos una vez en cada ciclo.

Señal predeterminada

Todas las señales de E/S booleanas relacionadas con la seguridad tienen el valor seguro predeterminado FALSE.

Nivel de señal

El valor de SAFEBOOL sólo es aplicable de la siguiente manera:

  • 0: Corresponde a la seguridad definida en las salidas del sistema

  • 1: Significa que los aspectos de seguridad del sistema están funcionando correctamente para que, por ejemplo, sea posible un funcionamiento normal

Esto refleja la funcionalidad de los entornos IEC 61131, como las reglas del valor predeterminado y que todas las salidas están configuradas para 0 en caso de error.

Faltan parámetros de E/S

Se permiten los parámetros faltantes. Se aplican los valores predeterminados. Estos valores por defecto en ningún caso darán lugar a un estado inseguro. Valores predeterminados, incluidos sus atributos (Variable o orden Constant), se especifican en las especificaciones de FB correspondientes.

Comportamiento de inicio

Inicialmente, las salidas se establecen en los valores predeterminados. Después de la primera llamada del bloque de función, las salidas son válidas. Hay un comportamiento de arranque consistente (arranque en frío).

diagramas de tiempos

Los diagramas de tiempo, como se muestra en los FB, se proporcionan solo como explicación. No representan el comportamiento de tiempo exacto. El comportamiento de tiempo exacto depende de la implementación.

Manejo de errores y diagnóstico

Todos los bloques de funciones relacionados con la seguridad tienen dos salidas relacionadas con errores: Error y DiagCode. Estos se proporcionan con fines de diagnóstico en el nivel de la aplicación del usuario y no para diagnósticos en el nivel del sistema o del hardware.

La regla para entornos relacionados con la seguridad es que la conmutación de una función relacionada con la seguridad tiene la máxima prioridad. Además, la siguiente conmutación debe tener suficiente tiempo para el diagnóstico, ya sea en el programa funcional o en la interfaz del operador.

Parámetros de entrada generales

Nombre

Tipo de datos

Descripción

Activate

BOOL

Variable o constante para la activación de un FB

El valor inicial es FALSE

Este parámetro se puede conectar a la variable que representa el estado (activo o no activo) del dispositivo de seguridad correspondiente. Esto asegura que no se genere información de diagnóstico irrelevante si un dispositivo está deshabilitado.

FALSE: Todas las variables de salida se establecen en el valor inicial.

Si no hay ningún dispositivo conectado, entonces una estática TRUE la señal debe ser asignada.

S_<nombre de entrada relacionado con la seguridad>

SAFExxxx

Todos SAFExxxx escriba el nombre de entrada comienza con S_.

Solo se pueden asignar variables.

S_StartReset

SAFEBOOL

variable o constante

FALSE (valor inicial): Reset automático desactivado; reinicio manual a través de Reset aporte

TRUE: Restablecimiento automático cuando se inicia el controlador de seguridad (caliente o frío)

Nota la Avisos de seguridad para S_StartReset.

S_AutoReset

SAFEBOOL

Variable o constante

FALSE (valor inicial): Reset automático desactivado; reinicio manual a través de Reset entrada cuando se suelta el interruptor de parada de emergencia.

TRUE: Restablecimiento automático cuando se suelta el interruptor de parada de emergencia.

Nota la Avisos de seguridad para S_AutoReset.

Reset

BOOL

Variable. El valor inicial es FALSE

Dependiendo de la función, esta entrada se puede utilizar para diferentes propósitos.

  • Restablecimiento de la máquina de estado y mensajes de estado y error acoplados como se indica a través de DiagCode, cuando se haya eliminado la causa del error. Este comportamiento de reinicio está diseñado como un reinicio de error.

  • Restablecimiento manual de un enclavamiento de reinicio por parte del operador. Este reinicio está diseñado como un reinicio funcional.

  • Funciones de reinicio adicionales específicas de FB

Esta función está activa sólo en un cambio de señal de FALSE para TRUE. una estática TRUE La señal no provoca más acciones, pero puede detectarse como un error en algunos bloques de funciones.

Nota la Avisos de seguridad para Reset.

El significado apropiado debe describirse en cada bloque de función.

Avisos de seguridad para S_StartReset

S_StartReset

Este inicio automático se activará solo si se garantiza que no puede ocurrir ningún peligro en el inicio del controlador de seguridad. Por lo tanto, el uso de la función de "inicio automático" de los bloques de funciones requiere la implementación de otras medidas del sistema o de la aplicación. Esto debe garantizar que no se produzca un inicio inesperado (o no deseado).

Atención

Si la entrada está vinculada a una variable (y no a FALSE), entonces se deben definir medidas de validación adicionales para ello.

Avisos de seguridad para S_AutoReset

Atención

El reinicio automático se activará solo si se garantiza que no se puede reiniciar la máquina al soltar el botón de parada de emergencia. Por lo tanto, el uso de la característica de "reinicio automático" de los bloques de funciones requiere la implementación de otras medidas del sistema o de la aplicación. Esto debe garantizar que no se produzca un reinicio inesperado (o no intencionado) de la máquina.

Atención

Si la entrada está vinculada a una variable (y no a FALSE), entonces se deben definir medidas de validación adicionales para ello.

Avisos de seguridad para Reset

Atención

UN SAFEBOOL debe estar conectado en lugar de un BOOL dependiendo de los requisitos de seguridad. Véase también: Bloque de funciones: SF_ResetButton.

Parámetros generales de salida

Nombre

Tipo de datos

Descripción

Ready

BOOL

TRUE: Indica que el bloque de funciones está activado y los resultados de salida son válidos (igual que el LED "POWER" de un relé de seguridad).

FALSE: El bloque de funciones no está activo y el programa no se ejecuta. Útil en modo de depuración o para activar/desactivar bloques de funciones adicionales. También es útil para el procesamiento posterior en el programa funcional.

S_<nombre de salida relacionada con la seguridad>

SAFExxxx

Todos SAFExxxx el nombre de salida del tipo de datos comienza con S_.

SafetyDemand

BOOL

Salida que indica que el FB está activo y se solicita la función de seguridad primaria (p. ej., relacionada con la funcionalidad de seguridad). No se tienen en cuenta otros parámetros de entrada relacionados con la seguridad (p. ej. SafetyActive y EDM). El lazo de seguridad no está cerrado y se exige el estado seguro para la salida de seguridad relacionada. No hay error.

TRUE: Demanda de seguridad

FALSE: Sin demanda de seguridad

ResetRequest

BOOL

Salida que se puede usar para señalar al operador que presione la funcionalidad de reinicio para continuar

TRUE: Reinicio del operador solicitado

FALSE: Reinicio del operador no solicitado

Error

BOOL

Indicador de error (igual que el LED "K1/K2" de un relé de seguridad)

TRUE: Cuando es VERDADERO, indica que se ha producido un error y que el FB se encuentra en un estado de error. El estado de error relevante se refleja en el DiagCode producción.

FALSE: Indica que no hay error y el FB está en otro estado. Esto nuevamente se refleja en DiagCode.

Útil en el modo de depuración, así como para su posterior procesamiento en el programa funcional.

DiagCode

WORD

Registro de diagnóstico

Todos los estados del FB (Active, Not Active, y Error) están representados por este registro. Esta información está codificada en formato hexadecimal para representar más de 16 códigos. Solo se representa un código consistente al mismo tiempo. En caso de errores múltiples, el DiagCode la salida indica el primer error detectado.

Útil en el modo de depuración, así como para su posterior procesamiento en el programa funcional.

Códigos de diagnóstico

Un concepto de diagnóstico transparente y único forma la base de todos los bloques de funciones. De este modo, se garantiza que, independientemente de la implementación del proveedor, la información de diagnóstico uniforme esté disponible para el usuario en forma de DiagCode. Si no hay ningún error, se indica el estado interno del bloque de función (máquina de estado). Un error se indica a través de una salida binaria (Error). Se puede obtener información detallada sobre los errores internos o externos del bloque de funciones a través de DiagCode. El bloque de funciones debe reiniciarse a través de las diferentes entradas de reinicio.

tabla 4. Códigos genéricos de diagnóstico

DiagCode

Descripción

0000_0000_0000_0000 compartimiento

0000 maleficio

El FB no está activado. Este código representa el estado inactivo. Para un ejemplo genérico, la configuración de E/S para podría ser:

Activate = FALSE

S_In = FALSE o TRUE

Ready = FALSE

Error = FALSE

S_Out = FALSE

SafetyDemand = FALSE

ResetRequest = FALSE

1000_0000_0000_0000 compartimiento

8000 maleficio

El FB se activa sin error ni ninguna otra condición que establezca la salida de seguridad en FALSE. Este es el estado operativo predeterminado en el que el S_Out salida de seguridad = TRUE en funcionamiento normal. Para un ejemplo genérico, la configuración de E/S para podría ser:

Activate = TRUE

S_In = TRUE

Ready = TRUE

Error = FALSE

S_Out = TRUE

SafetyDemand = FALSE

ResetRequest = FALSE

1000_0100_0000_0001 compartimiento

8401 maleficio

El FB ha detectado una activación y ahora el FB está activado, pero el S_Out la salida de seguridad está configurada en FALSE. Este código representa el estado Init del modo operativo. Para un ejemplo genérico, la configuración de E/S para podría ser:

Activate = TRUE

S_In = TRUE

Ready = TRUE

Error = FALSE

S_Out = FALSE

SafetyDemand = FALSE

ResetRequest = TRUE

1000_1000_0000_0010 compartimiento

8802 maleficio

El FB activado detecta una demanda de seguridad, p. S_In = FALSE. La salida de seguridad está deshabilitada (S_Out = FALSE). Para un ejemplo genérico, la configuración de E/S para podría ser:

Activate = TRUE

S_IN = FALSE

Ready = TRUE

Error = FALSE

S_Out = FALSE

SafetyDemand = TRUE

ResetRequest = FALSE

1000_0100_0000_0011 compartimiento

8403 maleficio

La salida de seguridad del FB activado ha sido deshabilitada por una demanda de seguridad. La demanda de seguridad ahora se retira, pero la salida de seguridad permanece FALSE hasta que se detecte una condición de reinicio. Este es un estado operativo en el que el S_Out salida de seguridad = FALSE. Para un ejemplo genérico, la configuración de E/S para podría ser:

Activate = TRUE

S_In = FALSE => TRUE (continuando con estática TRUE)

Ready = TRUE

Error = FALSE

S_Out = FALSE

SafetyDemand = TRUE ==> FALSE

ResetRequest = FALSE ==> TRUE



tabla 5. Códigos específicos del sistema o dispositivo

Código de diagnóstico

Descripción

0xxx_xxxx_xxxx_xxxx compartimiento

X = Mensaje específico del sistema o dispositivo. Esta información contiene la información de diagnóstico para el sistema o dispositivo, y se asigna directamente al DiagCode producción.

Nota: 0000 maleficio Está reservado.



Diagrama de estado genérico

figura 9. Diagrama de estado genérico de los FB de seguridad
Diagrama de estado genérico de los FB de seguridad


. Explicación del diagrama de estado genérico:
  • Se muestra una descripción general de los estados y las transiciones. Algunas transiciones no se nombran aquí. Esto significa que son específicos de FB y se describen con los FB correspondientes.

  • El diagrama muestra tres áreas:

    • En la parte superior, el FB no está activo. Está en estado seguro (las salidas seguras están FALSE).

    • En el medio, el FB está activo. Está en estado seguro (las salidas seguras están FALSE).

    • En la parte inferior, el FB está en el estado normal. Las salidas seguras son TRUE.

  • La primera línea horizontal en el diagrama de estado muestra la transición de un FB no activo a un FB activo.

  • La segunda línea horizontal muestra la transición de un estado no seguro a un estado seguro del FB.

  • Las prioridades de posibles transiciones paralelas se indican mediante números (0 = máxima prioridad).

  • Las burbujas de estado contienen el nombre del estado y el código de diagnóstico hexadecimal.

  • Condiciones OR, AND, y XOR se utilizan como operadores lógicos y NOT se usa como negación.

  • Dentro de la descripción del FB, el estado inicial es Idle, con las transiciones a estados operativos a través del Init Expresar.

  • La transición de cualquier estado debido a Activate = FALSE cambia directamente a la Idle estado (0 = máxima prioridad reservada para Activate = FALSE). Para mayor claridad, estas transiciones no se muestran en cada diagrama de estado. Pero se mencionan como una nota al pie de cada diagrama de estado.

  • Por razones de claridad, la configuración de salida no se describe en el diagrama de estado. Una tabla de verdad explícita que contiene los estados de las salidas de FB es parte de cada especificación de FB. Además, también se describen los códigos de estado y de error específicos del FB.

  • Nota para la transición de 8xx0 para 0000: Ciertas aplicaciones (como las prensas) necesitan finalizar su ciclo sin peligro de ningún riesgo. En ese caso, la transición se puede retrasar.

tabla 6. Códigos de error específicos de FB

DiagCode

Nombre del Estado

Estado Descripción y configuración de salida

Cxxx

Error

Ready = TRUE

S_Out = FALSE

SafetyDemand = FALSE

ResetRequest = FALSE

Error = TRUE



tabla 7. Códigos de estado específicos de FB (sin error)

DiagCode

Nombre del Estado

Estado Descripción y configuración de salida

0000

Idle

Ready = FALSE

S_Out = FALSE

SafetyDemand = FALSE

ResetRequest = FALSE

Error = FALSE

8xxx

Estado inicial y todos los estados de los modos operativos en los que S_Out = FALSE

Ready = TRUE

S_Out = FALSE

SafetyDemand = Dependiendo

ResetRequest = Dependiendo

Error = FALSE

8000

Todos los estados del modo de funcionamiento donde S_Out = TRUE

Ready = TRUE

S_Out = TRUE

ResetDemand = FALSE

ResetRequest = FALSE

Error = FALSE