DOCUMENTACIÓN CON IA
¿Qué desea saber?
Integración mediante Scripts
A partir del firmware 2026.10.30, OV Spark Pro puede recibir datos de su línea, decidir con su propia lógica y enviar resultados en su propio formato, todo en la cámara. Hay cuatro piezas, y la mayoría de las configuraciones solo utilizan una o dos de ellas:
| Pieza | Qué es | ¿Código? |
|---|---|---|
| Variables | Valores que llegan desde el exterior, como un número de serie o de lote desde el PLC o MQTT. Cada captura guarda los valores con los que se ejecutó | No |
| Script de receta | JavaScript en el paso de Veredicto que decide aprobado o rechazado con una razón, agrega metadatos y etiquetas, y escribe sus propios bytes para el PLC | Sí |
| Script de cámara | Un script a nivel de toda la cámara que publica en MQTT, reacciona a mensajes entrantes y mantiene contadores y alertas | Sí |
| MQTT | Un cliente MQTT integrado. Una vez configurado un broker, cada resultado de inspección se publica, sin necesidad de ningún script | No |
Se encuentran en Integration en la navegación izquierda de la cámara: Variables, Camera Script y Data Connectors. El script de receta está en el paso de Veredicto de cada receta.

Script de receta o script de cámara
| Script de receta | Script de cámara | |
|---|---|---|
| Pertenece a | Una receta, y se exporta con ella | La cámara, y sigue ejecutándose durante los cambios de receta |
| Se ejecuta | En cada inspección, después de las herramientas y antes de que el PLC vea el resultado | Cuando sucede algo: un resultado, un mensaje MQTT, un cambio en PLC User Data, un temporizador |
| Memoria | Sin memoria confiable: trate cada inspección como si comenzara desde cero | Mantiene el estado entre eventos hasta que se recarga |
| Límite de tiempo | 25 ms por defecto, hasta 200 ms | 1 segundo hasta el primer await de un hook, luego 50 ms por cada parte posterior |
| Puede | Establecer aprobado o rechazado y la razón, escribir bytes de PLC User Results, agregar metadatos y etiquetas | Publicar en MQTT, establecer variables, generar alertas, ejecutar temporizadores |
| No puede | Usar la red, mantener el estado, usar temporizadores | Cambiar un veredicto, escribir bytes del PLC, editar una captura finalizada |
Si el PLC lo necesita cuando Inspection Completed se activa, va en el script de receta. Si pasa por la red, o tiene que recordar algo entre piezas, va en el script de cámara.
Los dos se conectan a través de variables: el script de cámara establece una variable, el script de receta la lee, y el valor se guarda con la captura, para que siempre pueda ver en qué se basó una decisión.
Configuraciones comunes
| Lo que quiere hacer | Use |
|---|---|
| Guardar el número de serie o código que el PLC envía con cada imagen | Una variable en PLC User Data. Sin código: cada captura lo almacena, la Biblioteca lo muestra, y los nombres de archivo de Almacenamiento remoto pueden usarlo, por ejemplo {camera}/{var.lot} para la carpeta y {var.serial}_{capture_id} como nombre de archivo |
| Verificar la pieza contra lo que el PLC espera | Un script de receta que compara el texto OCR o el código con la variable de serie y rechaza con serial differs. La misma idea funciona para un conteo contra la cantidad de la orden |
| Tomar datos de MES u otro sistema | Una variable vinculada a un tema MQTT y campo JSON, o un script de cámara que extrae un campo del mensaje de un proveedor y establece la variable |
| Permitir que un operador ingrese el número de lote | Establezca la variable manualmente en la página de Variables. Las capturas que usaron un valor ingresado manualmente obtienen una insignia manual. Esta es también la forma de probar un script en el banco sin un PLC |
| Encontrar capturas posteriormente por lote, o por lo cerca que estuvieron de fallar | Un script de receta que guarda valores como metadatos y etiqueta capturas, como near-miss o review |
| Enviar sus propios datos al PLC | Un script de receta que empaqueta un conteo, un bit por región, o un código por herramienta en User Results con pack() |
| Ejecutar diferentes comprobaciones por modelo | El PLC envía el tipo de pieza; el script de receta marca otros tipos de pieza como Not inspected, o activa o desactiva una comprobación |
| Usar su propia lógica de aprobación | Por ejemplo, aprobar cuando al menos 78 de 80 regiones aprueban, o colocar el nombre de la herramienta que falla en la razón |
| No inspeccionar una pieza cuando los datos faltan o están obsoletos | Un script de receta que devuelve Not inspected cuando el número de serie no ha llegado, o cuando el último valor del PLC es demasiado antiguo |
| Publicar cada resultado | Nada que escribir: con un broker configurado en Data Connectors, cada resultado y un heartbeat van a MQTT. Use el script de cámara para su propio tema o formato de mensaje |
| Monitorear la línea | Un script de cámara que genera una alerta después de N rechazos consecutivos, publica conteos de aprobados y rechazados por turno como CSV, o publica un heartbeat |
| Responder a solicitudes por MQTT | Un script de cámara que responde a solicitudes como last result o value of a variable |
Cada configuración anterior que utiliza un script tiene una plantilla lista en la galería de Templates del editor de scripts.
El banco de trabajo del script
Ambos scripts se escriben en el mismo editor en la cámara, con:
- Templates: ejemplos funcionales para cada tarea anterior. Elija uno y complete la herramienta o variable que utiliza
- Autocompletado y un panel de Reference que documenta cada hook, global y tipo, con guías breves
- Test contra la cámara en vivo o capturas recientes, para que ya no tenga que cambiar entre la HMI y la pestaña del script
- History: sus últimas 20 versiones guardadas, para comparar o regresar a ellas
- Test ejecuta el borrador en un disparo en vivo o en capturas almacenadas (la última, las últimas N hasta 500, un filtro de Biblioteca, o números de captura). Para el script de cámara es una ejecución en seco que reproduce resultados recientes sin enviar nada

Un script de receta que arroja un error o se queda sin tiempo hace que la pieza sea Not inspected y pone en cero PLC User Results. Ejecute Test con una pieza rechazada además de una buena antes de guardar, y mantenga el script corto: su tiempo se suma a cada ciclo.
Bueno saberlo
- Las variables, scripts y configuraciones de MQTT viajan con las exportaciones de receta. Las contraseñas y certificados no se exportan: si el origen usó credenciales que el destino no tiene, MQTT llega desactivado; de lo contrario mantiene la configuración del origen
- La HTTP API ahora devuelve resultados en el mismo formato que MQTT y los scripts. Si integró contra 2026.10.13, consulte los cambios de campos en esa página
- Aún no disponible: disparar una inspección o cambiar de receta desde el script de cámara (el PLC y HTTP aún lo hacen), TCP y OPC-UA, y un widget de HMI para mostrar o establecer una variable
A dónde ir después
- Variables
- Script de receta, con un playground que puede probar en el navegador
- Script de cámara
- MQTT