Skip to main content

Ejemplo de programación para nivel básico

El ejemplo "Control a dos manos con EDM" del documento "PLCopen – Technical Committee 5 Safety Software Technical Specification Part 2: User Examples Version 1.01 – Official Release" se utiliza como referencia. CODESYS Safety Extension Ejemplo de programación para un programa de Nivel Básico e ilustrado como un CODESYS Safety Extension Implementación de FBD.

Sugerencia

Para obtener más información sobre la programación en el Nivel Básico, consulte el documento "PLCopen - Comité Técnico 5 Software de Seguridad".

Descripción funcional de las funciones de seguridad

En este ejemplo se utilizan las siguientes funciones de seguridad:

  • Cuando se presiona el botón de parada de emergencia, se deben detener todos los movimientos peligrosos (a través de SF_EmergencyStop)

    La parada de emergencia tiene máxima prioridad. Después de soltar el botón EStop pulsador, se requiere un reinicio mediante reinicio S0.

  • La salida de seguridad se activa presionando ambos pulsadores del control a dos manos. Al soltar cualquiera de los pulsadores a dos manos se desactiva la salida de seguridad y se detiene el movimiento peligroso a través de los dispositivos de conmutación. K1 y K2 (a través de SF_TwoHandControlTypeII)

  • Se supervisa el estado básico y el estado operativo de los dispositivos de conmutación conectados. Si se detecta un error, la salida de seguridad no puede ponerse en funcionamiento. SF_EDM)

  • Después de activar la aplicación de seguridad o funcional, o después de una condición de parada de emergencia, el control de dos manos debe soltarse y accionarse nuevamente para reactivar la salida de seguridad (a través de SF_OutControl). Para garantizar esto durante el reinicio funcional, la señal de proceso de la aplicación funcional se conecta a la Activate Entrada del control de dos manos FB THC_S2_S3. (Si se reinicia el proceso de aplicación mientras el control de dos manos está activado, entonces el dispositivo pasa al estado C0003, lo que señala el error de que ambos pulsadores están presionados cuando se activa y evita un reinicio).

En este ejemplo, solo existe un estado operativo.

figura 123. Declaración de variable para ejemplo de programación: Control a dos manos con EDM
Declaración de variable para ejemplo de programación: Control a dos manos con EDM


figura 124. Implementación para ejemplo de programación: Control a dos manos con EDM
Implementación para ejemplo de programación: Control a dos manos con EDM


tabla 105. Entradas:

Nombre

Tipo de datos

Descripción

S1_S_EStopIn

SAFEBOOL

Botón de parada de emergencia S1

S2_S_Switch1

SAFEBOOL

Interruptor S2 conectado con el pulsador 1 del mando a dos manos

S3_S_Switch2

SAFEBOOL

Interruptor S3 conectado con el pulsador 2 del mando a dos manos

K1_S_EDM1

SAFEBOOL

Dispositivo externo de retroalimentación K1

K2_S_EDM2

SAFEBOOL

Dispositivo externo de retroalimentación K2

S0_Reset

BOOL

Restablecimiento por parte del desarrollador con el interruptor S0 (derivado de la aplicación funcional)

Process

BOOL

Liberación del movimiento por el proceso (derivado de la aplicación funcional)



tabla 106. Salidas:

Nombre

Tipo de datos

Descripción

S_EDM_Out_EDM_K1_K2

SAFEBOOL

Controla el actuador a través de K1 y K2

Error_EStop_S1

BOOL

Bandera de error de EStop_S1

Error_THC_S2_S3

BOOL

Bandera de error de THC_S2_S3

Error_OC_K1_K2

BOOL

Bandera de error de OC_K1_K2

Diag_EStop_S1

WORD

Código de diagnóstico para EStop_S1,

16#8xxx:Funcionamiento regular,

16#Cxxx en caso de error en EStop_S1

Diag_THC_S2_S3

WORD

Código de diagnóstico para THC_S2_S3,

16#8xxx:Funcionamiento regular,

16#Cxxx En caso de error en THC_S2_S3

Diag_OC_K1_K2

WORD

Código de diagnóstico para OC_K1_K2,

16#8xxx:Funcionamiento regular,

16#Cxxx En caso de error en OC_K1_K2



Notas adicionales

Este ejemplo también se puede utilizar con SF_TwoHandControlTypeIII.

La entrada de Activar Estaba configurado para TRUE Para simplificar, se puede reemplazar por una variable en la aplicación.

tabla 107. Información sobre los parámetros FB utilizados

Bloque de funciones

Aporte

Valor constante

Descripción

EStop_S1

S_StartReset

FALSE

No hay reinicio automático cuando se inicia el S-PLC.

S_AutoReset

FALSE

No es necesario reiniciar automáticamente, es necesario reiniciar y confirmar por parte del desarrollador

OC_K1_K2

S_StartReset

TRUE

Se permite el reinicio automático cuando se inicia el S-PLC.

S_AutoReset

TRUE

Reinicio automático, no es necesario reiniciar ni confirmar por parte del desarrollador

Static Control

FALSE

Se solicita un cambio dinámico de la señal Appl_Control (flanco ascendente) después de la activación del bloque de función o de una función de seguridad activada (S_SafeControl a FALSE)

EDM_K1_K2

S_StartReset

FALSE

No hay reinicio automático cuando se inicia el S-PLC.

MonitoringTime

T#200ms

El tiempo máximo de respuesta de las dos señales de retroalimentación

S_EDM1 y S_EDM2