Configuración de Metadatos
Esta guía muestra cómo configurar metadatos para las imágenes de la cámara OV20i. Los metadatos son información personalizada que se almacena con cada imagen capturada, ayudando a rastrear detalles importantes como números de pieza, números de serie o datos de producción.
Cuándo usar Metadatos: Seguimiento de la producción, identificación de piezas, registros de control de calidad, información de lote, identificación del operador, o cualquier dato personalizado que necesite asociarse con imágenes de inspección.
Prerrequisitos
- Sistema de cámara OV20i configurado y conectado
- Receta activa configurada con la adquisición de imágenes y la inspección
- Al menos un bloque AI (clasificación o segmentación) configurado
- Comprensión de los datos que desea rastrear a partir de los resultados de la inspección
¿Qué es Metadatos?
Metadatos es información adicional que se adjunta a cada imagen capturada. Esta información:
- Se almacena con la imagen en la biblioteca de la cámara
- Aparece en la HMI para que los operadores la vean
- Ayuda a identificar y rastrear piezas específicas o lotes de producción
- Puede buscarse en la biblioteca para análisis
Ejemplos de metadatos útiles:
- Números de pieza (p. ej., "P12345")
- Números de serie (p. ej., "SN987654")
- Nombres de operador (p. ej., "John_Smith")
- Información de turno (p. ej., "A_Shift")
- Números de lote (p. ej., "Batch_2025_001")
Los metadatos solo pueden guardarse cuando se completa una inspección. Los metadatos deben formar parte del flujo que se inicia desde "All Block Outputs" después de que la cámara capture y procese una imagen.
Paso 1: Acceder al editor de Node-RED
1.1 Navegar al IO Block
- Abre tu receta activa en Recipe Editor
- Haz clic en "IO Block" en el menú de migas de pan
- Haz clic en "Configure IO" para ingresar al editor de Node-RED
1.2 Verificar la interfaz de Node-RED
Punto de control: Debe verse el editor de flujo de Node-RED con el flujo de IO Block existente y la paleta de nodos en el lado izquierdo.
Paso 2: Localizar el nodo "All Block Outputs"
2.1 Encontrar el punto de inicio
En tu flujo de Node-RED, busca el nodo "All Block Outputs". Este es el punto de inicio que recibe datos de la cámara después de que se activa y procesa una inspección.
El nodo "All Block Outputs":
- Contiene los resultados de inspección de todos los bloques AI
- Incluye información de captura de imágenes
- Proporciona los datos necesarios para la creación de metadatos
- Es la fuente que alimenta tanto metadatos como las decisiones de aprobado/rechazado
2.2 Comprender la Estructura del Flujo
Tu flujo debe seguir este patrón:
Camera Trigger → AI Processing → All Block Outputs → [Your Custom Logic]
A partir de "All Block Outputs" necesitas dos rutas separadas:
- Ruta de Metadatos: All Block Outputs → Function (Create Metadata) → Capture Metadata
- Ruta de Decisión: All Block Outputs → Function (Logic) → Final Pass/Fail
Tanto los metadatos como las decisiones de aprobado/rechazado deben ramificarse desde el nodo "All Block Outputs".
Paso 3: Agregar el nodo Capture Metadata
3.1 Localizar el nodo de Metadatos
- Localiza el nodo "Capture Metadata" en el panel izquierdo (sección Overview)
- Arrastra el nodo "Capture Metadata" al lienzo del flujo
- Posiciónalo en tu flujo después del disparador pero antes de la captura de imagen
3.2 Colocación del nodo en el flujo
Estructura correcta del flujo:
All Block Outputs → Function (Create Metadata) → Capture Metadata
↓
Function (Pass/Fail Logic) → Final Pass/Fail
El nodo "Final Pass/Fail" es requerido para que el flujo funcione correctamente. Cada flujo debe terminar con este nodo.
Paso 4: Configurar Campos de Metadatos
4.1 Configurar Metadatos Básicos
- Haz doble clic en el nodo Capture Metadata
- Configura los campos de metadatos que deseas rastrear
- Configura las fuentes de datos para cada campo
4.2 Requisitos de Formato de Metadatos
Los metadatos deben estar formateados como un objeto con:
- Claves de tipo cadena - Los nombres de los campos deben ser texto
- Valores de tipo cadena o numérico - Los datos pueden ser texto o números
Ejemplo de formato correcto:
{
"part_number": "P12345",
"serial_number": "SN987654",
"operator": "John_Smith",
"shift": "A",
"quantity": 100,
"temperature": 23.5
}
Paso 5: Crear Nodo de Función para Metadatos
5.1 Añadir Nodo de Función para la Creación de Metadatos
- Añade un nodo "function" entre "All Block Outputs" y el nodo "Capture Metadata"
- Haz doble clic en el nodo de función para configurarlo
- Esta función extraerá datos de los resultados de la inspección y creará metadatos
5.2 Extraer Datos de All Block Outputs
El nodo "All Block Outputs" proporciona datos de inspección detallados. Así es como extraerlos:
// Extract data from inspection results
const captureId = msg.payload.capture_id;
const serialNumber = msg.payload.serial_number || "No_Serial";
const inspectionTime = msg.payload.inspection_time || new Date().toISOString();
// Create metadata from inspection data
msg.payload = {
"capture_id": captureId,
"serial_number": serialNumber,
"inspection_time": inspectionTime,
"operator": global.get("current_operator") || "Unknown"
};
return msg;
5.3 Metadatos estáticos (valores fijos)
Para información que no cambia durante la producción:
// Set static metadata values
msg.payload = {
"recipe_name": "Bolt_Inspection_v2",
"line_number": "Line_3",
"shift": "A_Shift",
"station": "QC_Station_1"
};
return msg;
5.4 Metadatos dinámicos (Usando datos de inspección)
Para información que proviene de los resultados de la inspección:
// Extract inspection data
const captureId = msg.payload.capture_id;
const imageUrl = msg.payload.image_url;
const predictions = msg.payload.classification?.predictions || [];
// Create dynamic metadata
msg.payload = {
"capture_id": captureId,
"part_number": "P" + Date.now(),
"total_rois": predictions.length,
"timestamp": new Date().toISOString(),
"batch": global.get("current_batch") || "Default_Batch"
};
return msg;
Paso 6: Conectar Metadatos y Flujos de Pass/Fail
6.1 Estructura de Flujo Requerida
Cada flujo debe tener ambas rutas desde "All Block Outputs":
All Block Outputs → Function (Create Metadata) → Capture Metadata
↓
Function (Pass/Fail Logic) → Final Pass/Fail
6.2 Conecte la Ruta de Metadatos
- Conecte la salida de "All Block Outputs" a la entrada de su función de metadatos
- Conecte la salida de la función de metadatos a la entrada de "Capture Metadata"
- El nodo Capture Metadata puede ser un nodo terminal (no es necesario conectar una salida)
6.3 Cablear la Ruta de Pass/Fail
- Conecte la salida de "All Block Outputs" a una función de lógica de Pass/Fail
- Conecte la salida de la función de lógica a la entrada de "Final Pass/Fail"
- El nodo "Final Pass/Fail" es obligatorio - cada flujo debe terminar aquí
6.4 Función de Lógica de Pass/Fail de Ejemplo
// Extract inspection result for pass/fail decision
const predictions = msg.payload.classification?.predictions || [];
// Determine if inspection passed (all ROIs passed)
let passed = true;
for (let prediction of predictions) {
if (!prediction.predicted_class.includes("pass")) {
passed = false;
break;
}
}
// Set the pass/fail result
msg.payload = passed;
return msg;
Paso 7: Configuración de Metadatos de Prueba
7.1 Desplegar y Probar
- Haga clic en el botón 'Deploy' (esquina superior derecha)
- Inicie una inspección utilizando su método de disparo configurado (manual, entrada digital o PLC)
- Verifique que:
- Se capturó una imagen
- La metadata aparece con la imagen
- Se tomó una decisión de Pass/Fail
- El flujo se completó con éxito
7.2 Verificar Flujo Completo
Verifique que ambos caminos funcionen:
Ruta de Metadatos:
- Navegue a Biblioteca en la interfaz principal
- Localice su imagen de prueba
- Verifique que los metadatos aparezcan en los detalles de la imagen
Ruta Pass/Fail:
- Verifique que los resultados de inspección muestren el estado Pass/Fail
- Verifique que el nodo "Final Pass/Fail" se haya procesado correctamente
- Confirme que cualquier salida conectada (PLCs, indicadores) responda adecuadamente
7.3 Probar Diferentes Fuentes de Disparo
Verifique que los metadatos funcionen con su disparo específico:
Para Disparos Manuales:
- Utilice el botón de disparo por software
- Verifique que los metadatos aparezcan con cada captura manual
Para Disparos por Entrada Digital:
- Active el sensor/interrutor externo
- Confirme que los metadatos se capturen con las imágenes disparadas
Para Disparos por PLC:
- Envíe una señal de disparo desde PLC
- Verifique que los metadatos incluyan datos del PLC cuando aplique
Paso 8: Configuraciones Avanzadas de Metadatos
8.1 Metadatos de Múltiples Variables Globales
Combinar datos de distintas fuentes almacenadas globalmente:
// Combine data from various global storage
const operatorData = global.get("operator_info") || {};
const productData = global.get("product_info") || {};
const shiftData = global.get("shift_info") || {};
msg.payload = {
"operator": operatorData.name || "Unknown",
"operator_id": operatorData.id || "000",
"product_code": productData.code || "Default",
"product_version": productData.version || "1.0",
"shift": shiftData.current || "Day",
"line_status": "Running",
"timestamp": new Date().toISOString()
};
return msg;
Paso 9: Solución de Problemas de Metadatos
9.1 Problemas Comunes
Problema | Síntomas | Solución |
---|---|---|
Metadatos no aparecen | No hay datos en la Biblioteca | Verifique que el nodo de metadatos esté en el flujo principal IO Block |
Metadatos con imagen incorrecta | Los datos aparecen con capturas incorrectas | Verifique la temporización: los metadatos deben estar antes de la captura de la imagen |
Disparo no funciona | No se capturan imágenes | Verifique la configuración del disparador IO Block |
Campos de metadatos faltantes | Faltan algunos datos | Verifique el formato de carga útil del nodo de función |
Error de tipo de datos incorrecto | El nodo muestra estado de error | Asegúrese de que los valores sean solo cadenas o números |
9.2 Depuración del Flujo de Metadatos
Agregue nodos de depuración para solucionar problemas:
- Agregue un nodo de depuración después del disparo para verificar que funciona
- Agregue un nodo de depuración después de la función de metadatos para revisar la carga útil
- Agregue un nodo de depuración después de Capture Metadata para confirmar el procesamiento
- Verifique el panel de depuración en busca de mensajes de error
Paso 10: Mejores Prácticas
10.1 Diseño de Flujo
Diseñe flujos de metadatos eficientes:
- Mantenga los metadatos al principio del flujo - Establezca los metadatos inmediatamente después del disparador
- Utilice un solo nodo de metadatos - No duplique nodos Capture Metadata
- Mantenga la continuidad del flujo - Los metadatos deben formar parte del flujo de inspección principal
- Maneje datos faltantes - Siempre proporcione valores predeterminados
10.2 Nombres de Campos de Metadatos
Utilice nombres de campos consistentes y claros:
- Use guiones bajos en lugar de espacios ("part_number" en lugar de "part number")
- Sea descriptivo pero conciso ("operator" no "op")
- Use minúsculas para mantener la consistencia
- Evite caracteres especiales que podrían causar problemas
10.3 Consideraciones de Rendimiento
Para producción de alto volumen:
- Minimizar el tamaño de los metadatos - Solo incluya la información necesaria
- Utilice tipos de datos eficientes - Números cuando sea posible, cadenas cortas
- Evite procesamiento complejo - Mantenga la creación de metadatos simple y rápida
- Caché de datos globales - Almacene los datos que se usan con frecuencia en variables globales
¡Éxito! Su sistema de Metadatos está listo
Su configuración de metadatos puede ahora:
✅ Adjuntar información personalizada a cada captura de imagen disparada
✅ Rastrear datos de producción sincronizados con el flujo de inspección
✅ Almacenar información buscable en la biblioteca de la cámara
✅ Mostrar datos relevantes en el HMI para operadores
✅ Soportar trazabilidad para los requisitos de fabricación
Mantenimiento Continuo
Verificaciones Regulares del Sistema
- Verifique que los metadatos aparezcan con las capturas disparadas
- Verifique la presencia de datos faltantes en las ejecuciones de producción
- Monitoree el rendimiento del flujo con altas tasas de disparo
- Actualice los campos de metadatos conforme cambien los requisitos
Gestión de Flujo
- Revise la temporización de metadatos en la producción
- Optimice el rendimiento del nodo de función
- Actualice la gestión de variables globales
- Capacite a los operadores en la operación basada en disparadores
Próximos Pasos
Después de configurar metadatos basados en disparadores:
- Pruebe con todos los tipos de disparador configurados (manual, digital, PLC)
- Capacite a los operadores en el uso adecuado de disparadores para la captura de metadatos
- Configure la gestión de variables globales para datos dinámicos
- Cree plantillas de metadatos para diferentes líneas de producto
- Implemente monitoreo de producción utilizando analítica de metadatos