Descubrimiento local de OPC UA
Los servidores Discovery permiten a los clientes OPC UA obtener detalles sobre uno o más servidores OPC UA, desde un único punto.
Hay dos tipos de servidores de descubrimiento OPC UA:
- Servidores de detección locales (LDS)
- Servidores de descubrimiento global (GDS)
Este artículo mostrará cómo registrar un servidor OPC UA con un LDS y cómo un cliente OPC UA puede usar ese LDS para conectarse al servidor OPC UA.
Introducción
Como sugiere el nombre, un Local Discovery Server (LDS) se puede ejecutar en el mismo dispositivo que uno o más servidores OPC UA. Por ejemplo, es posible instalar uno o más servidores OPC UA en un dispositivo PLCnext Control, junto con el servidor OPC UA que se incluye con PLCnext Runtime. Si también se instala un LDS en ese dispositivo PLCnext Control, entonces todos los servidores OPC UA en ese dispositivo pueden registrarse con el LDS. Luego, un cliente OPC UA remoto puede simplemente consultar al LDS los detalles de todos los servidores OPC UA que se ejecutan en ese dispositivo PLCnext Control y usar esos detalles para conectarse directamente a uno o más de esos servidores OPC UA.
Algo confuso, también es posible que un servidor OPC UA se registre con un LDS que se ejecuta en un remoto máquina. De esta forma, un cliente OPC UA puede utilizar un solo LDS para descubrir todos los servidores OPC UA que se ejecutan en una red completa de dispositivos.
Hay una buena introducción a los servidores de descubrimiento OPC UA en este artículo de Unified Automation:
https://documentation.unified-automation.com/uasdkdotnet/2.5.2/html/L2UaDiscoveryConnect.html
Antecedentes
Antes de seguir los pasos de este artículo, debe comprender:
- Configuración básica del servidor OPC UA.
- Cómo conectar un cliente al servidor OPC UA en un dispositivo PLCnext Control.
- Cómo se almacenan y gestionan los certificados de seguridad en un dispositivo PLCnext Control.
Procedimiento
Para este ejemplo, la configuración de la red es la siguiente:
OPC UA Server: AXC F 2152 FW 2020.6.1
IP address: 192.168.1.10
DNS name: axc-f-2152-1
Local Discovery Server: Windows 10 PC
IP address: 192.168.1.42
DNS name: mypc.mycompany.com
OPC UA Client: Debian 10 PC
IP address: 192.168.1.3
Estas direcciones IP y nombres DNS se utilizarán a lo largo de este artículo, pero, por supuesto, debe modificarlos para su propia aplicación.
Configurar nombres DNS
Si su red no incluye un servidor DNS, edite el hosts
archivo en cada dispositivo.
El archivo de hosts se encuentra en el siguiente directorio:
- Windows:
C:\Windows\System32\drivers\etc\
- Linux:
/etc/
Agregue las siguientes entradas DNS nuevas (sustituyendo las direcciones IP y los nombres DNS de su aplicación):
En el PLC, agregue el LDS:
192.168.1.42 mypc.mycompany.com
En la máquina LDS, agregue el PLC:
192.168.1.10 axc-f-2152-1
En la máquina del Cliente OPC UA, agregue tanto el LDS como el PLC:
192.168.1.42 mypc.mycompany.com
192.168.1.10 axc-f-2152-1
Verifique que todas las entradas sean correctas haciendo ping a los nombres DNS (no las direcciones IP) que haya configurado en cada dispositivo.
Instalar el servidor de descubrimiento local
La Fundación OPC proporciona un Local Discovery Server en forma de un ejecutable basado en Windows. Esto se puede descargar de forma gratuita (después de registrarse) desde esta página:
https://opcfoundation.org/developer-tools/samples-and-tools-unified-architecture/local-discovery-server-lds/
Descargue e instale este LDS en la máquina con Windows.
Instalar el cliente OPC UA
Este ejemplo usa UaExpert de Unified Automation:
https://www.unified-automation.com/products/development-tools/uaexpert.html
Descargue e instale UaExpert en la máquina del Cliente OPC UA.
Ubicar certificados
Los diversos componentes de OPC UA (servidor, cliente y LDS) deben confiar entre sí para garantizar comunicaciones seguras. La confianza se puede lograr mediante el intercambio de certificados públicos, es decir, colocando el certificado público de cada componente en el "almacén de confianza" para los componentes que necesitan confiar en él.
Puede encontrar el certificado público para cada componente de la siguiente manera:
Servidor OPC UA
El certificado del dispositivo se puede encontrar en el almacén de identidad "OPC UA autofirmado", de forma predeterminada. Esto será diferente si está utilizando su propio certificado.
El certificado del servidor OPC UA se puede descargar desde la página de administración basada en web del PLC. A continuación, el certificado debe convertirse del formato PEM al formato DER para que lo puedan utilizar los demás componentes. Hay una gran cantidad de herramientas gratuitas que se pueden usar para esta conversión, incluida la openssl
Herramienta de línea de comandos de Linux. Un ejemplo del comando bash que podría usar es:
openssl x509 -outform der -in OPC\ UA-self-signed_certificate.crt -out uaserver.der
Servidor SUD
De forma predeterminada, el certificado para LDS se encuentra aquí:
C:\ProgramData\OPC Foundation\UA\pki\own\certs\ualdscert.der
Cliente OPC UA
- En UaExpert, seleccione el elemento de menú Configuración -> Administrar certificados.
- Haga clic en el botón "Copiar certificado de solicitud a...".
- Guarde el certificado en algún lugar a mano.
Copiar certificados a Trust Stores
Copie cada certificado (en formato .der) en los almacenes de confianza de los otros dos componentes.
El almacén de confianza para cada componente se puede ubicar de la siguiente manera:
Servidor OPC UA (PLC)
El almacén de confianza es la carpeta /opt/plcnext/Security/TrustStores/Empty/trusted
SUD
El almacén de confianza es la carpeta C:\ProgramData\OPC Foundation\UA\pki\trusted\certs
Cliente OPC UA (UaExpert)
- En UaExpert, seleccione el elemento de menú Configuración -> Administrar certificados.
- Haga clic en el botón "Abrir ubicación del certificado". Esta es la tienda de confianza para UaExpert.
Comprueba todos los cortafuegos
Como mínimo, verifique que el firewall en el servidor LDS permita el tráfico en el puerto 4840.
Configurar el servidor OPC UA en PLCnext Engineer
En PLCnext Engineer, en la ventana de configuración de OPC UA:
- Compruebe que:
- El nombre DNS es el mismo que el configurado anteriormente.
- “Visibilidad de variables” no “Ninguno”.
- Habilitar registro de detección
- Establezca la URL del servidor en
opc.tcp://mypc.mycompany.com:4840
(sustituyendo el nombre DNS de su máquina LDS)
Escriba el proyecto PLCnext Engineer en el PLC.
El PLC ahora intentará registrar automáticamente el servidor OPC UA con el LDS.
Descubra y conéctese al servidor OPC UA
- En UaExpert, haga clic en el botón + (más) en la barra de herramientas.
- Haga clic con el botón derecho en la rama "Local" de la vista de árbol y seleccione "Editar URL de detección".
- En el cuadro de texto, ingrese
opc.tcp://mypc.mycompany.com:4840
(sustituyendo el nombre DNS de su máquina LDS) y haga clic en Aceptar.
El servidor OPC UA debería aparecer en la rama Local del árbol. Ahora puede utilizar estos datos para conectarse al servidor OPC UA de la forma habitual.
Resolución de problemas
- El archivo de registro LDS se encuentra aquí:
C:\ProgramData\OPC Foundation\UA\Discovery\opcualds.log
Es posible cambiar el LogLevel (y muchos otros parámetros) en el siguiente archivo:C:\ProgramData\OPC Foundation\UA\Discovery\ualds.ini
LogLevel = debug
proporciona la información de registro más detallada. Después de cambiar la configuración de LDS, puede ser necesario reiniciar el LDS a través de la consola de "Servicios" de Windows. El nombre para mostrar del LDS es "OPC UA Local Discovery Server". - Tenga en cuenta que LDS puede devolver la URL del servidor OPC UA con
.local.
anexado al nombre DNS. Este nombre DNS debe poder resolverse mediante un servidor mDNS de multidifusión. Si este nombre DNS no se puede resolver, aparecerá un mensaje de error que contiene la URL en la ventana de registro de UaExpert. Está más allá del alcance de este tutorial describir cómo instalar y configurar un servidor DNS de multidifusión para resolver nombres DNS con un.local.
sufijo.
Conclusión
Obviamente, no hay mucho beneficio en usar un LDS cuando solo hay un servidor OPC UA en una red. Pero para las redes que incluyen una gran cantidad de servidores OPC UA, un LDS proporciona una manera conveniente de navegar y conectarse a esos servidores.
Tecnología Industrial
- Variables globales, locales y no locales de Python
- La respuesta de Discovery a los desafíos de la cadena de suministro
- Alcance variable en C++
- Java 10 - Inferencia de tipos de variables locales
- ¿Cuáles son los beneficios de trabajar con un fabricante de metal local?
- ¿El proceso de descubrimiento y por qué es importante para sus proyectos de desarrollo?
- Sistemas locales frente a globales para el control de la producción
- Cómo las empresas B2B pueden impulsar su SEO
- Certificado OPC UA “Gestión Push”
- Cómo llamar a un bloque de funciones desde un cliente OPC UA utilizando un modelo de información
- Taller de máquinas local