Comunicación IDS NXT OPC UA

Integración de cámaras IDS NXT en sistemas de automatización de fábricas mediante OPC UA

Gracias a una actualización del software, las cámaras IDS NXT se han dotado de otro elemento vanguardista que les permite integrarse perfectamente en la automatización de la fábrica. Un plugin integra un servidor OPC UA en las cámaras. Esto les permite desplegar en la red sus prestaciones basadas en inteligencia artificial mediante un "recetario" y comunicar los resultados directamente del nivel de campo al nivel de máquina y de control. También hace que las configuraciones de la cámara y las tareas de inferencia basadas en apps de visión artificial sean accesibles en el entorno industrial en un formato compatible y legible para todos los clientes OPC UA. Por consiguiente, OPC UA es el complemento ideal de la industria 4.0 para sus cámaras IDS NXT.

OPC UA

OPC UA es una tecnología clave. Unifica la comunicación entre clientes y servidores. También define cómo se describen los dispositivos (servidores) ante los clientes y qué información y servicios ofrecen. Este intercambio uniforme a través de todas las capas físicas y los buses de campo basados en Ethernet supone una enorme simplificación del trabajo de ingeniería, dado que los datos ya no tienen que ser leídos, convertidos y sincronizados mediante distintos protocolos y pasarelas. Esto permite ahorrar tiempo y costes en la automatización y garantizar una rápida integración en las plantas industriales. Con la especificación OPC Machine Vision Companion, esta tecnología de comunicación transversal entre fabricantes y sectores es la interfaz mejorada idónea para que las cámaras IDS NXT puedan aplicar fácilmente "recetas" basadas en inteligencia artificial en la automatización de la fábrica.

Plugin de servidor IDS NXT OPC UA

Por medio del plugin de servidor OPC UA se pueden conectar todas las cámaras IDS NXT a servidores OPC UA, que pueden ser activados por todos los clientes OPC UA. El plugin encapsula las tareas de procesamiento de imágenes en módulos de funciones denominados "recetas". También se resumen y se almacenan en conjuntos de datos de configuración los ajustes necesarios de la cámara, en ocasiones muy profundos, de aplicaciones especiales. Para estas medidas, el plugin ofrece las funciones correspondientes por medio de la interfaz REST. Puede utilizarlas muy fácilmente a través de la interfaz gráfica de usuario del IDS NXT cockpit. Los resultados del procesamiento de imágenes pueden ser consultados por los clientes OPC UA mediante el Result Management o estar suscritos como evento. El modelo de información del dispositivo proporciona la información general sobre el aparato, como su nombre o su número de serie. La comunicación OPC UA funciona como una interfaz de cámara añadida que está disponible tras iniciar el servidor OPC UA en la red basada en Ethernet.

Cliente OPC UA

Por medio del plugin OPC UA se pueden conectar todas las cámaras IDS NXT con todos los clientes OPC UA. Puede tratarse por ejemplo de un software propietario de un autómata programable o de un sistema de gestión. También puede implementar su propio cliente OPC UA con ayuda de las bibliotecas de desarrollo OPC UA para distintos lenguajes de programación como C++, C# o Python. Para probar la facilidad y rapidez con la que se puede integrar la cámara en redes OPC UA existentes utilizaremos el cliente OPC UA conocido "UaExpert®" para la demostración del plugin OPC UA. El cliente completo ofrece una amplia gama de funciones y una interfaz gráfica de usuario que facilita la demostración de las capacidades del servidor IDS NXT OPC UA. Es compatible con funciones OPC UA como DataAccess, Events, y la llamada de métodos OPC UA.

Uso de IDS NXT como OPC UA Vision System

Para hacer una demostración de cómo se controla la cámara IDS NXT mediante OPC UA, en el presente consejo técnico se describe un flujo de trabajo de procesamiento de imágenes basado en inteligencia artificial que podrá seguir fácilmente con su cámara IDS NXT y unos pocos objetos (bolígrafo, regla, goma de borrar, llave, etc.). Siga estas instrucciones paso a paso.

1) Configurar tarea de inferencia

  • Para este ejemplo utilizamos la app de visión artificial "Classifier" con la red neuronal preinstalada (CNN) "ImageNet1000". Instale e inicie la app utilizando el "VApp Manager" del IDS NXT cockpit.
  • Gracias a la red entrenada previamente ImageNet1000, la app Classifier reconoce muchos objetos como bolígrafos, llaves o tarjetas de visita. Ponga los objetos que desee bajo su cámara IDS NXT y configure la captura de imágenes en modo libre de forma que pueda reproducir los objetos completamente y con los ajustes adecuados (color, enfoque, exposición, etc.).
  • Utilice ROI para objetos que desee identificar.
    Los resultados de inferencia de la clasificación de cada captura se muestran en los ROI y en el área de resultados con la probabilidad correspondiente.
    En nuestro caso se reconocen bolígrafos (68%), sacapuntas (100%) y gomas (98%).

