Ejemplos de configuración para una comunicación cruzada segura
Importante
Los ejemplos que se enumeran aquí son solo para demostrar la configuración de CODESYS Safety NetVars En un proyecto distribuido, no pretenden utilizar POU de seguridad según especificaciones en un entorno crítico para la seguridad. Para este tipo de entorno, siempre deben respetarse las instrucciones del Manual de usuario de seguridad de CODESYS.
Los siguientes ejemplos se complementan entre sí. En el ejemplo 1, se implementa la comunicación cruzada entre dos controladores. En el ejemplo 2, el proyecto del ejemplo 1 se amplía con un controlador. Este tercer controlador está conectado a los otros dos controladores. La POU de cada aplicación de seguridad contiene un SF_EmergencyStop
POU que como señal de entrada normalmente recibiría la señal de salida de un interruptor de parada de emergencia físico. Para simplificar, esta señal de salida se simula en los ejemplos mediante un GVL con una variable global. Al conectar los respectivos interruptores de parada de emergencia con las variables de la red de seguridad como señal de entrada de la SF_EmergencyStop
POU, el SF_EmergencyStop
La POU también se activa cuando se activa la conmutación de un controlador en los controladores conectados a través de variables de red de seguridad.
Notas generales sobre la configuración de las variables de la red de seguridad en estos ejemplos
Importante
Antes de realizar cambios en los objetos "Lista de variables de red de seguridad (emisor)" y "Lista de variables de red de seguridad (receptor)", debe cerrar la sesión tanto en la aplicación del controlador estándar correspondiente como en la aplicación de seguridad correspondiente. De lo contrario, no se podrán realizar correctamente los cambios necesarios que dependan de ellos.
Pestaña: Red PLC:
Identificadores de lista:Los identificadores de lista son necesarios para el protocolo subordinado NetVarUDP para asignar telegramas y, por lo tanto, deben ser únicos dentro del dominio de difusión para un par de emisor-receptor de una lista de variables de red de seguridad. Los identificadores de lista se proporcionan en pares, ya que se requiere un valor para cada dirección (emisor -> receptor) y un valor para la dirección (receptor -> emisor).
Grupo de identificadores de listas de variables en el PLC principal (Solo para listas de variables de red de seguridad (Remitente): este grupo define un rango único de identificadores de lista que se utilizarán para esta lista de variables de red de seguridad para el envío. Los valores dentro de un grupo no se superponen con los valores de otro grupo.
Dirección de red de destino:Si no se debe utilizar la opción de transmisión, se debe utilizar como dirección de red de destino la dirección IP del terminal remoto con el que se va a establecer la comunicación. Por lo tanto, se debe introducir en el receptor la dirección IP del controlador con la lista de variables de red de seguridad (emisor) y en el transmisor la dirección IP del controlador con la lista de variables de red de seguridad (receptor).
Puerto: Se puede modificar si es necesario (por ejemplo, debido a enrutadores o cortafuegos). Los ejemplos suponen que no es necesario realizar ninguna modificación y se conserva el valor predeterminado. Un par de conexiones (emisor/receptor) de una lista de variables de red de seguridad debe utilizar el mismo puerto.
Pestaña: Configuración de seguridad (Lista de variables de red de seguridad (Remitente)
Dirección de seguridad: Esta dirección debe tener un valor único para toda la red, ya que se utiliza para la identificación interna de la conexión (consulte: Manual de usuario de seguridad). Por lo tanto, en el ejemplo se ha tenido cuidado de que sea única en todo el proyecto. Se supone que no se han configurado variables de red de seguridad adicionales en la misma red.
Número máximo de receptores:Esta configuración permanece en el valor predeterminado de
4
En los ejemplos se ha utilizado el valor máximo para ampliar la comunicación entre cuatro controladores. Si se modifica posteriormente este valor, es necesario volver a descargar tanto la aplicación de seguridad como las aplicaciones asociadas del controlador estándar. Si se aumenta el valor, también se aumenta el consumo de recursos, ya que el emisor ya reserva recursos para conexiones no utilizadas. Por lo tanto, no se debe establecer un valor superior al necesario.
Pestaña: Configuración de seguridad (Lista de variables de red de seguridad (Receptor)
ID de conexión: Este ID debe tener un valor único para toda la red, ya que el ID de conexión se utiliza para la identificación interna de la conexión (consulte: Manual del usuario de seguridad). Por lo tanto, en el ejemplo se ha tenido cuidado de que sea único en todo el proyecto. Se supone que no se han configurado variables de red de seguridad adicionales en la misma red.
Tiempo de vigilancia: Debe configurarse de forma adecuada para el ejemplo según el sistema. Para conocer requisitos o restricciones adicionales sobre el valor que se debe utilizar, consulte el Manual de usuario de seguridad.
Preparación del proyecto
Sugerencia
Para probar la función de variable de red, el interruptor de parada de emergencia físico se puede simular primero por medio de un GVL con un solo SAFEBOOL
variable cuyo valor inicial se establece en TRUE
En lugar de accionar un interruptor físico, el valor de esta variable se puede cambiar mediante el comando para observar la reacción del sistema distribuido globalmente.
Crear un nuevo proyecto a partir de la plantilla Proyecto de seguridad vacía con un controlador estándar y un controlador de seguridad debajo.
Seleccione el punto del nodo Aplicación de seguridad en el árbol de dispositivos y haga clic en el menú contextual.
Escriba un nombre para el POU en el Agregar POU extendido (seguridad) diálogo y seleccione PROGRAMA como el Tipo de POULuego haga clic Agregar.
Insertar un
SF_EmergencyStop
bloque de función en el POU abierto y asignar el valorTRUE
hacia Activar entrada.Añadir un GVL a Aplicación de seguridad por medio del comando .
En esta GVL, declare la variable global
Local_EStop
de tipo de datosSAFEBOOL
con el valor inicial deTRUE
(que reemplaza el interruptor de parada de emergencia físico en el ejemplo).Agregar un Lista de variables de la red de seguridad (Receptor) y un Lista de variables de red de seguridad (Remitente) a la aplicación de seguridad por medio de la Agregar objeto dominio.
Si es necesario, modifique el Tiempo de vigilancia valor (Lista de variables de la red de seguridad (Receptor) en el Configuración de seguridad pestaña) de tal manera que el valor coincida con el comportamiento temporal de la aplicación para el hardware y los requisitos aplicados.
Ejemplo 1: Creación y configuración de un dispositivo para comunicación cruzada segura copiando el controlador estándar con el controlador de seguridad debajo de él
Abra el POU desde Aplicación de seguridad en el proyecto e insertar un
AND
operador antes del POUSF_EmergencyStop
para que la salida de laAND
El operador está conectado a la entrada POUE_StopIn
.Asignar la variable global
Local_EStop
a la primera entrada de laAND
operador.En el POU, declare una variable local
bVar_Reset
de tipo de datosBOOL
y vincular esto a laReset
Entrada del POUSF_EmergencyStop
Esto es necesario para la depuración.Para preparar la señal del interruptor de parada de emergencia (variable global
Local_EStop
) para su publicación mediante una variable de red de seguridad (remitente), crear la variableSApp1_EStop
de tipo de datosSAFEBOOL
en la lista de variables de la red de seguridad (remitente).Agregue una nueva red en el POU haciendo clic en Insertar red (abajo), y asignar el valor de la variable
Local_EStop
(señal del interruptor de parada de emergencia) a la variableSApp1_EStop
.Abra el cuadro de diálogo de propiedades de Aplicación de seguridad y cambiarle el nombre a Aplicación de seguridad 1.
Ahora cree un segundo controlador en su proyecto copiando y pegando el controlador estándar configurado en los pasos anteriores con el controlador de seguridad debajo. Para el controlador estándar y de seguridad copiado, primero se deben realizar las siguientes modificaciones.
Modificaciones a la copia insertada: Cambiar el nombre de la Aplicación de seguridad 1 oponerse a Aplicación de seguridad 2 porque el nombre de un objeto de aplicación de seguridad debe ser único en un proyecto.
Colocar Aplicación de seguridad 2 como la aplicación activa y haga clic La compilación da como resultado una nueva aplicación de mapeo. Mapeo de SafetyApp2 siendo creado debajo del nuevo controlador estándar.
Después de la compilación, se muestran varios errores relacionados con la comunicación cruzada segura en la vista de mensajes (
). Esto ayuda a detectar errores de configuración actuales, que deben corregirse primero. Para ello, tenga en cuenta los siguientes mensajes de error que se muestran:Error P0100 significa que el grupo de identificadores de lista en el proyecto no es único (porque el Lista de variables de red de seguridad (Remitente) Se copió el objeto). Para corregir el error, abra el objeto de lista de variables de red de seguridad (remitente) del Aplicación de seguridad 2 aplicación. Luego escriba un valor para Grupo de identificadores de lista de variables en el PLC principal en el Red PLC pestaña. Este valor no debe estar ya asignado en el proyecto (ejemplo:
2
).Para que el nombre del ejemplo sea claro, el nombre de la variable publicada aún debe modificarse. Para ello, abra el Configuración de seguridad pestaña de la lista de variables de la red de seguridad (remitente) de la Aplicación de seguridad 2 aplicación y renombrar la variable declarada a
SApp2_EStop
.Según el Manual de usuario de seguridad, el uso de variables de red de seguridad requiere que las direcciones de seguridad de todos los remitentes aplicados sean únicas. Por eso, debe escribir una nueva Dirección de seguridad de esta lista de variables en el Configuración de seguridad pestaña de la lista de variables de la red de seguridad (remitente) de la Aplicación de seguridad 2 aplicación (ejemplo:
1001
).Error P0200 significa que todavía no se ha seleccionado un remitente permitido para una lista de variables de red de seguridad (receptor). Esto se puede corregir de la siguiente manera: Abra la lista de variables de red de seguridad (receptor) de Aplicación de seguridad 2 (por ejemplo, haciendo doble clic en el mensaje de error en la vista de mensajes). A continuación, seleccione la lista de variables del remitente en la Remitente asociado lista desplegable que contiene el
SApp1_EStop
Variable publicada en el paso 4. Si se desea para la lógica de programación, ahora se puede cambiar el nombre local de la variable. En el ejemplo, esto está reservado comoSApp1_EStop_1
porque elSApp1_EStop
La variable ya está definida al copiar la aplicación. Debido a que el POU en el siguiente paso se modifica, cambie el nombre en la lista de variables de red de seguridad abierta (receptor) nuevamente aSApp1_EStop
para que vuelva a coincidir con las variables publicadas.Debido a que los ConnectionID de todos los receptores aplicados deben ser únicos en la red, debe escribir otro único ID de conexión en la lista de variables de red de seguridad copiada (receptor) en el Configuración de seguridad pestaña.
Abrir el POU de Aplicación de seguridad 2.
Asignar la variable
SApp1_EStop
a la segunda entrada de laAND
operador.Asignar la variable local
Local_EStop
(señal del interruptor de parada de emergencia de SafetyApp2) a la variable del transmisorSApp2_EStop
.Colocar Aplicación de seguridad 1 nuevamente como la aplicación activa y haga clic .
Haga doble clic en el error P0200 en la vista de mensajes.
La lista de variables de la red de seguridad (receptor) de Aplicación de seguridad 1 se abre.
Seleccione la lista de variables del remitente Aplicación de seguridad 2 desde Remitente asociado lista desplegable.
Al vincularse con el remitente del otro controlador, los identificadores de lista se actualizan en el área definida en el remitente.
Abrir el POU de Aplicación de seguridad 1.
Asignar la variable remota disponible SAPp2_EStop a la segunda entrada de la
AND
operador.Reconstruir Aplicación de seguridad 1.
No se reportan más errores.
En los siguientes pasos, realizará la configuración de red con direcciones explícitas.
En primer lugar, se deben realizar las configuraciones de comunicación para ambos controladores en el proyecto de manera que sea posible iniciar sesión en los controladores más tarde.
Si se realiza una transmisión a una dirección de red
255.255.255.255
Si no se desea o no es posible por razones técnicas (por ejemplo, debido a la configuración del enrutador), los controladores que deben comunicarse a través de SafetyNetvars también se pueden definir explícitamente.Para el ejemplo anterior con dos controladores involucrados, la configuración de red en el Red PLC Las pestañas de los objetos remitente y receptor se definen de la siguiente manera:
Primero desactive la opción Utilice valores predeterminados para la dirección de red de destino y el puerto (255.255.255.255, 1202) en el Red PLC Pestaña de todas las listas de variables de red de seguridad del proyecto.
Escriba las direcciones IP del terminal remoto correspondiente según esta figura. Debe modificar las direcciones IP de su red en consecuencia.
La dirección de red de destino
192.168.0.22
Se deben proporcionar las listas de variables de la red de seguridad Aplicación de seguridad 1 y la dirección IP192.168.0.1
para las listas de variables de la red de seguridad Aplicación de seguridad 2La entrada en el remitente debe realizarse para la entrada en la que los identificadores de lista coincidan con los del receptor correspondiente. Esto se hace para que la capa subordinada pueda asignar los paquetes correctamente.Importante
Para detectar para cuál de las entradas del remitente se ha introducido una IP, se puede mostrar una lista de receptores conectados en el remitente por medio de la Mostrar receptores botón en el Configuración de seguridad Pestaña. El editor de la lista de variables de la red de seguridad conectada (receptor) se puede abrir rápidamente haciendo doble clic en una entrada de esta lista. En el editor, puede verificar qué par de identificadores de lista utiliza el receptor.
El proyecto está configurado para el ejemplo de comunicación cruzada.
Para probar el proyecto, descargue ambas aplicaciones en los controladores de seguridad. También es posible que tenga que asegurarse de que las aplicaciones respectivas Mapeo de SafetyAppX se descarga al controlador y se inicia. Luego, inicie las aplicaciones y restablezca cualquier
SF_EmergencyStop
POU por medio de laReset
entrada y labVar_Reset
variables conectadas en el paso 3.Ahora puedes activar el POU
SF_EmergencyStop
en ambos controladores interconectados activando la señal de parada de emergencia en un controlador. En el ejemplo, el interruptor de parada de emergencia se simula configurando la variable global Parada de emergencia local aFALSE
en uno de los dos controladores y luego escribir el valor para este controlador mediante el comando .
Ejemplo 2: Ampliación del proyecto anterior con otro dispositivo "creando" los componentes de la variable de red
Requisito: El proyecto del ejemplo 1 se ha creado y está abierto.
Agregue un controlador estándar adicional al proyecto con un controlador de seguridad debajo de él (menú contextual: Agregar dispositivo).
Copiar el POU y GVL objetos de Aplicación de seguridad 1 debajo del nuevo controlador de seguridad.
Cambiar el nombre del nuevo Aplicación de seguridad a Aplicación de seguridad 3.
Agregar uno Lista de variables de red de seguridad (Remitente) y dos Lista de variables de la red de seguridad (Receptor) objetos debajo Aplicación de seguridad 3 por medio de la Agregar objeto dominio.
Abrir el Configuración de seguridad pestañas de la lista de variables de red de seguridad (receptor) y seleccione de la Remitente asociado lista desplegable del remitente Aplicación de seguridad 1 para la primera lista de variables de red de seguridad (receptor) y el remitente de Aplicación de seguridad 2 y para el segundo.
Si es necesario, modifique el Tiempo de vigilancia en la lista de variables de la red de seguridad (receptor).
Sugerencia
El ID de conexión se preestablece con un valor único para todo el proyecto cuando se inserta el objeto. Por lo tanto, ya no es necesario modificarlo durante el procedimiento descrito en este ejemplo.
Declarar la variable
SApp3_EStop
de tipo de datosSAFEBOOL
En el nuevo Lista de variables de red de seguridad (Remitente).Sugerencia
La dirección de seguridad de la lista de variables se predetermina con un valor único para todo el proyecto cuando se inserta el objeto. Por lo tanto, ya no es necesario modificarla durante este procedimiento. El grupo de identificadores de la lista de variables también se predetermina con un valor único para todo el proyecto para evitar conflictos.
Modificar la asignación en el POU de Aplicación de seguridad 3 para que la variable
Local_EStop
se asigna a la variableSApp3_EStop
De esta manera, el valor del interruptor de parada de emergencia se publica mediante el Lista de variables de red de seguridad (Remitente).Seleccione el
AND
operador, haga clic Añadir entrada en el menú contextual y vincular esta nueva entrada a la variableSApp1_EStop
.Las entradas de la
AND
Los operadores ahora están vinculados a laLocal_EStop
,SApp2_EStop
, ySApp1_EStop
Entradas.Colocar Aplicación de seguridad 3 como la aplicación activa y construya la aplicación haciendo clic .
Durante la operación de compilación, el sistema verifica si la configuración de la variable de red de seguridad de todo el proyecto coincide y Mapeo de SafetyApp3 se genera.
En los siguientes pasos, modificarás Aplicación de seguridad 2.
Agregar uno nuevo Lista de variables de la red de seguridad (Receptor) a Aplicación de seguridad 2 y seleccione la lista de variables de red del remitente Aplicación de seguridad 3 desde Remitente asociado lista desplegable.
Si es necesario, modifique el Tiempo de vigilancia.
Abrir el POU de Aplicación de seguridad 2 y agregar una nueva entrada a la
AND
operador (menú contextual: Añadir entrada). Vincula esta nueva entrada a laSApp3_EStop
variable.En los siguientes pasos, modificarás Aplicación de seguridad 1.
Agregar uno nuevo Lista de variables de la red de seguridad (Receptor) a Aplicación de seguridad 1 y seleccione la lista de variables de red del remitente Aplicación de seguridad 3 desde Remitente asociado lista desplegable.
Si es necesario, modifique el Tiempo de vigilancia.
Abrir el POU de Aplicación de seguridad 1 y agregar una nueva entrada a la
AND
operador (menú contextual: Añadir entrada). Vincula esta nueva entrada a laSApp3_EStop
variable.Como en el ejemplo anterior, la configuración de la red se describe con direcciones explícitas.
Configure los ajustes de comunicación para los tres controladores del proyecto para que sea posible iniciar sesión en ellos más tarde.
Desactivar la opción Utilice valores predeterminados para la dirección de red de destino y el puerto (255.255.255.255, 1202) en todas las listas de variables de la red de seguridad.
Escriba las direcciones IP de los terminales remotos correspondientes según esta figura. Debe modificar las direcciones IP de su red en consecuencia.
Para Aplicación de seguridad 3 Esta operación se describe con más detalle en los siguientes pasos:
Escriba el Dirección de red de destino
192.168.0.22
del controlador con Aplicación de seguridad 2 como la entrada para el Identificadores de lista1080 1081
en el Red PLC pestaña de la lista de variables de red de seguridad (remitente) de Aplicación de seguridad 3.Importante
Asegúrese de asignar las direcciones de red de destino a los identificadores de lista correctos; de lo contrario, la transferencia de variables de red no funcionará.
Abra la lista de variables de la red de seguridad (receptor) que importa la variable
SApp2_EStop
. Escriba el Dirección de red de destino del controlador con Aplicación de seguridad 2192.168.0.22
.Luego escribe el Dirección de red de destino
192.168.0.1
para el controlador con Aplicación de seguridad 1 En las siguientes ubicaciones:Primero en la lista de variables de la red de seguridad (remitente) para los identificadores de lista
1082 1083
y luego en la lista de variables de la red de seguridad (receptor) que importa la variableSApp1_EStop
.Ahora el proyecto está configurado para la comunicación cruzada.
Para probar el ejemplo de comunicación cruzada, primero descargue las aplicaciones a todos los controladores involucrados e inicie las aplicaciones. Asegúrese de que la aplicación SafetyAppX_Mapping correspondiente también esté ejecutándose.
El
SAppX_EStop
Las variables publicadas mediante las variables de red de seguridad ahora se transfieren a las POU de las otras SafetyApps con el valorTRUE
Este es el valor inicial que se escribe en elSAppX_EStop
variables mediante los interruptores de parada de emergencia simulados.Si es necesario, configure el
SF_EmergencyStop
POU por medio de laReset
entrada y el conectadobVar_Reset
variables.Ahora puedes activar el POU
SF_EmergencyStop
en los tres controladores interconectados activando la señal de parada de emergencia en un controlador. En el ejemplo, el interruptor de parada de emergencia se simula configurando la variable globalLocal_EStop
aFALSE
en uno de los controladores y luego escribir el valor para este controlador por medio del comando .