TN284 - Acceder a AVEVA System Platform sin utilizar el OI Gateway a través de OPC UA mediante OPC Router
Un caso típico que nos encontramos es la necesidad de compartir datos desde System Platform con algún otro cliente o sistema (HMI, SCADA, otro) sin utilizar el OI Gateway, debido a las limitaciones que pueden aparecer en los otros sistemas con las interfaces que soporta el OI Gateway (como OPC DA o SuiteLink).
Sin embargo, para los usuarios que necesitan una alternativa para conectar un sistema a través de una interfaz que no es compatible con OI Gateway, OPC Router tiene la posibilidad de convertir datos de servidores OPC UA como System Platform a otras interfaces compatibles, incluyendo por ejemplo una amplia gama de bases de datos como (SQL, MariaDB, Mongo DB, y más), servidores OPC DA, otros servidores OPC UA, brokers MQTT, servicios web SOAP y REST, sistemas ERP incluyendo SAP y más.
En este documento técnico vamos a ver como compartir datos desde AVEVA System Platform 2020 (o una versión más reciente) a través de OPC UA (sin usar OI Gateway) utilizando el router OPC para estas situaciones donde la otra aplicación cliente no es compatible con OPC UA, y necesita acceso para procesar datos de su galaxia, como un sistema ERP, una plataforma IIoT, un servicio web u otros.
En este caso, las versiones de System Platform sí que tienen afectación y relevancia, ya que a partir de la versión 2020, está disponible una interfaz de servidor OPC UA nativa. Así que, si el otro sistema que necesita acceder a los datos de System Platform puede actuar como un cliente OPC UA, puede conectarlo directamente. Sin embargo, si el otro sistema no puede actuar como cliente OPC UA, necesitará otro método, o utilizar un intermediario como OPC Router, como veremos en este documento.
Para realizar esta conexión OPC UA Client desde OPC Router a System Platform, vamos a dividir la explicación en tres puntos principales:
Punto 1: Configurar la interfaz del servidor OPC UA en System Platform.
El primer paso es crear y configurar una instancia del servicio OPC UA en el IDE de System Platform que será accesible con el puerto deseado, y la configuración de seguridad para aplicaciones cliente OPC UA externas. Así que tenemos que hacer lo siguiente:
1.1. Dentro del IDE, en la barra de menú de la parte superior seleccionamos Galaxy -> Configure -> ArchestrA Services.
1.2. Se abrirá el cuadro de diálogo "Configure ArchestrA Services", en el que tendremos que expandir el nombre de la galaxia.
1.3. A continuación, encontramos "Aveva.OPCUAService.[Version]" en la lista, hacemos clic con el botón derecho y seleccionamos "Create" para crear una nueva instancia del Servicio OPC UA. (Nota: Si ya tienes una instancia por defecto creada que deseas utilizar, puedes saltarte este paso).
1.4. Expandiendo "Aveva.OPCUAService.[Version]" en el árbol jerárquico, se muestra la nueva instancia con el nombre por defecto de "OPCUAService_001". Para editar esto, necesitamos hacer clic con el botón derecho en la nueva instancia y seleccionar "Check-out", para que nos permita realizar los cambios requeridos.
1.5. Ahora es posible editar las siguientes propiedades de la instancia del servicio OPC UA en el panel derecho de "Configure ArchestrA Services".
1) Port Number: Define la porción de puerto del endpoint que los clientes OPC UA necesitarán usar para acceder a esta instancia de servidor OPC UA (así como, el puerto que necesitará ser permitido en cualquier firewall entre las máquinas cliente y servidor OPC UA). Por defecto es 48031.
2) Require encrypted communication between OPC UA clients and this server instance: De forma predeterminada, este parámetro está activado, exigiendo que todos los clientes OPC UA que deseen conectarse a esta instancia de servidor OPC UA utilicen cifrado (System Platform admite actualmente Basic256SHA256 con SignAndEncrypt, por lo que el cliente OPC UA debe utilizar exactamente el mismo nivel de cifrado).
Si se deshabilita esta configuración, lo cual no es recomendable, se permitirá que los clientes OPC UA se conecten sin utilizar ningún cifrado, lo que reducirá el nivel de seguridad de su galaxia y aumentará el riesgo de amenazas de seguridad externas. Esto se debe tener en cuenta para aplicaciones en las que planea permitir que los clientes OPC UA escriban en su galaxia.
3) Allow anonymous client connection (no username/password): Si se deja activada esta opción, cualquier cliente OPC UA podrá conectarse a esta instancia de servidor OPC UA sin especificar un nombre de usuario y contraseña aprobados. Se debe tener en cuenta que esta configuración elimina una capa adicional de seguridad.
4) Allow authenticated Galaxy Users to write attributes, depending on their security role: Dejando este parámetro habilitado, se permitirá a los usuarios de la galaxia que hayan proporcionado un nombre de usuario/contraseña válidos al conectarse a esta instancia de servidor OPC UA, y ese usuario tenga el rol de seguridad apropiado para cambiar atributos, realizar escrituras. Deshabilitar esta opción hará que todas las conexiones OPC UA a esta instancia de servidor sean de sólo lectura, independientemente de la autenticación utilizada.
5) Assignments: Los hosts de deploy que están disponibles para deployar esta instancia de servidor OPC UA, estarán disponibles para ser seleccionados aquí. Dependiendo del host que se seleccione, la asignación más el número de puerto previamente definido determinará la URL del Endpoint OPC UA que un cliente OPC UA necesitará utilizar para conectarse.
Por ejemplo, si el nombre de host es "WWSP2020R2" con el puerto por defecto 48031, entonces la URL del Endpoint OPC UA será: opc.tcp://SP2020R2:48031
1.6. Una vez que los ajustes anteriores se han configurado como se requieren para la aplicación, hacemos clic en el botón "Update" para aplicar los cambios.
1.7. A continuación, tenemos que volver a hacer clic con el botón derecho del ratón sobre la instancia en el árbol jerárquico, y seleccionar "Check-In" para volver a registrar la instancia una vez aplicadas las modificaciones.
1.8. Finalmente, necesitamos deployar la nueva instancia del servidor OPC UA haciendo clic con el botón derecho sobre la instancia de nuevo y seleccionando "Deploy". Esto mueve el servicio al nodo de asignación seleccionado, donde comenzará a ejecutarse y estará disponible para los clientes OPC UA.
1.9. Ahora ya podemos cerrar el cuadro de diálogo "Configure ArchestrA Services", ya que la configuración del servidor OPC UA está completada por la parte de System Platform.
NOTA: Dependiendo de cómo tenga configurada la seguridad su departamento de IT en los equipos cliente y servidor, puede que sea necesario solicitar una excepción del firewall para el puerto TCP que ha especificado para el servidor OPC UA. Consulte a su departamento de IT si es necesario.
Punto 2: Configurar OPC Router como un cliente OPC UA para conectarse a AVEVA System Platform.
Ahora que el servicio OPC UA Server de System Platform ha sido configurado y deployado, el siguiente paso es configurar OPC Router para actuar como un cliente OPC UA que apunte a ese servidor con la siguiente configuración:
2.1. Primero tenemos que ir a la sección “Plug-ins” de la configuración del OPC Router, desplegar la opción "Shopfloor", y hacer doble clic en "OPC UA Client" bajo esta sección. Seguidamente, haremos clic en el botón "Add Instance".
2.2. Esto nos permite añadir una nueva conexión al servidor OPC UA en System Platform especificando los siguientes ajustes disponibles. Indicaremos solamente los ajustes clave que necesitan ser configurados para conectar con System Platform y todos los demás ajustes pueden dejarse por defecto:
1) Name: Nombre definido por el usuario utilizado por OPC Router para identificar esta conexión.
2) Client certificate: Selecciona que certificado utilizará el cliente OPC UA de OPC Router para cifrar esta conexión. Se recomienda crear un nuevo certificado aquí pulsando el botón azul "+", que muestra el siguiente diálogo "Create Certificate".
Puede mantener los valores predeterminados en todo, excepto en el período de caducidad. El valor predeterminado es de 120 meses o 10 años, así que elija un período que se adapte a su aplicación asumiendo de que el certificado tendrá que ser modificado/editado e intercambiado con el servidor otra vez después de ese período.
Ahora, hacer clic en “Create” para completar el certificado, que se seleccionará automáticamente.
3) Trusted server certificates: Selecciona qué certificados de seguridad aceptar o confiar del servidor OPC UA. La configuración por defecto es "All", lo que hará que el certificado del servidor OPC UA al que se está conectando se confíe automáticamente. Se recomienda seleccionar aquí "Router", que nos preguntará si queremos confiar o rechazar el certificado del servidor cuando intentemos conectarnos, permitiéndonos revisar el certificado antes de confiar en él.
4) Endpoint: Aquí podemos introducir la URL completa referenciada en las propiedades de la instancia del servicio OPC UA en System Platform que vimos anteriormente, incluyendo el prefijo opc.tcp:// y seguido del puerto. Ejemplo: opc.tcp://SP2020R2:48031
5) Security Options: Por defecto, "Highest security level" está activado, que significa que OPC Router utiliza el nivel de seguridad más alto que tanto OPC Router como el servidor OPC UA soportan. Actualmente, el nivel más alto de seguridad es el mismo que System Platform (Basic256Sha256 with Sign&Encrypt) por lo que podemos dejarlo habilitado.
Si no estás seguro, puedes desactivar "Highest security level" y seleccionar manualmente los niveles de "Mode" y "Encryption" que correspondan a lo que soporta el servidor OPC UA, ya que estos niveles están sujetos a cambios con el tiempo a medida que se añadan niveles más altos de encriptación. Para la conexión con System Platform, necesitamos seleccionar Basic256Sha256.
6) Login Mode: Para la autenticación, OPC Router por defecto está configurado en "Anonymous". Para realizar escrituras o si se han desactivado las conexiones anónimas en la configuración OPC UA de System Platform, aquí es donde hay que introducir el "User" y la "Password" de la galaxia de System Platform.
7) Check Connection: Este botón nos permite confirmar que la configuración de la conexión es correcta. Pero con OPC UA, hay algunos pasos adicionales requeridos antes de que la prueba se complete con éxito debido al intercambio de certificados requerido para conexiones OPC UA encriptadas. Así que, primero, necesitamos hacer clic en el botón.
Seguidamente, nos aparece la siguiente advertencia, ya que aún no hemos confiado en el certificado de seguridad de System Platform para el cifrado. Podemos hacerlo simplemente pulsando "Yes", o también podríamos revisar el certificado primero pulsando "Show certificate".
Sin embargo, el primer intento seguirá fallando debido a que el certificado de OPC Router todavía no es de confianza para System Platform. Así que antes de poder conectarse con éxito y luego navegar y seleccionar los elementos a los que queremos acceder desde System Platform, tenemos que establecer esa relación de confianza.
Para solucionar esto, en la máquina desde dónde nos conectamos a la galaxia de System Platform, debemos navegar hasta C:\ProgramData\AVEVA\PCS\OPC UA Rejected Client Certificates\certs donde encontramos el certificado .der para OPC Router.
A continuación, tenemos que instalar el certificado para que sea de confianza. Para ello, debemos hacer clic con el botón derecho en el archivo .der y seleccionar "Install Certificate".
Esto inicia el Certificate Import Wizard. Debemos seleccionar "Local Machine" en la opción "Store Location" y hacer clic en "Next".
Ahora seleccionamos "Place all certificates in the following store", hacemos clic en "Browse" y seleccionamos "Trusted People" de la lista, después hacemos clic en "Next".
Confirmamos que la configuración es correcta y hacemos clic en "Finish".
A continuación, recibirá una confirmación de que el certificado se ha importado correctamente.
Ahora, volviendo de nuevo a OPC Router, podemos pulsar el botón "Check Connection" de nuevo y la conexión se completará con éxito. Seguidamente, podemos proceder y configurar los objetos o tags a los que nos gustaría acceder en System Platform.
Finalmente, como ya hemos completado todos los ajustes de la conexión, podemos hacer clic en "OK" para terminar esta parte de la configuración.
2.3. El siguiente paso es utilizar esta nueva conexión OPC UA para la transferencia de datos en una plantilla de flujo de trabajo visual en OPC Router. Dada la amplia variedad de opciones disponibles para el flujo de trabajo completo, nos limitaremos a la parte de la fuente OPC UA de la configuración específica de System Platform.
A continuación, crearemos un escenario a modo de ejemplo de un flujo de trabajo completo para transferir datos desde System Platform a archivos de texto utilizando su conexión OPC UA a System Platform como origen del flujo de trabajo.
Así que vamos a la sección "Connections" de la configuración de OPC Router, hacemos clic con el botón derecho del ratón en "Connections" (debajo de "Local Service") y seleccionamos "New Connection" en el menú.
Introduciremos un nombre para esta conexión y pulsaremos "Enter".
Esto abrirá la nueva conexión. Para utilizar nodos/items OPC UA de System Platform como fuente en OPC Router, necesitamos el OPC Data Access Transfer Object disponible a la derecha bajo "OPC Transfer Objects" en la sección "Data Sources and Destinations".
Seguidamente, tenemos que arrastrar y soltar una instancia del objeto OPC Data Access en la plantilla de diseño.
Al hacer doble clic en el objeto OPC Data Access se abren sus propiedades, donde podemos seleccionar el servidor OPC UA que acabamos de configurar en el menú desplegable "OPC access data" de la parte superior.
Ahora podemos hacer clic en el botón "Tag Browser"
situado en la parte inferior izquierda para seleccionar los nodos/elementos a
los que queremos acceder desde System Platform en la sección "ModelView". A continuación,
hacer clic en el botón central "Apply" para aplicar la
configuración.
La acción previa añade los elementos seleccionados a nuestro objeto OPC Data Access donde podemos pulsar "OK" para aplicar.
Ahora este objeto ya está listo para ser utilizado como fuente para la transferencia a cualquier otra interfaz/destino soportado por OPC Router.
Punto 3: Configurar una de las otras interfaces de OPC Router para utilizar los Data Points de System Platform.
Como el objetivo requerido es compartir los datos de System Platform con otros sistemas que no sean compatibles con OPC UA, ahora sería necesario definir también cuál es el destino de esos datos. De forma similar a como hemos configurado la conexión al servidor OPC UA de System Platform, sería necesario configurar el Plug-in apropiado para el sistema de destino, pero que no vamos a explicar debido a la amplia variedad de plug-ins diferentes disponibles en OPC Router.
Pero podemos mostrar un ejemplo de configuración del Visual Workflow en OPC Router para mover datos de System Platfrom a otro sistema. Por ejemplo, si quisieramos registrar los valores de los datos a un archivo CSV en un intervalo de tiempo establecido, podríais diseñar un flujo de trabajo similar al siguiente:
Y con todos los cambios en OPC Router, cuando estés listo para activar la configuración realizada y empezar a comunicar, asegúrate de ir a la sección "Go Productive" de la configuración y seleccionar los elementos que se utilizan en tu proyecto, y hacer clic en el botón "Go productive" para publicar los cambios.
Finalmente, combinando la información de este documento técnico y las necesidades de enviar esta información proveniente de System Platform a otros sistemas no compatibles con OPC UA, se podrán compartir datos de System Platform con una variedad de sistemas, incluyendo SAP, servicios web RESTful y bases de datos entre otros.
Nota Importante: Esta Nota Técnica se entrega “as is”, es decir, como complemento a la documentación del producto, pero no incluido dentro del ámbito del Soporte Técnico. Por tanto, cualquier mal funcionamiento derivado del contenido de esta nota técnica no es responsabilidad de Becolve Digital.