Hay veces en las que uno no dispone de las herramientas adecuadas para obtener información de manera eficiente y correcta y trabaja en base a suposiciones y sensaciones, es decir con criterios subjetivos, a falta de un sistema MES de adquisición de datos directamente en las líneas hay que aprovechar las cosas que ya hay para intentar conseguir algo de información del funcionamiento de la fábrica.
Tenemos instalada una cámara OMRON FQ2-D3X para detectar diversas anomalías de los productos que van saliendo de una de las máquinas de la línea de fabricación. La instalación de la cámara fue realizada en su momento por una tercera empresa, por tanto el conocimiento del software y el hardware era bastante bajo, parametrizar y ajustar la inspección y poca cosa más.
Buscando soluciones
Casualmente echando un ojo al manual de esta cámara veo que guarda (si está configurada para hacerlo y con un ordenador de apoyo) un registro de todas y cada una de las inspecciones realizadas por la cámara, y con esto tengo algo muy importante, por fin puedo saber la distribución horaria de las fabricaciones, si bien es sólo una máquina de todas las que hay en la línea si que es una máquina muy importante dentro de ésta ¡todo un mundo de posibilidades de análisis! la información que me puede aportar es valiosa y por ello sólo tengo que coger los datos que ésta me guarda.
La cámara guarda los datos en un archivo CSV, para su generación se permite cierta configuración, podemos guardar más o menos información y controlar la manera como se guarda, todo ello lo puedes consultar en el manual no es cuestión de entretenerme con ello cuando ya está escrito, no?
En mi caso los datos están guardados en una carpeta OMRON dentro de la carpeta Mis Documentos de mi usuario de Windows 7, y junto con otros datos la cámara de visión guarda la información que tenga configurada, en mi caso los registros de inspección así como las imágenes tomadas y las escenas, la cámara funciona sin problemas de manera autónoma pero si está conectada a un PC lo puede usar como respaldo de seguridad de su configuración.
Los datos importados son los siguientes:
- Date: Fecha en que se realiza la inspección:
- Time: Hora en que se realiza la inspección.
- Format: El formato (también llamado escena) seleccionado en esta inspección, en mi caso botellas azules o botellas blancas.
- Judge: Resultado de la evaluación de la escena. Siendo el valor -10 el resultado de inspección negativa, es decir, producto rechazado.
- Ix.JG: Resultado individual de las diferentes inspecciones que componen una escena, donde X es el número de la inspección.
- Agrupación: no es importado, es un campo de ayuda para realizar la gráfica, nos permite agrupar las inspecciones en lapsos de tiempo más manejables definidos según el valor en minutos de un Intervalo. Si no agrupamos no nos permitirá realizar la gráfica.
- Dentro del .CSV hay muchos más datos referentes a la evaluación de cada una de las inspecciones de escena, pero no nos interesan. Nosotros sólo queremos saber cuantos productos han salido bien, cuántos mal y porqué.
Además hay los siguientes botones:
- IMPORTA: Este botón nos abrirá una ventana de selección del archivo .CSV a importar. Esta acción puede llevar mucho tiempo, hay .CSV muy extensos que tardará un buen rato en importar (para que te sirva de orientación, en mi caso, la importación de 200.000 filas de datos me suponen unos 5 minutos de espera) todo dependerá del tamaño del .CSV y de la potencia de tu ordenador.
- GENERAR MINUTOS: Con este botón creamos para el día introducido en Fecha todos los minutos existentes al intervalo indicado. Esto es para que no hayan huecos horarios en la gráfica, si una hora no existe porque no ha realizado ninguna inspección la gráfica directamente no la mostrará pero lo que nos interesa es saber también en que horas la producción ha sido cero.
- VACÍA TABLA: Borra todos los datos de la tabla. Deja una fila sólo, para que la tabla no esté vacía. Mejor no borrarla.
Si todo va bien en la hoja de GRÁFICA debería salirnos algo como lo siguiente, una gráfica por horas agrupadas en intervalos de 5 minutos con las unidades inspeccionadas bien y las rechazadas.
Obviamente, que esta plantilla me sirva a mi no implica que te sirva a ti tal y como está, seguramente en tu fábrica habrá una configuración algo diferente, simplemente úsala como una base para hacerte tu mismo lo que necesitas, si necesitas ayuda por mi parte sólo tienes que preguntar, y para empezar casi seguro que deberás cambiar el código siguiente:
With ActiveSheet.QueryTables.Add(Connection:="TEXT;" & rutaArchivoCSV, Destination:=Range("$A$" & ultimaFila))
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = 850
.TextFileStartRow = 2
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = False
.TextFileSemicolonDelimiter = False
.TextFileCommaDelimiter = True
.TextFileSpaceDelimiter = False
.TextFileColumnDataTypes = Array(1, 1, 9, 1, 1, 1, 9, 9, 9, 1, 9, 9, 9, 1, 9, 9, 9, 1, 9, 1, 9, 9, 9, 1, 9, 9, 9, 1, 9, 9, 9, 9, 9, 1, 9, 9, 9, 9, 9, 1, 9, 9)
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
End With
Especialmente donde dice: .TextFileColumnDataTypes, que nos indica las columnas que vamos a importar, en tu .CSV puede haber más o menos columnas que importar dependiendo del numero de inspecciones que realices para cada escena. Consulta aquí para saber más.
A tener en cuenta
- Cómo máximo podrás importar 1.048.574 inspecciones individuales, ya que es el máximo permitido por Excel 2010.
- Los datos no se guardan «al momento» en el archivo .CSV, ten cuidado porque puede haber un ligero desfase de las horas del archivo importado con la realidad. En mi caso me cuadran perfectamente con las horas y minutos de producción, no necesito una precisión «al milisegundo».
El archivo contiene:
- La plantilla en formato Excel 2010 para macros (.xlsm)
- Y si te da miedo también está sin macros (.xlsx) y con el código aparte en un archivo de texto, para que lo pegues tu mismo y veas que no hay nada raro en el código VBA.
- También hay un .csv de ejemplo para que puedas importarlo.
Testeado en Excel 2003 y funcionó sin problemas, no probado en otras versiones.