sábado, 3 de marzo de 2012

Comprobar estado de pines



Con las imágenes del tutorial 6 que contienen un circuito integrado con sus pines en diferentes estados. Vamos a detectar los fallos y especificar cuales son aptas o no. Nos ayudaremos de la máquina de estados para tomar decisiones.


Elegimos la instrucción Simulate Adquisition para importar las imágenes del tutorial 6. La damos nombre y seleccionamos la opción para adquirir todas las imágenes.


Con la instrucción Find Edges vamos a localizar los cambios de intensidad para localizar el número de pines y obtener puntos de referencia para medir la distancia entre pines.


Elegimos la línea de detección que atraviese la imagen de izquierda a derecha a la altura de los pines. En la pestaña settings, elegimos que nos busque todos los cambios de intensidad de claro a oscuro. La configuración del cambio de intensidad la podemos dejar automática.


Especificamos los límites, que nos encuentre un máximo y mínimo de 7 cambios.


Vamos a crear una variable que cada vez que pasemos por aquí reiniciaremos a 1. Esta variable la utilizaremos más adelante para ir incrementándola y elegir los diferentes puntos encontrados en los pines y medir la distancia entre pines.
Vamos a Tools>> Variable Manager.


Añadimos una nueva variable, la damos nombre, de tipo numérica, y la damos el valor inicial 1.


Elegimos la instrucción Set Variable para darla el valor 1 cada vez que pasemos por aquí, es decir, cada vez que cambiemos de imagen.


Configuramos la variable para darla el valor 1.


Vamos a editar la máquina de estados para tomar decisiones. Con el botón derecho añadimos estados y transiciones. Creamos un globo para medir la distancia entre los pines, y dos globos para mostrar el mensaje si la imagen es correcta o no y cambiar el estado booleano de la inspección.


Editamos la transición que nos sale del primer globo creado, para mandar el flujo al globo de fallo cuando el número de cambios de intensidad correspondientes a los pines sea distinto de 7.


Con la instrucción Index Measurements vamos a ir cambiando los puntos de cambio de intensidad de cada pin guiándonos de la variable que vamos a ir incrementándola.


Elegimos la posición X e Y en pixeles de la instrucción que nos encuentra los cambios de intensidad. Elegimos el valor de la variable para cambiar los puntos.


Asignamos un eje de coordenadas al punto del cambio de intensidad. Elegimos la instrucción Set Coordinate System.


Elegimos el punto de referencia.


Con la instrucción Caliper vamos a medir la distancia entre pines en píxeles.


Elegimos la zona de trabajo y tomamos como referencia el eje de coordenadas.


Esta es la configuración que yo elegí para identificar el cambio de intensidad:


Limitamos la medida en pixeles para obtener fallo en el estado booleano de la instrucción si la medida no esta dentro de los límites.


Con la instrucción Set Variable incrementamos la variable para obtener lo 7 puntos de los pines.


Con la instrucción Custom Overlay creamos un mensaje con un indicador booleano para indicar si la medida entre pines es incorrecta. Cuando sea cierto escondemos el indicador.


Cambiamos la ventana de trabajo y editamos las transiciones. La transición que repite el globo va a depender de la instrucción de indexación, si el número de indexaciones que quedan por cumplirse es mayor que 1, que se repita el globo.


La transición que nos lleva al globo de fallo va a depender de la instrucción que mide la distancia entre pines, como la limitamos, si nos da fallo su valor booleano, nos pase por esta instrucción. Si no se cumple ninguna transición por defecto nos lleva al globo de acierto.


Elegimos el globo de fallo y cambiamos la ventana de trabajo. Elegimos la instrucción Set Inspection Status para cambiar a fallo el estado de la inspección.


Con la instrucción Custom Overlay creamos un mensaje de incorrecto.


Repetimos esta operación en el globo de acierto pero creando el mensaje de acierto y poniendo el estado de la inspección en verdadero.


Podemos observar su funcionamiento en el siguiente video:


No hay comentarios:

Publicar un comentario