2) Iniciar servidor OPC UA

  • No es necesario programar nada para proporcionar la comunicación OPC por parte de la cámara. Solo tiene que instalar (1) e iniciar (2) el plugin de servidor OPC UA a través del "VApp Manager" del IDS NXT cockpit de su cámara IDS NXT.
  • Puede iniciar (1) y detener (2) el servidor OPC UA a través de las acciones del plugin. Por defecto el servidor se inicia automáticamente (3) cuando se inicia el plugin.

3) Crear configuración de OPC UA y receta

  • Gracias al IDS NXT cockpit es fácil crear y guardar configuraciones en la cámara IDS NXT mediante el plugin OPC UA.
  • Simplemente tiene que dar un nombre a los ajustes actuales de la cámara (Configuration name) y a la tarea de inferencia con la app Classifier (Recipe name) y guardar la configuración y la receta mediante las acciones correspondientes. Con esto habrá finalizado la configuración OPC UA de la cámara por medio del cockpit.

4) Establecimiento de la conexión OPC UA cliente-servidor

  • Instale e inicie el cliente OPC UA "UaExpert®".
  • Para conectar el servidor OPC UA de la cámara haga clic en la opción (Add Server) de la barra de menús. Vaya a la pestaña "Advanced".
  • Asigne un "Configuration Name" a la conexión
  • Indique la "Endpoint URL" del servidor (ej.: "opc.tcp://169.254.173.231:4840")
    • Protocolo: opc.tcp
    • Dirección IP de la cámara
    • Puerto de servidor OPC UA: 4840
  • Seleccione la "Security Policy" (opciones compatibles: None, Basic128Rsa15, Basic256, Basic256Sha256)
  • Seleccione el "Message Security Mode" (None, Sign, Sign&Encrypt)
  • Introduzca los datos de acceso de su cámara IDS NXT en los "Authentication Settings". (p. ej.: usuario admin o service)
  • Ahora se puede conectar con el servidor OPC UA. "Connect"

5) Consultar o modificar información del dispositivo

  • Para probar la conexión del servidor puede navegar por el modelo de información de la cámara en la ventana "Adress Space". Si por ejemplo cambia el nombre del dispositivo en UaExpert®, este también se actualiza en el IDS NXT cockpit.
  • Además, puede suscribir parámetros de estado y estadísticas a través de la "Data Access View" para hacer un seguimiento de los cambios. Por ejemplo, si arrastra el contador de imágenes "ImageTotal" a la ventana, su valor aumentará dinámicamente con cada nueva captura de imagen de la cámara.
  • Para restablecer el contador de imágenes, ejecute la "Call" en el menú contextual de los métodos "ResetAll". El contador de imágenes volverá a contar a partir de "0".

6) Activar la configuración de la cámara

  • En primer lugar, recupere una lista de configuraciones almacenadas en la cámara con una llamada a la función GetConfigurationList.
    ResultCount nos muestra "1" configuración disponible con la InternalId "conf_classifier.json".
  • Utilice la función ActivateConfiguration para definir la configuración actualmente válida cuyos parámetros guardados se ajustan en la cámara. Establezca la InternalId correspondiente como valor de entrada (Id) para la llamada.
  • Puede comprobar la configuración activa utilizando el nodo Active Configuration. Allí debería aparecer la Id "conf_classifier.json" en los atributos.

7) Preparar tarea (receta)

A continuación, procedemos de la misma manera con la tarea de procesamiento de imágenes guardadas previamente de la cámara.

  • Una llamada a la función GetRecipeListFiltered con el valor de entrada IsPrepared = 2 (DONTCARE_2) arroja "1" receta guardada como ResultCount. En nuestro caso, la receta guardada con la Id "recipe_classifier_imagenet.json"
  • Ahora con la función PrepareRecipe prepare esta receta como tarea de procesamiento de imágenes activa estableciendo la Id consultada anteriormente como valor de entrada "InternalIdIn".

8) Suscripción a un evento de resultado

La cámara está ahora totalmente preparada a través del cliente OPC UA. Antes de ejecutar la tarea de la cámara debe suscribirse primero el evento de resultado.

  • Para ello agregue un EventView ...
  • y arrastre el VisionSystem de la cámara a esta vista.
  • Active los campos de los SimpleEvents y los ConditionTypes para obtener todos los detalles.
  • Confirme la selección pulsando el botón Apply.

9) Ejecutar tarea (receta) - evaluar resultado de evento

Ahora dejamos que la cámara ejecute su tarea exactamente una vez.

  • Para ello llame el método StartSingleJob una vez.
  • En EventView se recibe un ResultReadyEvent de la cámara.
  • En los Event-Details vemos los resultados de la inferencia de los tres ROI establecidos (ballpoint, pencil_sharpener, rubber_eraser) con las respectivas probabilidades de la clasificación.