01 - Introducción a TC Vision

Video: https://youtu.be/JwIcwkzvpYw

#PLC #TwinCAT3 #Beckhoff #Vision #Industrial_Automation

Previous Part | Next Part 🔜

↩️ Go Back

↩️ Go Back

Table of Contents:


A)

Bienvenidos a este primer vídeo del curso de TwinCat Vision. En este primer vídeo vamos a hacer una presentación conceptual del producto. Vamos a empezar con una pequeña introducción.

TwinCat Vision es una nueva función de TwinCat 3 que nos permite integrar visión artificial dentro de TwinCat 3 PLC. Recordemos que TwinCat 3 es el software de control en tiempo real de Bekoff que corre en un PC industrial. Las funciones que actualmente soporta TwinCat Vision serían detección y reconocimiento de objetos en 2D.

También la obtención de posición y orientación de objetos o piezas en 2D. También funciones de medición y lectura de códigos de barra, data matrix o códigos QR. En el futuro prevemos tener también funciones disponibles en 3D, pero en el estado actual solo soportamos funciones en 2D.

TwinCat Vision se integra dentro del framework de TwinCat 3 tanto en la parte de desarrollo como en la parte de runtime. En la parte de desarrollo tendremos una serie de herramientas de diagnóstico, de configuración y evidentemente de programación. Y veremos que todo esto se integra para tener las funciones de visión dentro del entorno de tiempo real de TwinCat 3. Vamos a ver ahora la arquitectura de TwinCat Vision.

Partiremos de un PC industrial donde estará corriendo TwinCat 3 para controlar una máquina, una línea de producción o un proceso. Podemos tener TwinCat 3 PLC y diferentes funcionalidades de comunicación OPC UA, conexión con bases de datos, IOT, Motion Control, podemos tener cualquier tipo de funcionalidad. Y además queremos añadir la funcionalidad de TwinCat Vision.

Por un lado tendremos el software de TwinCat Vision y por otro lado, a nivel de hardware, simplemente necesitaremos conectar una cámara con interfaz GKE Vision que va a ser el interfaz soportado por TwinCat Vision para conectividad con cámaras. Y en principio la cámara puede ser de cualquier fabricante siempre que soporte este interfaz GKE Vision. Necesitaremos un puerto Ethernet a 1Gbps o 10Gbps y la cámara nos enviará directamente el streaming de las imágenes al PC para hacer el procesamiento en el propio PC con TwinCat Vision.

También podemos tener más de una cámara, podemos tener varias cámaras, simplemente necesitaremos el número suficiente de puertos Ethernet en el PC para soportar la comunicación con cada una de las cámaras. Ahora vamos a comparar TwinCat Vision con la solución clásica de integración de software de visión junto con TwinCat. En la solución clásica tendríamos el TwinCat en tiempo real pero tendríamos un software de visión que podría estar desarrollado en C++ o en otros lenguajes o en otros frameworks pero que no correría en el tiempo real sino que correría en modo usuario como un proceso de Windows.

Entonces tendríamos una comunicación entre este proceso y TwinCat con nuestra librería típica de conectividad mediante el protocolo ADS que es el protocolo nativo propio de TwinCat que facilita la comunicación desde cualquier software con el TwinCat. Esto es perfectamente posible pero tiene la desventaja de que no tenemos un tiempo de reacción determinista porque tenemos el software de visión corriendo fuera del entorno de tiempo real y por tanto no están los dos softwares, TwinCat y este software de visión no estarían ejecutándose de forma sincrona y tendríamos una comunicación en la que no tendríamos garantizado un tiempo determinista. En cambio con TwinCat Vision vamos a llevar el procesamiento de la visión dentro del propio código de PLC en tiempo real.

Vamos a tener el código de PLC ejecutando el control de la máquina y además la funcionalidad de la visión dentro de tareas donde vamos a especificar su tiempo de ciclo, vamos a especificar su prioridad, vamos a tener un control absoluto sobre esas tareas y vamos a poder incluso reaccionar en el mismo ciclo de scan en que aplicamos las funciones de visión. Vamos a tener el resultado y vamos a poder reaccionar en ese propio ciclo, en ese mismo ciclo de scan haciendo cualquier tipo de acción ya sea de motion control, ya sea activando cualquier tipo de salida, ya sea cerrando un lazo de regulación. Por lo tanto tenemos ahí una reacción totalmente determinista sin ningún tipo de retardos ni de latencias, no tenemos ningún tipo de comunicación entre el resultado de la función de visión y la siguiente acción a llevar a cabo.

