Configuración de Metadatos
Esta guía muestra cómo configurar metadatos para las imágenes de la cámara OV80i. Los metadatos son información adicional que se almacena junto 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 a las imágenes de inspección.
Prerrequisitos
- Sistema de cámara OV80i configurado y conectado
- Receta activa configurada con la configuración de captura de imágenes e inspección
- Al menos un bloque de IA (clasificación o segmentación) configurado
- Comprensión de los datos que desea rastrear a partir de los resultados de la inspección
¿Qué son los metadatos?
Los metadatos son información adicional que se adjunta a cada imagen capturada. Esta información:
- Se almacena junto con la imagen en la biblioteca de la cámara
- Aparece en la HMI para que los operadores lo 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 haya completado una inspección. Los metadatos deben formar parte del flujo que comienza con "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
- Haz clic en "Configure IO" para entrar al editor de Node-RED
1.2 Verificar la Interfaz de Node-RED
Punto de control: Debe verse el editor de flujos de Node-RED con el flujo 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 active y procese una inspección.
El nodo "All Block Outputs":
- Contiene resultados de inspección de todos los bloques IA
- Incluye información de captura de imágenes
- Proporciona los datos necesarios para la creación de metadatos
- Es la fuente que alimenta tanto los 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" se requieren 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 aprobación/rechazo deben ramificarse desde el nodo "All Block Outputs".
Paso 3: Agregar el nodo Capture Metadata
3.1 Localizar el Nodo de Metadatos
- Localizar el nodo "Capture Metadata" en el panel izquierdo (sección Overview)
- Arrastrar el nodo "Capture Metadata" al lienzo del flujo
- Colóquelo en su flujo después del disparador pero antes de la captura de la imagen
3.2 Colocación del nodo en el flujo
Estructura de flujo correcta:
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 Configuración de Metadatos Básicos
- Haga doble clic en el nodo Capture Metadata
- Configure los campos de metadatos que desea rastrear
- Configure las fuentes de datos para cada campo
4.2 Requisitos de Formato de Metadatos
Los metadatos deben estar formateados como un objeto con:
- String keys - Los nombres de campo deben ser texto
- String or number values - 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 de Metadatos
5.1 Agregar un nodo 'function' para la Creación de Metadatos
- Agregue un nodo 'function' entre "All Block Outputs" y el nodo "Capture Metadata"
- Haga doble clic en el nodo de función para configurarlo
- Esta función extraerá datos de los resultados de 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 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
Todos los flujos deben tener ambas rutas desde "All Block Outputs":
All Block Outputs → Function (Create Metadata) → Capture Metadata
↓
Function (Pass/Fail Logic) → Final Pass/Fail
6.2 Conectar 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 se necesita una conexión de salida)
6.3 Conectar 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 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 Aprobación/Rechazo 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 "Desplegar" (esquina superior derecha)
- Inicie una inspección usando su método de disparo configurado (manual, entrada digital o PLC)
- Verifique que:
- Se haya capturado una imagen
- Los metadatos aparecen junto con la imagen
- Se tomó una decisión de Aprobado o Rechazado
- El flujo se completó correctamente
7.2 Verificar Flujo Completo
Verifique que ambos caminos funcionen:
Ruta de Metadatos:
- Navegue a Library en la interfaz principal
- Localice su imagen de prueba
- Verifique que los metadatos aparezcan en los detalles de la imagen
Ruta de Aprobado/Rechazado:
- Verifique que los resultados de inspección muestren el estado Aprobado/Rechazado
- Verifique que el nodo "Final Pass/Fail" se procesó correctamente
- Confirme que las salidas conectadas (PLCs, indicadores) respondan adecuadamente
7.3 Probar Diferentes Fuentes de Disparador
Verifique que los metadatos funcionen con su disparador específico:
Para Disparadores Manuales:
- Use el botón de disparo de software
- Verifique que los metadatos aparezcan con cada captura manual
Para Disparadores de Entrada Digital:
- Active el sensor/interruptor externo
- Confirme que los metadatos se capturen con las imágenes disparadas
Para Disparadores PLC:
- Envíe una señal de disparo desde PLC
- Verifique que los metadatos incluyan datos de PLC si aplica
Paso 8: Configuraciones Avanzadas de Metadatos
8.1 Metadatos de Múltiples Variables Globales
Combinar datos de diferentes 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 | Sin datos en Library | Verifique que el nodo de metadatos esté en el flujo principal del IO Block |
Metadatos con imagen incorrecta | Los datos aparecen con capturas incorrectas | Verifique la temporización: los metadatos deben ocurrir antes de la captura de la imagen |
El disparador no funciona | No se capturan imágenes | Verifique la configuración de disparo del IO Block |
Faltan campos de metadatos | Algunos datos faltan | Verifique el formato de payload del nodo de función |
Error de tipo de dato 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 disparador para verificar que funcione
- Agregue un nodo de depuración después de la función de metadatos para verificar el payload
- 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ño de flujos de metadatos eficientes:
- Mantener los metadatos al inicio del flujo - Coloque los metadatos inmediatamente después del disparador
- Usar un único nodo Capture Metadata - No duplique nodos Capture Metadata
- Mantener la continuidad del flujo - Los metadatos deben formar parte del flujo de inspección principal
- Manejar datos faltantes - Siempre proporcione valores predeterminados
10.2 Nombrado de Campos de Metadatos
Utilice nombres de campo consistentes y claros:
- Use underscores instead of spaces ("part_number" en lugar de "part number")
- Be descriptive but concise ("operator" no "op")
- Use lowercase for consistency - Use minúsculas para mantener la consistencia
- Avoid special characters that might cause issues - Evite caracteres especiales que podrían causar problemas
10.3 Consideraciones de Rendimiento
Para producción de alto volumen:
- Minimize metadata size - Solo incluya la información necesaria
- Use efficient data types - Números cuando sea posible, cadenas cortas
- Avoid complex processing - Mantenga la creación de metadatos simple y rápida
- Cache global data - Almacene datos usados con frecuencia en variables globales
¡Éxito! Su sistema de metadatos ya está listo
La configuración de metadatos ya puede:
✅ Adjuntar información personalizada a cada captura de imagen disparada
✅ Registrar 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 en curso
Revisiones periódicas 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 a medida que cambien los requisitos
Gestión del flujo
- Revisar la temporización de metadatos en la producción
- Optimizar el rendimiento del nodo Function
- Actualizar la gestión de variables globales
- Capacitar a los operadores en la operación basada en disparadores
Próximos Pasos
Después de configurar metadatos basados en disparadores:
- Probar con todos los tipos de disparadores configurados (manual, digital, PLC)
- Capacitar a los operadores sobre el uso adecuado de disparadores para la captura de metadatos
- Configurar la gestión de variables globales para datos dinámicos
- Crear plantillas de metadatos para diferentes líneas de producto
- Implementar monitoreo de la producción utilizando analítica de metadatos