DOCUMENTACIÓN CON IA
¿Qué desea saber?
Variables
Una variable contiene un valor de su línea, como el número de serie de la pieza frente a la cámara. La cámara lo mantiene actualizado mientras funciona, y cada inspección guarda el valor que tenía en ese momento. Luego puede ponerlo en nombres de archivos, verlo en la Biblioteca y usarlo en scripts. No se necesita código.
Abra Integration > Variables.

De dónde proviene un valor
| Fuente | Cómo llega |
|---|---|
| PLC User Data | El PLC lo escribe en sus bytes de User Data |
| MQTT | Llega un mensaje en un topic. El valor puede ser el payload completo o un campo de un mensaje JSON |
| Camera script | Su camera script lo calcula y lo establece con vars.set() |
| Constant | Un valor fijo que usted escribe, como el nombre de una línea o estación |
También puede establecer un valor manualmente en la página de Variables, por ejemplo un operador ingresando un número de lote. Un valor establecido manualmente permanece hasta que la fuente propia de la variable envíe uno nuevo, y las capturas que lo usaron reciben una insignia manual en la Biblioteca.
La página ofrece tres ejemplos para comenzar: un número de serie de pieza desde el PLC, un número de lote desde MQTT y un nombre de línea o estación.
Desde el PLC
Elija dónde se encuentra el valor en el User Data del PLC y su tipo:
| Configuración | Valores |
|---|---|
| Offset | Byte 0 al 463 de User Data |
| Type | BOOL, SINT, USINT, INT, UINT, DINT, UDINT, LINT, ULINT, REAL, LREAL, STRING, BYTES |
| Bit | 0 al 7, solo para BOOL. Sin este, BOOL significa que el byte completo no es cero |
| String format | Fixed length (un número determinado de caracteres, con espacios finales y NULs recortados), Rockwell (un STRING de Logix: un DINT de longitud seguido de 82 caracteres) o Siemens (un STRING de S7: un byte de longitud máxima, un byte de longitud, y luego los caracteres) |
El orden de los bytes sigue al bus de campo: little-endian en EtherNet/IP, big-endian en PROFINET. En PROFINET, algunos bytes llegan solo cuando el PLC envía el módulo completo de User Data.
Los enteros de 64 bits llegan a los scripts y a los mensajes de resultados como cadenas decimales, porque los números de JavaScript no pueden contener todos los valores de 64 bits. Use BigInt(vars.part_id) en un script si necesita hacer aritmética con uno.
Desde MQTT
Indique el topic, cómo leer el payload (JSON, String o Number), y para JSON la ruta al campo, por ejemplo $.id. No se permiten comodines en el topic de una variable. Mientras MQTT esté desactivado, la variable permanece vacía.
Nombres y límites
- Los nombres son letras minúsculas, dígitos y guiones bajos, comenzando con una letra, hasta 32 caracteres:
serial,lot_number,part_type - Estos nombres están reservados:
vars,vars_info,tools,tools_by_name,rules,trigger,recipe,state - Hasta 64 variables por cámara. Los valores de texto son de hasta 1024 bytes
Dónde la usa
| Dónde | Cómo |
|---|---|
| Nombres de archivos y carpetas de Almacenamiento remoto | {var.serial}, por ejemplo {camera}/{var.lot} como carpeta y {var.serial}_{capture_id} como nombre de archivo. Un nombre de archivo aún necesita {capture_id}, {trigger_id} o {timestamp}, y no puede contener /. Consulte Almacenamiento remoto |
| Biblioteca | Los detalles de cada captura listan las variables que guardó, con su fuente y cuándo se recibió cada valor |
| Recipe script | vars.serial, y vars_info.serial.age_ms para saber su antigüedad. Consulte Recipe script |
| Camera script | vars.get("serial"), y vars.set() para variables cuya fuente es el camera script |
| Mensajes de resultados | Cada resultado enviado por MQTT, la HTTP API y al camera script lleva vars y vars_info |
Cosas que debe saber
Cada inspección guarda los valores que tienen las variables cuando sus herramientas terminan. Haga que el PLC escriba el número de serie antes de activar el disparo, o la captura guardará el valor de la pieza anterior.
- Vacío se muestra como
_. Una variable sin valor aparece como_en los nombres de archivos y comonullen los scripts - Los reinicios comienzan vacíos. Después de un reinicio, cada variable espera a que su fuente envíe un nuevo valor. Los valores establecidos manualmente deben configurarse nuevamente
- Un conjunto por cámara. Las variables pertenecen a la cámara, por lo que cada Receta en ella lee las mismas
- Exportaciones. Las variables viajan con las exportaciones de recetas
Establezca la variable manualmente en la página de Variables, luego dispare manualmente. El recipe script ve el valor establecido manualmente exactamente como vería el del PLC, y la captura se marca como manual para que nunca se confunda con datos de producción. Un recipe script puede rechazar valores establecidos manualmente en líneas donde no están permitidos, verificando vars_info.<name>.source.