Aquí tenemos un diagrama con la arquitectura por capas de TwinCat Vision, en la parte inferior veríamos la capa de adquisición mediante el driver de GKE Vision para acceder a las cámaras y también tenemos la opción de acceder a imágenes del sistema de archivos mediante un driver llamado File Source Driver. O sea que no solo podemos trabajar con cámaras, también podemos trabajar con imágenes que tengamos guardadas en el sistema, incluso también con el propio driver de la cámara podemos poner las cámaras en modo simulación sin tener la cámara físicamente, mediante este driver también podemos simular el funcionamiento de la cámara mediante streamings que hayamos guardado previamente. Y un nivel por encima estarían lo que serían los algoritmos que forman la librería de visión implementados en C++ para ser altamente eficientes, pero con un wrapper, con un envoltorio que es la librería de PLC para poder hacer uso de estos algoritmos altamente eficientes desde el código de PLC directamente.

También podemos hacer uso de algoritmos hechos en MATLAB o Simulink, ya sabemos que esto es una funcionalidad que soporta TwinCAD 3 que es la integración de modelos de código MATLAB o modelos de Simulink dentro del entorno de tiempo real de TwinCAD 3 y podemos aprovechar esto también para aplicaciones de visión artificial. Y en cuanto a la capa de aplicación pues tendríamos el código de PLC que hace uso de la librería de TwinCAD Vision y en el futuro también tendremos la posibilidad de hacer directamente a los algoritmos desde el código de C++. Sabemos que TwinCAD 3 soporta el uso del código de C++ para tiempo real directamente en TwinCAD y también podríamos hacer esto en un modelo de MATLAB o Simulink que haga uso de estos modelos.

Vamos a hacer ahora un repaso de los beneficios que nos aporta TwinCAD Vision. Empezando por los beneficios derivados del uso del interfaz GIG y Vision. Este es uno de los interfaz más usados y no el que más para las cámaras de visión y proporciona una alta velocidad de transmisión de imágenes basándolos en el cernel de 1 Gb o 10 Gb.

Nos permite una longitud de cable de 100 metros y no requiere una tarjeta capturadora en el propio PC con lo que ahorramos mucho espacio. No necesitamos tarjetas PCI sino que simplemente un puerto integrado en la placa base es suficiente mientras sea de 1 Gb como mínimo por lo que lo hace un interfaz ideal para la integración en un PC industrial. Por otro lado, otra de las ventajas principales de TwinCAD Vision es la integración en el propio software de TwinCAD lo cual hace que no necesitemos un software extra para configurar ni para programar con TwinCAD Vision sino que podemos usar el mismo software, el mismo entorno de desarrollo, los mismos lenguajes que usamos para programar el propio proceso o la propia máquina.

TwinCAD Vision se integra en el propio programa de PLC mediante las librerías, se integra en el mismo entorno de configuración de TwinCAD, en el entorno de desarrollo se pueden hacer las configuraciones de las cámaras y la calibración de las mismas, dentro del entorno de tiempo real están integrados los algoritmos de visión. También dentro del software de HMI, el TwinCAD 3 HMI, se integra la visualización de las imágenes de TwinCAD Vision y también disponemos del protocolo ADS para poder acceder a las imágenes u otros datos o resultados de los algoritmos de visión. Aquí vemos ejemplos de esta integración, vemos como se integra en el código de PLC, como tenemos también la parte de configuración.

Vemos también este componente que se llama ADS Image Watch que nos permite visualizar las imágenes de visión, tanto las imágenes iniciales como imágenes intermedias en el procesamiento o las imágenes finales y además las podemos editar y con el ADS Image Watch siempre vamos a poder visualizarlas. Aquí vemos un ejemplo de integración de las imágenes de visión dentro del propio TwinCAD 3 HMI, podemos integrarlo en el HMI de la máquina, las imágenes de visión directamente con controles estándar. Y a nivel de Runtime vemos como se integra la visión con el propio driver de Jiggy Vision, también podemos integrar lo que sería el disparo de la cámara o el flash de la iluminación y también evidentemente por ejemplo el motion control lo podemos ejecutar de forma sincrona con la visión.

Una característica muy notable de TwinCAD Vision es que sus algoritmos están diseñados para ser ejecutados de forma paralela en diferentes núcleos y de una forma muy automática, muy fácil que no requiere ningún esfuerzo de programación. Simplemente inicialmente lo que debemos hacer es declarar unas Job Tasks dentro del Vision Job Pool y al final son unas tareas que vamos a asignar a núcleos y que se van a poder encargar de la ejecución de estos algoritmos. Entonces cuantos más núcleos tengamos más Job Tasks podemos configurar en el equipo y simplemente dejando esto configurado desde la tarea principal, TwinCAD Vision ya se encarga de hacer la gestión para dividir la ejecución de las tareas en diferentes subprocesos, repartirlos y sincronizar el reparto de trabajos.

Y la recolección de los resultados de manera que esto realmente para el programador es súper fácil simplemente es hacer este esfuerzo inicial de configurar estas Job Tasks y esta asignación de núcleos y ya está. Con lo cual podemos aprovechar toda la potencia de nuestra CPU, hacer uso de sus núcleos de una forma eficiente para las aplicaciones de visión. Vamos a ver ahora los productos que componen la familia de TwinCAD Vision.

