Saltar al contenido principal

DOCUMENTACIÓN CON IA

¿Qué desea saber?

Detalles de Comunicación con PLC (EtherNet/IP)

El sistema de visión OV10i admite la comunicación en tiempo real con PLCs basados en EtherNet/IP. Esta guía explica cómo configurar conexiones I/O cíclicas, mapear estructuras de datos y utilizar las herramientas de Node-RED de Overview para acceder a los resultados de inspección tanto a nivel global como a nivel de ROI.

Guía en Video

Vea este tema en acción: Auto-Integration Builder

nota

Para instrucciones básicas de conexión, consulte Connect to PLC (EtherNet/IP, PROFINET).


Visión General

El OV10i funciona como un adaptador EtherNet/IP, mientras que su PLC opera como escáner (o maestro). Una vez configurados, los dispositivos intercambian datos estructurados en cada ciclo utilizando un formato compacto y predecible.

Funciones Compatibles

  • Comunicación I/O cíclica - Soporte de tiempo de ciclo de 20 a 10,000 ms
  • Rendimiento de datos - Hasta 256 bytes en cada dirección
  • Manejo de datos personalizados - Lectura/escritura de datos de Node-RED como parte de la receta activa

Ensamblaje de Entrada (OV10i → PLC)

El ensamblaje de entrada contiene los datos enviados desde el OV10i al PLC en cada ciclo. Esto incluye el estado del sistema, los resultados de inspección, la información de la receta y desgloses opcionales por ROI.

Diseño de bytes y bits del ensamblaje de entrada del OV10i

Ensamblaje de Salida (PLC → OV10i)

El ensamblaje de salida contiene los datos de control enviados desde el PLC al OV10i. Puede utilizarlo para activar inspecciones, cambiar recetas o pasar parámetros personalizados.

Diseño de bytes y bits del ensamblaje de salida del OV10i

Comportamiento de Sincronización y Handshake

Diagrama de Sincronización de Activación EtherNet/IP

Soporte para Datos Personalizados

El OV10i puede aceptar o devolver datos personalizados adicionales como parte de su flujo de Node-RED.

PLC → OV10i

  • Escriba banderas externas, umbrales o contadores para influir en la lógica de Node-RED

OV10i → PLC

  • Devuelva valores calculados, mediciones, marcas de tiempo o salidas condicionales

Los datos personalizados se ubican en la porción extendida de los ensamblajes, comenzando después de las señales principales y la información de la receta.

Desglose de Resultados por ROI (Solo Recetas de Clasificación)

Para recetas de clasificación, puede exponer los resultados por ROI al PLC utilizando el nodo personalizado de Node-RED de Overview: Format data for PLC.

Cómo funciona:

  • Se coloca entre All Blocks Output Data y Send Data to PLC en el flujo de Node-RED

Ejemplo de Flujo de Node-RED para Format Data for PLC

  • Llena automáticamente una región estructurada de ROI que comienza en el byte 16 del ensamblaje de entrada

  • Admite hasta 4 ROIs por inspección

  • Cada ROI incluye:

    • ID del ROI
    • Bit de aprobado/rechazado
    • Puntuación de confianza
    • Bytes reservados para uso futuro
aviso

El nodo Format Data for PLC funciona únicamente con Recetas de Clasificación.

Diseño de bytes y bits del ensamblaje de salida del OV10i


Referencia de Tags Predeterminados del PLC

Esta sección proporciona una referencia completa de cada tag en los ensamblajes de Entrada y Salida, incluyendo desplazamientos de bytes, posiciones de bits, tipos de datos y valores predeterminados. Utilice esto como el mapa de bits definitivo al configurar su programa de PLC.

