DOCUMENTACIÓN CON IA
¿Qué desea saber?
MQTT
OV Spark Pro cuenta con un cliente MQTT integrado. Se conecta a su broker, en su red o en la nube, y:
- publica cada resultado de inspección como JSON, sin necesidad de script
- publica un heartbeat y su estado en línea
- recibe valores, como el número de lote actual, en variables
Soporta MQTT 3.1.1 y 5, con TCP plano, TLS o TLS mutuo (certificados de cliente).
Abra Integration > Data Connectors y seleccione MQTT.

Configúrelo
La configuración consta de tres pasos.
1. Conéctese al broker
Elija el tipo de broker para completar la configuración típica, la cual puede modificar:
| Tipo de broker | Típico |
|---|---|
| Broker de planta (Mosquitto, HiveMQ, EMQX) | Puerto 1883, o 8883 con TLS |
| Ignition / SCADA (Ignition MQTT Distributor y similares) | Puerto 1883 |
| Broker en la nube (AWS IoT, Azure, HiveMQ Cloud y similares) | Puerto 8883 con TLS |
| Otro | Cualquier broker MQTT 3.1.1 o 5; usted configura cada campo |

| Configuración | Notas |
|---|---|
| Dirección y Puerto | El nombre de host o la dirección IP del broker. Puerto predeterminado 1883 |
| Versión MQTT | 5 (predeterminado) o 3.1.1 |
| Seguridad | Ninguna, TLS o TLS mutuo (certificado de cliente). TLS sin un certificado CA utiliza el almacén de confianza integrado de la cámara; TLS mutuo requiere una CA, un certificado de cliente y una clave de cliente |
| Nombre de usuario y contraseña | Deje en blanco si el broker permite conexiones anónimas |
| Avanzado | Client ID (el número de serie de la cámara por defecto), keep-alive (30 s) y clean session (activada) |
La verificación de conexión se ejecuta un segundo después de que deja de escribir: resuelve el nombre de host, se conecta al puerto, verifica TLS e inicia sesión, un paso a la vez. Las configuraciones se guardan al presionar Guardar y continuar en cada paso, y MQTT permanece desactivado hasta el paso 3.
Ninguna envía todo sin cifrar, incluyendo la contraseña. Esto es aceptable en una red de máquina aislada. Use TLS si el tráfico cruza la red de la planta o de la oficina, y TLS mutuo para brokers en la nube que requieren certificados de cliente.
2. Elija qué enviar
| Mensaje | Topic predeterminado | Notas |
|---|---|---|
| Resultados de inspección | overview/<serial>/results | Un mensaje por cada inspección en Producción, con el QoS que usted elija (1 por defecto). Resumido omite el detail de cada herramienta; Completo lo incluye |
| Heartbeat | overview/<serial>/heartbeat | Cada N segundos (5 o más, o desactivado), con QoS 0 |
| Estado en línea | overview/<serial>/status | Un {"status":"online"} retenido, y un last-will {"status":"offline"} que el broker envía si la cámara se desconecta |
Puede cambiar cada topic, por ejemplo a plant/line3/results.
3. Active MQTT
Active MQTT y luego observe cada mensaje publicado en Monitor > Topics and messages.
Los mensajes de resultados se publican con retain desactivado, por lo que un suscriptor que se conecte después no recibirá un resultado antiguo como si fuera nuevo. Para mantener disponible el último resultado, publíquelo usted mismo desde el script de la cámara con retain: true, o léalo mediante la API HTTP.
Cómo se ve un mensaje de resultado
El mismo documento es utilizado por MQTT, la API HTTP y el onResult del script de la cámara. Un resultado Completo, abreviado:
{
"schema_version": 1,
"serial": "5F9FE801",
"id": "01a17216-f035-7ec5-adae-b90b6a0868a8",
"recipe": { "id": 3, "name": "Kit tray" },
"trigger": { "id": 420596, "source": "plc" },
"image": { "width": 2592, "height": 1944, "url": "/api/integration/v1/results/01a17216-f035-7ec5-adae-b90b6a0868a8/image" },
"captured_at": "2026-10-25T08:04:28.341Z",
"processing_ms": 82,
"judgment": "fail",
"pass": false,
"not_inspected": false,
"reason": "serial differs",
"judgment_source": "script",
"rules": { "judgment": "pass", "pass": true, "not_inspected": false },
"vars": { "serial": "SN-24-118734" },
"tools": [
{
"id": "01a15f8b-da07-7e42-8b3e-d3edaff79428",
"type": "classical.barcode",
"name": "Label",
"plc_slot": 1,
"judgment": "pass",
"score": 1,
"execute_ms": 4,
"detail": { "decoded": true, "data": "0104012345678901", "symbology": "data_matrix" }
}
],
"metadata": {},
"tags": [],
"plc_inspection_id": 1234,
"phase": "production"
}
judgment_sourceindica qué decidió el veredicto: las reglas, el script de la receta, oscript_errorcuando el script fallóruleses el veredicto de las reglas, incluso cuando el script tomó la decisiónvarscontiene las variables que la inspección guardóimage.urlobtiene la imagen mediante la API HTTP
El heartbeat es pequeño:
{"schema_version":1,"serial":"5F9FE801","hostname":"line3-cam","recipe":"Kit tray","phase":"production","uptime_s":3600,"mqtt":"connected","ts":"2026-10-25T08:04:28.341Z"}
Reciba valores
Para traer un valor, declare una variable con MQTT como su fuente: el topic, y para JSON la ruta al campo. Cada inspección guarda entonces el valor más reciente. Para algo más complejo, como extraer un campo de un mensaje de un proveedor o responder a solicitudes, use el script de la cámara.
La configuración de MQTT viaja con las exportaciones de recetas, pero las contraseñas y los certificados nunca se exportan. Si la cámara de origen usaba credenciales que la cámara de destino no tiene, MQTT llega desactivado. De lo contrario, mantiene el estado activado o desactivado del origen, por lo que una importación en una cámara que pueda acceder a un broker anónimo puede comenzar a publicar de inmediato. Revise Data Connectors después de cada importación.
A dónde ir después
- Script de la cámara, para sus propios topics y formatos de mensaje
- Variables
- API HTTP