TwinCAD Vision se compone de una serie de funciones que podemos combinar entre ellas para obtener una aplicación final de visión. Todo esto son funciones de TwinCAD que tienen su coste de licencia en función de la potencia de la CPU donde se van a ejecutar, pero recordemos que siempre tenemos la opción de probar cualquier funcionalidad de TwinCAD en modo de prueba de 7 días. Nosotros directamente podemos generar licencias de prueba de 7 días y renovarlas las veces que sean necesarias, con lo cual podemos probar cualquier funcionalidad de visión o cualquier funcionalidad de TwinCAD de forma totalmente gratuita hasta que estemos seguros de que funciona y es lo que necesitamos.

En ese momento ya podríamos cursar un pedido de la licencia definitiva para poderla poner en producción, pero podemos probar cualquiera de estas funcionalidades sin ningún tipo de límite de funcionalidad. Dicho esto, la familia de TwinCAD Vision se compone de en primer lugar la TF7100 TwinCAD 3 Vision Base y esta sería la funcionalidad más básica para el procesamiento o preprocesamiento de la imagen, operaciones básicas algebraicas, filtros, análisis de Fourier, procesamiento del color, segmentación de la imagen. Y análisis de contornos.

Después, sobre esta licencia base que siempre vamos a necesitar, podemos usar la licencia TF7200 TwinCAD 3 Vision Matching 2D que nos va a permitir encontrar contornos sobre la imagen y comparar esos contornos con contornos de referencia para identificarlos con una forma determinada. De esta forma podemos identificar diferentes tipos de piezas en la imagen. Después también podemos usar la TF7250 TwinCAD 3 Vision Code Reading, simplemente es para lectura de códigos de barra, códigos QR, data matrix y tal.

Y luego tenemos la licencia TF7300 TwinCAD 3 Vision Metrology 2D, que es esta licencia que nos va a permitir hacer mediciones sobre una imagen 2D, hacer la detección de bordes, detección de elipses o agujeros o arcos de circunferencia. Y sobre ello hacer mediciones de distancias, diámetros, ángulos, coordenadas de posición. Pero no simplemente transformar píxeles en milímetros con arriba de 3 sino que se trata de hacer corrección de la distorsión de la imagen y además un estudio de gradiente de la imagen para tener una precisión o una resolución mayor a lo que sería el tamaño de un píxel sobre la propia imagen.

Después tenemos funciones relativas con la conectividad de cámaras, en función de las cámaras que queramos conectar en el sistema, siempre vamos a necesitar como mínimo la licencia base TF7000 TwinCAD 3 Vision Connector Base, que nos va a permitir conectar hasta dos cámaras. Y después tenemos paquetes de ampliación, paquetes de ampliación de dos cámaras adicionales, de cuatro cámaras adicionales o de ocho, que podemos combinar porque son acumulativas, dependiendo del número de cámaras que queramos conectar a nuestro sistema. Y por último llegamos al apartado de conclusiones, vamos a ver un resumen de lo que hemos visto hasta ahora.

Hemos visto que TwinCAD Vision nos proporciona funciones de visión para el reconocimiento de objetos, adaptación de la posición y orientación de los objetos en el plano 2D, funciones de medición también en el plano 2D, lecturas de códigos de barras, códigos QR o Data Matrix. Y hemos visto que TwinCAD Vision se integra dentro de TwinCAD en el mismo entorno de desarrollo de Visual Studio, donde tenemos las herramientas de configuración, calibración y simulación. Usamos Vision desde el mismo código de PLC, aunque también tenemos la posibilidad en el futuro de usarlo desde C++ o MATLAB y Simulink mediante la librería de TwinCAD 3 Vision.

Hemos visto que TwinCAD Vision se integra dentro del runtime de TwinCAD 3 de manera que se ejecuta en tiempo real de forma síncrona con el resto del código de la máquina, con lo cual no tenemos tiempos de retardo y podemos ejecutar TwinCAD Vision y activar salidas o iniciar movimientos o hacer lazos de regulación, todo de forma totalmente síncrona. También hemos visto que TwinCAD Vision tiene altas prestaciones, ya que nos permite la ejecución paralela en los núcleos de la CPU de una forma muy eficiente. Y por último hemos visto el interface GKE Vision, que es el que usamos para la conectividad con las cámaras y que es un estándar de futuro y de altas prestaciones.

En principio con esto acabamos esta presentación y en el próximo vídeo ya entramos en temas prácticos con TwinCAD Vision. ¡Hasta el siguiente vídeo!


Previous Part | Next Part 🔜

↩️ Go Back


Z) 🗃️ Glossary

File Definition
Uncreated files Origin Note
Next Part 🔜 01 - Introducción a TC Vision
Next Part 🔜 01 - Introducción a TC Vision