DOCUMENTACIÓN CON IA
¿Qué desea saber?
Patrones de Integración MES y PLC
Esta página es la referencia del ingeniero de control sobre cómo se integra la cámara en una planta real. Se acompaña del Integration Builder (que genera los flujos de Node-RED) y del IO Helper (que genera el cableado + las secuencias de llamadas a la API).
La arquitectura estándar
En el 90% de las instalaciones, el camino es MES → PLC → Camera, nunca MES → Camera directamente.
Per-part decisions (ms) Aggregate decisions (sec)
------------------------ --------------------------
Barcode scan ----+
Operator HMI ----+--> PLC --recipe ID--> Camera
MES work order --+ ^ |
| <--pass/fail-- |
| <--defect class--+
Reads result,
fires reject gate
in 10-50ms PLC packages event
{WO, lot, serial, recipe,
+----------------------------> result, defect, timestamp}
|
v
MES
(OEE, quality, traceability,
hold-the-order decisions)
|
v
ERP
Datos clave:
- El PLC toma la decisión de rechazo por pieza. Debe responder en milisegundos. MES no puede hacerlo (demasiado lento, no determinista).
- La cámara informa aprobación/rechazo al PLC, no directamente al MES.
- Selección de recetas fluye a través del PLC. MES puede decidir cuál receta debe ejecutarse, pero el PLC escribe el ID de la receta en la cámara (a través de EtherNet/IP
O.Data[4-5]o la palabra equivalente de PROFINET). - MES recibe eventos contextualizados desde el PLC (orden de trabajo, lote, serie, estación, receta, aprobación/rechazo, clase de defecto) y toma decisiones agregadas (retener la orden si la tasa de desecho excede el umbral, alertar al ingeniero de calidad, actualizar el OEE).
- Un registro de desplazamiento del PLC sincroniza el resultado de inspección con la posición de la compuerta de rechazo aguas abajo, indexada por pulsos del codificador.
Los tres patrones
A. PLC informa al MES (estándar)
El patrón por defecto. PLC maneja el rechazo en tiempo real. PLC empaqueta el resultado con el contexto de la orden de trabajo y lo envía al MES vía OPC UA o MQTT.
Cuándo usarlo: cualquier línea de producción con un PLC. Común en automotriz, empaque, alimentos y bebidas, farmacéutica.
Secuencia de endpoints (configurada una sola vez durante la puesta en marcha):
| Paso | Método | Ruta | Propósito |
|---|---|---|---|
| 1 | GET | /edge/download/industrial_ethernet/ethernet_ip_eds | Descargar el archivo EDS (coincide con el firmware). Entregar al programador del PLC. |
| 2 | POST | /edge/recipe/change_plc_recipe_id | Mapear las recetas de la cámara a IDs compatibles con PLC (1, 2, 3, ...) que correspondan a los códigos SKU del MES. |
| 3 | POST | /edge/environmental_variables | Persistir el contexto de planta (código de línea, URL del MES) para el flujo de Node-RED. |
| 4 | GET | /edge/nodered/flow | Leer el flujo de Node-RED de la receta activa. |
| 5 | POST | /edge/nodered/flow | Desplegar el flujo actualizado con el publicador OPC UA / MQTT. |
B. Cámara publica junto al PLC (paralelo moderno)
El PLC sigue manejando el rechazo. LA CÁMARA TAMBIÉN publica una carga útil más rica (image_ref, defect_class, confidence) directamente a MQTT o OPC UA para el historiador, dashboards y entrenamiento de IA. Funciona junto al camino del PLC, no en vez de él.
Cuándo usarlo: plantas con una iniciativa de Unified Namespace (HiveMQ + Ignition + Grafana, Litmus Edge, HighByte). Sitios de Industry 4.0 de tipo greenfield.
Secuencia de endpoints:
| Paso | Método | Ruta | Propósito |
|---|---|---|---|
| 1 | GET | /edge/nodered/flow | Leer el flujo activo. |
| 2 | POST | /edge/nodered/flow | Desplegar un flujo con mqtt-out (o sparkplug-out) dirigido a su broker. |
| 3 | GET | /edge/capture_result | Opcional: completar resultados históricos durante la sincronización inicial. |
| 4 | GET | /edge/capture_result/{capture_id}/heatmap | OV80i: obtener el mapa de calor de defectos PNG para inspecciones fallidas. |
La cámara viene con un broker MQTT integrado en ws://{camera_ip}:9001/mqtt, por lo que implementaciones pequeñas no requieren un broker externo.
C. Independiente (sin PLC)
Sin PLC de producción. Una app de operador o MES en la nube se comunica directamente con la cámara vía REST: obtiene la orden de trabajo, cambia la receta, inicia la inspección y obtiene el resultado. El operador es el actuador.
Cuándo usarlo: bancos de retrabajo, inspección de laboratorio, inspección de entrada, MES en la nube estilo Tulip con tablets, devoluciones/logística inversa.
No recomendado para: líneas de transportadores de alta velocidad (sin rechazo en tiempo real), entornos regulados que requieren lógica de seguridad de PLC certificada.
Secuencia de endpoints (por inspección):
| Paso | Método | Ruta | Propósito |
|---|---|---|---|
| 1 | POST | /edge/api/recipes/{plc_recipe_id}/activate | Cambiar a la receta que corresponde al código de barras / orden de trabajo escaneado. |
| 2 | POST | /edge/camera/capture | Disparar una inspección única vía REST. |
| 3 | GET | /edge/capture_result | Consultar el resultado más reciente (o suscribirse a MQTT para entrega push). |
| 4 | POST | /edge/v2/capture/{capture_id}/notes | OV80i: adjuntar el contexto de la orden de trabajo a la captura para trazabilidad. |
| 5 | POST | /edge/camera/do | Opcional: activar un segmento de luz piloto desde la app MES. |
El esquema canónico de resultados de inspección
Independientemente del patrón o del transporte, este es el payload universal. Úselo como contrato entre la cámara y su MES.
| Campo | Tipo | Requerido | Ejemplo |
|---|---|---|---|
timestamp | ISO 8601 | sí | 2026-04-13T14:23:51.234Z |
part_id | cadena | sí | SN-A7841 |
lot_id | cadena | no | L-2026-04-13-A |
work_order | cadena | no | WO-78451 |
station_id | cadena | sí | STA-INSP-3 |
recipe_name | cadena | sí | Bottle 330ml v3 |
result | enum (PASS / FAIL / INCONCLUSIVE) | sí | PASS |
defect_class | cadena[] | no | ["scratch", "dent"] |
confidence | flotante (0.0 a 1.0) | no | 0.987 |
image_ref | URI | no | s3://acme-vision/2026/04/13/cap-12345.jpg |
operator_id | cadena | no | op.jane.doe |
cycle_time_ms | entero | no | 187 |
Conceptos erróneos comunes
"'MES dice a la cámara qué receta usar'." Incorrecto en arquitecturas PLC estándar. MES indica al PLC. PLC indica a la cámara. La única excepción es el Patrón C (sin PLC).
"'MES toma la decisión de rechazo'." Incorrecto. Lo hace el PLC. MES solo toma decisiones agregadas como “retener la orden si la tasa de desecho excede el 2%.”
"'La cámara reporta directamente al MES'." Incorrecto en arquitecturas estándar. La cámara reporta al PLC. El PLC empaqueta con contexto y reenvía al MES. La excepción es la ruta paralela del Patrón B, donde la cámara TAMBIÉN publica una carga útil más rica a MQTT/UNS para análisis, pero esto corre junto a la ruta del PLC.
Dónde ir a continuación
- Use el IO Helper para cablear la cámara + PLC + sensores y generar el archivo EDS, el mapeo de bits y la estructura de integración MES.
- Use el Integration Builder para generar el flujo real de Node-RED (publicador MQTT, escritor OPC UA, REST POST a MES, etc.) a partir de una descripción en lenguaje natural.