Skip to main content

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.

. Explicación de los valores de configuración editables de las listas de variables de la red de seguridad de los ejemplos
  • 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 TRUEEn lugar de accionar un interruptor físico, el valor de esta variable se puede cambiar mediante el Depurar → Escribir valores comando para observar la reacción del sistema distribuido globalmente.

  1. 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.

  2. Seleccione el punto del nodo Aplicación de seguridad en el árbol de dispositivos y haga clic Agregar objeto → POU extendido (seguridad) en el menú contextual.

  3. 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.

  4. Insertar un SF_EmergencyStop bloque de función en el POU abierto y asignar el valor TRUE hacia Activar entrada.

  5. Añadir un GVL a Aplicación de seguridad por medio del comando Agregar objeto → Lista de variables globales (seguridad).

  6. En esta GVL, declare la variable global Local_EStop de tipo de datos SAFEBOOL con el valor inicial de TRUE (que reemplaza el interruptor de parada de emergencia físico en el ejemplo).

  7. 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.

  8. 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

  1. Abra el POU desde Aplicación de seguridad en el proyecto e insertar un AND operador antes del POU SF_EmergencyStop para que la salida de la AND El operador está conectado a la entrada POU E_StopIn.

  2. Asignar la variable global Local_EStop a la primera entrada de la AND operador.

  3. En el POU, declare una variable local bVar_Reset de tipo de datos BOOL y vincular esto a la Reset Entrada del POU SF_EmergencyStopEsto es necesario para la depuración.

  4. 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 variable SApp1_EStop de tipo de datos SAFEBOOL en la lista de variables de la red de seguridad (remitente).

  5. 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 variable SApp1_EStop.

  6. Abra el cuadro de diálogo de propiedades de Aplicación de seguridad y cambiarle el nombre a Aplicación de seguridad 1.

  7. 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.

  8. 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.

  9. Colocar Aplicación de seguridad 2 como la aplicación activa y haga clic Construir → ConstruirLa compilación da como resultado una nueva aplicación de mapeo. Mapeo de SafetyApp2 siendo creado debajo del nuevo controlador estándar.

  10. Después de la compilación, se muestran varios errores relacionados con la comunicación cruzada segura en la vista de mensajes (Ver → 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 como SApp1_EStop_1 porque el SApp1_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 a SApp1_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.

  11. Abrir el POU de Aplicación de seguridad 2.

  12. Asignar la variable SApp1_EStop a la segunda entrada de la AND operador.

  13. Asignar la variable local Local_EStop (señal del interruptor de parada de emergencia de SafetyApp2) a la variable del transmisor SApp2_EStop.

  14. Colocar Aplicación de seguridad 1 nuevamente como la aplicación activa y haga clic Construir → Construir.

  15. 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.

  16. 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.

  17. Abrir el POU de Aplicación de seguridad 1.

  18. Asignar la variable remota disponible SAPp2_EStop a la segunda entrada de la AND operador.

  19. Reconstruir Aplicación de seguridad 1.

    No se reportan más errores.

  20. 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:

  21. 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.

  22. sil3_img_nvl_config_example1.png

    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 IP 192.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.

  23. 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 la Reset entrada y la bVar_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 a FALSE en uno de los dos controladores y luego escribir el valor para este controlador mediante el comando Depurar → Escribir valores.

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.

  1. Agregue un controlador estándar adicional al proyecto con un controlador de seguridad debajo de él (menú contextual: Agregar dispositivo).

  2. Copiar el POU y GVL objetos de Aplicación de seguridad 1 debajo del nuevo controlador de seguridad.

  3. Cambiar el nombre del nuevo Aplicación de seguridad a Aplicación de seguridad 3.

  4. 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.

  5. 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.

  6. Declarar la variable SApp3_EStop de tipo de datos SAFEBOOL 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.

  7. Modificar la asignación en el POU de Aplicación de seguridad 3 para que la variable Local_EStop se asigna a la variable SApp3_EStopDe esta manera, el valor del interruptor de parada de emergencia se publica mediante el Lista de variables de red de seguridad (Remitente).

  8. Seleccione el AND operador, haga clic Añadir entrada en el menú contextual y vincular esta nueva entrada a la variable SApp1_EStop.

    Las entradas de la AND Los operadores ahora están vinculados a la Local_EStop, SApp2_EStop, y SApp1_EStop Entradas.

  9. Colocar Aplicación de seguridad 3 como la aplicación activa y construya la aplicación haciendo clic Construir → Construir.

    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.

  10. En los siguientes pasos, modificarás Aplicación de seguridad 2.

  11. 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.

  12. Si es necesario, modifique el Tiempo de vigilancia.

  13. 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 la SApp3_EStop variable.

  14. En los siguientes pasos, modificarás Aplicación de seguridad 1.

  15. 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.

  16. Si es necesario, modifique el Tiempo de vigilancia.

  17. 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 la SApp3_EStop variable.

  18. Como en el ejemplo anterior, la configuración de la red se describe con direcciones explícitas.

  19. Configure los ajustes de comunicación para los tres controladores del proyecto para que sea posible iniciar sesión en ellos más tarde.

  20. 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.

  21. sil3_img_nvl_config_example2.png

    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:

  22. 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 lista 1080 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á.

  23. 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 2 192.168.0.22.

  24. 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 variable SApp1_EStop.

  25. 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 valor TRUEEste es el valor inicial que se escribe en el SAppX_EStop variables mediante los interruptores de parada de emergencia simulados.

  26. Si es necesario, configure el SF_EmergencyStop POU por medio de la Reset entrada y el conectado bVar_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 global Local_EStop a FALSE en uno de los controladores y luego escribir el valor para este controlador por medio del comando Depurar → Escribir valores.