Dónde Ver las Etiquetas Predeterminadas en la IU de la Cámara

  1. Abra la interfaz web de la cámara (por ejemplo, http://192.168.1.100).
  2. Navegue a Industrial Ethernet en la barra lateral izquierda.
  3. Seleccione su protocolo activo (EtherNet/IP o PROFINET).
  4. La página muestra la configuración actual del ensamblaje, incluidos los tamaños de datos de entrada/salida y el estado de la conexión.
  5. La disposición predeterminada de etiquetas que se muestra en esta página corresponde a las tablas siguientes.

Etiquetas del Ensamblaje de Entrada (Cámara → PLC)

Estas etiquetas son leídas por el PLC. La cámara las escribe en cada ciclo de I/O.

Byte 0 -- Banderas de Estado

BitDirección de Etiqueta del PLCNombre de la EtiquetaTipo de DatoDescripciónValor Predeterminado
0I.Data[0].0Trigger ReadyBOOLLa cámara está lista para aceptar un trigger. Debe estar en HIGH antes de enviar una solicitud de trigger.0 (pasa a HIGH después del arranque)
1I.Data[0].1Trigger AcknowledgeBOOLLa cámara ha recibido y aceptado la solicitud de trigger.0
2I.Data[0].2Recipe Switch AcknowledgeBOOLLa cámara ha recibido y completado la solicitud de cambio de receta.0
7I.Data[0].7Online / Startup CompleteBOOLLa cámara ha terminado de arrancar y está en línea.0 (pasa a HIGH después del arranque)

Byte 1 -- Banderas de Error y Estado

BitDirección de Etiqueta del PLCNombre de la EtiquetaTipo de DatoDescripciónValor Predeterminado
0I.Data[1].0Trigger ErrorBOOLOcurrió un error durante el ciclo de trigger. Se mantiene latcheado hasta que se borre.0
1I.Data[1].1Recipe Switch ErrorBOOLOcurrió un error durante el cambio de receta. Se mantiene latcheado hasta que se borre.0
6I.Data[1].6BusyBOOLLa cámara está procesando actualmente (inspección en curso o cambio de receta). No envíe nuevos comandos mientras esté en HIGH.0

Byte 2 -- Banderas de Resultado de Inspección

BitDirección de Etiqueta del PLCNombre de la EtiquetaTipo de DatoDescripciónValor Predeterminado
0I.Data[2].0Exposure CompleteBOOLLa exposición de la imagen ha finalizado.0
1I.Data[2].1Inspection Completed / Result AvailableBOOLEl procesamiento de la inspección ha finalizado y los resultados son válidos.0
2I.Data[2].2Inspection PassBOOLResultado final de aprobado/rechazado. HIGH = Aprobar, LOW = Fallar. Solo válido cuando Result Available está en HIGH.0

Bytes 3--7 -- Reservados

Byte(s)Dirección de Etiqueta del PLCNombre de la EtiquetaTipo de DatoDescripciónValor Predeterminado
3I.Data[3]ReservedBYTEReservado para uso futuro.0x00
4I.Data[4]ReservedBYTEReservado para uso futuro.0x00
5I.Data[5]ReservedBYTEReservado para uso futuro.0x00
6--7I.Data[6]--I.Data[7]ReservedBYTEReservado para uso futuro.0x00

Bytes 8--9 -- ID de la Receta Actual

Byte(s)Dirección de Etiqueta del PLCNombre de la EtiquetaTipo de DatoDescripciónValor Predeterminado
8--9I.Data[8]--I.Data[9]Current Recipe IDUINT (16-bit)El ID de la receta actualmente activa. Compárelo con O.Data[4] para verificar que un cambio de receta se completó.0

Bytes 10--11 -- Reservado

Byte(s)Dirección de Tag del PLCNombre del TagTipo de DatoDescripciónValor Predeterminado
10--11I.Data[10]--I.Data[11]ReservadoBYTEReservado para uso futuro.0x00

Bytes 12--13 -- ID de Inspección

Byte(s)Dirección de Tag del PLCNombre del TagTipo de DatoDescripciónValor Predeterminado
12--13I.Data[12]--I.Data[13]ID de InspecciónUINT (16-bit)Contador rotativo de 16 bits que se incrementa con cada inspección. Úselo para correlacionar resultados con disparos específicos.0

Bytes 14--15 -- Reservado

Byte(s)Dirección de Tag del PLCNombre del TagTipo de DatoDescripciónValor Predeterminado
14--15I.Data[14]--I.Data[15]ReservadoBYTEReservado para uso futuro.0x00

Bytes 16--256 -- Ensamble de Resultados de ROI / Datos Personalizados desde Node-RED

Byte(s)Dirección de Tag del PLCNombre del TagTipo de DatoDescripciónValor Predeterminado
16--256I.Data[16]--I.Data[256]Resultados de ROI / Datos PersonalizadosBYTE[]Cuando se utiliza el bloque de Node-RED "Format Data for PLC", esta región se llena con resultados estructurados de ROI. De lo contrario, está disponible para datos personalizados desde flujos de Node-RED.0x00

Tags del Ensamble de Salida (PLC → Cámara)

Estos tags son escritos por el PLC. La cámara los lee en cada ciclo de I/O.

Byte 0 -- Banderas de Control

BitDirección de Tag del PLCNombre del TagTipo de DatoDescripciónValor Predeterminado
0O.Data[0].0Trigger RequestBOOLEstablezca en HIGH para disparar una inspección. Mantenga el latch hasta que Trigger Acknowledge (I.Data[0].1) pase a HIGH, luego libere el latch.0
1O.Data[0].1Recipe Switch RequestBOOLEstablezca en HIGH para solicitar un cambio de receta al ID en O.Data[4]. Mantenga el latch hasta que Recipe Switch Ack (I.Data[0].2) pase a HIGH, luego libere el latch.0

Bytes 1--3 -- Reservado

Byte(s)Dirección de Tag del PLCNombre del TagTipo de DatoDescripciónValor Predeterminado
1O.Data[1]ReservadoBYTEReservado para uso futuro.0x00
2O.Data[2]ReservadoBYTEReservado para uso futuro.0x00
3O.Data[3]ReservadoBYTEReservado para uso futuro.0x00

Bytes 4--5 -- ID de Receta

Byte(s)Dirección de Tag del PLCNombre del TagTipo de DatoDescripciónValor Predeterminado
4--5O.Data[4]--O.Data[5]ID de RecetaUINT (16-bit)El ID de receta al cual cambiar. Escriba el número de receta deseado aquí antes de establecer el bit Recipe Switch Request.0

Bytes 6--256 -- Datos Personalizados para Node-RED

Byte(s)Dirección de Tag del PLCNombre del TagTipo de DatoDescripciónValor Predeterminado
6--256O.Data[6]--O.Data[256]Datos Personalizados para Node-REDBYTE[]Datos definidos por el usuario que los flujos de Node-RED pueden leer. Use esta región para pasar números de serie, umbrales, IDs de pieza o cualquier otro parámetro a la cámara.0x00

Diagramas de Mapeo de Bits

Los siguientes diagramas basados en texto muestran la distribución completa de bytes/bits para ambos ensamblajes. Cada fila representa un byte (o rango de bytes), y cada columna representa una posición de bit (bit 7 a la izquierda, bit 0 a la derecha).

Mapa de Bits del Ensamblaje de Entrada (Cámara → PLC)

Byte │ Bit 7          │ Bit 6  │ Bit 5 │ Bit 4 │ Bit 3 │ Bit 2              │ Bit 1                      │ Bit 0
─────┼────────────────┼────────┼───────┼───────┼───────┼────────────────────┼────────────────────────────┼──────────────────
0 │ Online/Startup │ --- │ --- │ --- │ --- │ Recipe Switch Ack │ Trigger Ack │ Trigger Ready
│ Complete │ │ │ │ │ │ │
─────┼────────────────┼────────┼───────┼───────┼───────┼────────────────────┼────────────────────────────┼──────────────────
1 │ --- │ Busy │ --- │ --- │ --- │ --- │ Recipe Switch Error │ Trigger Error
─────┼────────────────┼────────┼───────┼───────┼───────┼────────────────────┼────────────────────────────┼──────────────────
2 │ --- │ --- │ --- │ --- │ --- │ Inspection Pass │ Inspection Completed / │ Exposure
│ │ │ │ │ │ │ Result Available │ Complete
─────┼────────────────┼────────┼───────┼───────┼───────┼────────────────────┼────────────────────────────┼──────────────────
3-5 │ --- │ --- │ --- │ --- │ --- │ --- │ --- │ ---
─────┼────────────────┼────────┼───────┼───────┼───────┼────────────────────┼────────────────────────────┼──────────────────
6-7 │ Reserved │
─────┼──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
8-9 │ Current Recipe ID (16-bit unsigned integer) │
─────┼──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
10-11│ Reserved │
─────┼──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
12-13│ Inspection ID (16-bit unsigned integer) │
─────┼──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
14-15│ Reserved │
─────┼──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
16- │ ROI Results Assembly or Custom Data from Node-RED │
256 │ │

Mapa de Bits del Output Assembly (PLC → Cámara)

Byte │ Bit 7 │ Bit 6 │ Bit 5 │ Bit 4 │ Bit 3 │ Bit 2 │ Bit 1                 │ Bit 0
─────┼───────┼───────┼───────┼───────┼───────┼───────┼───────────────────────┼────────────────
0 │ --- │ --- │ --- │ --- │ --- │ --- │ Recipe Switch Request │ Trigger Request
─────┼───────┼───────┼───────┼───────┼───────┼───────┼───────────────────────┼────────────────
1-3 │ Reserved │
─────┼──────────────────────────────────────────────────────────────────────────────────────────
4-5 │ Recipe ID (16-bit unsigned integer) │
─────┼──────────────────────────────────────────────────────────────────────────────────────────
6- │ Custom Data for Node-RED │
256 │ │

Detalle del ROI Results Assembly (Bytes 16--55)

Cuando se utiliza el bloque Node-RED Format Data for PLC con recetas de clasificación, los bytes 16+ del Input Assembly se completan con datos estructurados del alineador y por ROI de la siguiente manera:

Sección del Alineador (Bytes 16--23)

Byte(s)Dirección de Tag del PLCNombre del TagTipo de DatoDescripción
16, bit 0I.Data[16].0Aligner SuccessBOOLHIGH si el alineador localizó exitosamente la pieza.
17--18I.Data[17]--I.Data[18]Aligner ConfidenceUINT (16-bit)Puntuación de confianza de la alineación (0--65535).
19--20I.Data[19]--I.Data[20]Aligner AngleINT (16-bit, signed)Ángulo coincidente relativo a la plantilla.
21--23I.Data[21]--I.Data[23]Reserved (Aligner)BYTEReservado para datos futuros del alineador.

Bloques de Resultados de ROI (Bytes 24--55)

Cada ROI ocupa 8 bytes. Se admiten hasta 4 ROIs (ROI 0 hasta ROI 3).

Estructura del bloque ROI (se repite cada 8 bytes):

Offset dentro del bloqueNombre del TagTipo de DatoDescripción
+0ROI IDUINT8 (8-bit)Identificador numérico único del ROI.
+1, bit 0ROI PassBOOLHIGH = este ROI aprobó, LOW = este ROI falló.
+2 to +3ROI ConfidenceUINT (16-bit)Puntuación de confianza para la clasificación de este ROI (0--65535).
+4 to +7ReservedBYTEReservado para datos futuros por ROI.

Direcciones de inicio del ROI:

ROIByte de InicioRango de Dirección del PLCDirección de IDDirección de PassDirección de Confidence
ROI 024I.Data[24]--I.Data[31]I.Data[24]I.Data[25].0I.Data[26]--I.Data[27]
ROI 132I.Data[32]--I.Data[39]I.Data[32]I.Data[33].0I.Data[34]--I.Data[35]
ROI 240I.Data[40]--I.Data[47]I.Data[40]I.Data[41].0I.Data[42]--I.Data[43]
ROI 348I.Data[48]--I.Data[55]I.Data[48]I.Data[49].0I.Data[50]--I.Data[51]

Configuración del Buffer

Visualización de etiquetas predeterminadas en la IU de la cámara

El diseño de etiquetas predeterminado está definido por el firmware de la cámara y corresponde a las tablas anteriores. Para ver la configuración actual:

  1. Abra la interfaz web de la cámara.
  2. Vaya a Industrial Ethernet en el menú de la izquierda.
  3. Seleccione su protocolo (EtherNet/IP o PROFINET).
  4. La página muestra:
    • Estado de la conexión e información del dispositivo
    • Tamaños de los assemblies de entrada y salida (hasta 256 bytes en cada dirección)
    • El enlace de descarga del archivo EDS o GSDML (que también codifica la estructura predeterminada del assembly)

El archivo EDS (para EtherNet/IP) y el archivo GSDML (para PROFINET) definen los tamaños de datos predeterminados. Cuando agrega el módulo de la cámara en Studio 5000 o TIA Portal, los tamaños de los assemblies de estos archivos descriptores determinan cuántos bytes se intercambian en cada ciclo.

Creación de un buffer de datos personalizado

Para enviar datos personalizados (más allá de las etiquetas predeterminadas de estado/resultado) entre la cámara y el PLC, utilice el bloque de Node-RED "Format Data for PLC":

  1. Abra Node-RED desde la interfaz web de la cámara (navegue al editor de Node-RED).
  2. En el flujo de su receta, coloque el nodo "Format Data for PLC" entre el nodo "All Blocks Output Data" y el nodo "Send Data to PLC".
  3. Configure el orden de bytes:
    • Little-endian para PLCs Allen-Bradley / Rockwell
    • Big-endian para PLCs Siemens
  4. El bloque formatea automáticamente los resultados de ROI de clasificación en el diseño estructurado que comienza en el byte 16 del Input Assembly (consulte la sección ROI Results Assembly Detail más arriba).

Para buffers de datos completamente personalizados (sin utilizar el formato ROI predeterminado):

  1. En su flujo de Node-RED, utilice un nodo Function para construir un buffer msg.payload con el diseño de bytes deseado.
  2. Conéctelo al nodo "Send Data to PLC".
  3. Sus bytes personalizados poblarán el Input Assembly comenzando en el byte 16.
  4. Del lado del PLC, lea las direcciones correspondientes desde I.Data[16] hasta I.Data[256].

Cambio de asignaciones de etiquetas

Las etiquetas principales (bytes 0--15 del Input Assembly y bytes 0--5 del Output Assembly) están fijadas por el firmware de la cámara y no pueden reasignarse. Estas son las señales a nivel del sistema (trigger, cambio de receta, estado, errores, ID de receta e ID de inspección).

La región configurable es:

  • Bytes 16--256 del Input Assembly: Poblados por Node-RED. Usted controla qué datos van aquí configurando su flujo de Node-RED. El bloque "Format Data for PLC" lo llena con resultados de ROI de forma predeterminada, o puede escribir datos arbitrarios usando nodos Function.
  • Bytes 6--256 del Output Assembly: Leídos por Node-RED. Puede escribir cualquier dato desde el PLC en estos bytes y luego leerlos en su flujo de Node-RED utilizando los nodos de entrada apropiados. Esto es útil para enviar números de serie, IDs de lote, umbrales u otros parámetros desde el PLC hacia la cámara.

Envío de datos personalizados del PLC a la cámara (Output Assembly)

Para pasar datos personalizados desde el PLC a Node-RED:

  1. En su programa de PLC, escriba valores en O.Data[6] hasta O.Data[256].
  2. En Node-RED en la cámara, utilice los nodos de datos de entrada del PLC para leer esos bytes.
  3. Utilice los valores en la lógica de su flujo (por ejemplo, umbrales, números de serie, parámetros condicionales).
tip

Para obtener un recorrido paso a paso sobre cómo enviar datos de tipo string desde un PLC a la cámara, consulte Send Custom Data from PLC to Camera.

Referencia Rápida: Hoja de Consulta de Direcciones de Tags

La siguiente tabla resume los tags más utilizados en un solo lugar para una consulta rápida durante la programación del PLC:

Dirección PLCDirecciónNombre de la SeñalUso
I.Data[0].0Cámara → PLCTrigger ReadyVerificar antes de disparar
I.Data[0].1Cámara → PLCTrigger AcknowledgeDesenganchar el trigger después de que esto pase a HIGH
I.Data[0].2Cámara → PLCRecipe Switch AckDesenganchar la solicitud de receta después de que esto pase a HIGH
I.Data[0].7Cámara → PLCOnline / Startup CompleteConfirmar que la cámara está iniciada
I.Data[1].0Cámara → PLCTrigger ErrorMonitorear fallos de trigger
I.Data[1].1Cámara → PLCRecipe Switch ErrorMonitorear fallos en el cambio de receta
I.Data[1].6Cámara → PLCBusyNo enviar comandos mientras esté en HIGH
I.Data[2].0Cámara → PLCExposure CompleteImagen capturada
I.Data[2].1Cámara → PLCResult AvailableSeguro para leer aprobado/rechazado
I.Data[2].2Cámara → PLCInspection PassHIGH = Aprobar, LOW = Fallar
I.Data[8]--I.Data[9]Cámara → PLCCurrent Recipe IDVerificar receta después del cambio
I.Data[12]--I.Data[13]Cámara → PLCInspection IDCorrelacionar resultados con triggers
O.Data[0].0PLC → CámaraTrigger RequestEnganchar HIGH para disparar
O.Data[0].1PLC → CámaraRecipe Switch RequestEnganchar HIGH para cambiar de receta
O.Data[4]--O.Data[5]PLC → CámaraRecipe IDEstablecer el número de receta deseado
O.Data[6]+PLC → CámaraCustom DataDatos definidos por el usuario para Node-RED
I.Data[16]+Cámara → PLCROI Results / Custom DataResultados de ROI o salida personalizada de Node-RED