Cómo usar servidores de descubrimiento local OPC UA para registro eficiente de servidores y conexión de clientes
Los servidores de descubrimiento permiten a los clientes OPC UA obtener detalles sobre uno o más servidores OPC UA, desde un solo punto.
Hay dos tipos de servidores de descubrimiento OPC UA:
- Servidores de Descubrimiento Local (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 Servidor de Descubrimiento Local (LDS) puede ejecutarse 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 el PLCnext Runtime. Si un LDS también está instalado 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 el LDS para obtener 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 confusamente, también es posible que un servidor OPC UA se registre con un LDS que se ejecuta en una máquina remota. De esta manera, un solo LDS puede ser usado por un cliente OPC UA 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 en este artículo, debe entender:
- Configuración básica de 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 red es la siguiente:
Servidor OPC UA: AXC F 2152 FW 2020.6.1 IP: 192.168.1.10 Nombre DNS: axc-f-2152-1
Servidor de Descubrimiento Local: Windows 10 PC IP: 192.168.1.42 Nombre DNS: mypc.mycompany.com
Cliente OPC UA: Debian 10 PC IP: 192.168.1.3
Estas direcciones IP y nombres DNS se usarán en todo 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 archivo hosts en cada dispositivo.
El archivo hosts se encuentra en el siguiente directorio:
- Windows:
C:\Windows\System32\drivers\etc\ - Linux:
/etc/
Añada las siguientes nuevas entradas DNS (sustituyendo las direcciones IP y nombres DNS para su aplicación):
En el PLC, añada el LDS:
192.168.1.42 mypc.mycompany.com
En la máquina LDS, añada el PLC:
192.168.1.10 axc-f-2152-1
En la máquina cliente OPC UA, añada 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 son correctas haciendo ping a los nombres DNS (no a las direcciones IP) que ha configurado en cada dispositivo.
Instalar el Servidor de Descubrimiento Local
La Fundación OPC proporciona un Servidor de Descubrimiento Local en forma de un ejecutable basado en Windows. Esto puede descargarse gratis (después de registro) desde esta página:
Descargue e instale este LDS en la máquina 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 cliente OPC UA.
Localizar certificados
Los diversos componentes OPC UA - Servidor, Cliente y LDS - necesitan confiar entre sí para asegurar comunicaciones seguras. La confianza se puede lograr intercambiando certificados públicos - es decir, poniendo el certificado público de cada componente en la "tienda de confianza" para el/los componente(s) 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 la tienda de identidad "OPC UA-self-signed", por defecto. Esto será diferente si está usando su propio certificado.
El certificado del servidor OPC UA puede descargarse desde la página de Gestión Basada en Web del PLC. El certificado debe convertirse luego de formato PEM a formato DER para ser usado por los otros componentes. Hay un gran número de herramientas gratuitas que pueden usarse para esta conversión, incluyendo la herramienta de línea de comandos openssl 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 LDS
Por defecto, el certificado para el 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 -> Gestionar Certificados.
- Haga clic en el botón "Copiar Certificado de Aplicación A...".
- Guarde el certificado en un lugar accesible.
Copiar certificados a Tiendas de Confianza
Copie cada certificado (en formato .der) a las tiendas de confianza para los otros dos componentes.
La tienda de confianza para cada componente se puede localizar de la siguiente manera:
Servidor OPC UA (PLC)
La tienda de confianza es la carpeta /opt/plcnext/Security/TrustStores/Empty/trusted
LDS
La tienda 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 -> Gestionar Certificados.
- Haga clic en el botón "Abrir Ubicación de Certificado". Esta es la tienda de confianza para UaExpert.
Verificar todos los firewalls
Como mínimo, verifique que el firewall en el servidor LDS permita tráfico en el puerto 4840.
Configurar el servidor OPC UA en PLCnext Engineer
En PLCnext Engineer, en la ventana de configuración OPC UA:
- Verifique que:
- El nombre DNS es el mismo que el configurado anteriormente.
- "Visibilidad de variables" no es "Ninguno".
- Habilitar Registro de Descubrimiento
- Establecer la URL del Servidor a
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á automáticamente registrar el servidor OPC UA con el LDS.
Descubrir y conectar al servidor OPC UA
- En UaExpert, haga clic en el botón + (más) en la barra de herramientas.
- Haga clic derecho en la rama "Local" de la vista de árbol, y seleccione "Editar URL de Descubrimiento".
- 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 usar estos detalles para conectarse al servidor OPC UA de la manera habitual.
Solución de problemas
- El archivo de log del LDS se encuentra aquí:
C:\ProgramData\OPC Foundation\UA\Discovery\opcualds.logEs posible cambiar el LogLevel (y muchos otros parámetros) en el siguiente archivo:C:\ProgramData\OPC Foundation\UA\Discovery\ualds.iniLogLevel = debugda la información de registro más detallada. Después de cambiar la configuración del 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 el LDS puede devolver la URL del servidor OPC UA con
.local.anexado al nombre DNS. Este nombre DNS debería ser resoluble por un servidor mDNS multicast. Si este nombre DNS no puede resolverse, aparecerá un mensaje de error que contiene la URL en la ventana de log de UaExpert. Está fuera del alcance de este tutorial describir cómo instalar y configurar un servidor DNS multicast para resolver nombres DNS con sufijo.local..
Conclusión
Obviamente no hay mucho beneficio en usar un LDS cuando solo hay un servidor OPC UA en una red. Pero para redes que incluyen un gran número de servidores OPC UA, un LDS proporciona una forma conveniente de navegar y conectarse a esos servidores.
Tecnología Industrial
- Por qué asociarse con un fabricante metálico local mejora la fiabilidad y la rentabilidad
- Domina la Fase de Discovery: Por Qué Impulsa el Éxito en Proyectos de Desarrollo
- Control de producción local vs. global: ¿Qué sistema impulsa la eficiencia?
- Estrategias SEO Comprobadas para Empresas B2B que Impulsan Visibilidad y Crecimiento
- Despliegue centralizado de certificados OPC UA mediante gestión GDS Push
- Invocar bloques de función PLC vía clientes OPC UA: Guía práctica
- Asociarse con un Taller de Maquinado Local: De Prototipos a Producción
- La solución IoT de Discovery transforma la gestión de la cadena de suministro
- Entendiendo el Alcance de Variables en C++: Variables Locales vs Globales
- Entendiendo variables globales, locales y nonlocal en Python
- Java 10: Dominar la inferencia de tipo de variable local con var