Saltar al contenido principal

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.

Página de Variables: de dónde proviene el valor, la variable y dónde la usa

De dónde proviene un valor​

FuenteCómo llega
PLC User DataEl PLC lo escribe en sus bytes de User Data
MQTTLlega un mensaje en un topic. El valor puede ser el payload completo o un campo de un mensaje JSON
Camera scriptSu camera script lo calcula y lo establece con vars.set()
ConstantUn 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ónValores
OffsetByte 0 al 463 de User Data
TypeBOOL, SINT, USINT, INT, UINT, DINT, UDINT, LINT, ULINT, REAL, LREAL, STRING, BYTES
Bit0 al 7, solo para BOOL. Sin este, BOOL significa que el byte completo no es cero
String formatFixed 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.

LINT y ULINT llegan como texto

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óndeCó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
BibliotecaLos detalles de cada captura listan las variables que guardó, con su fuente y cuándo se recibió cada valor
Recipe scriptvars.serial, y vars_info.serial.age_ms para saber su antigüedad. Consulte Recipe script
Camera scriptvars.get("serial"), y vars.set() para variables cuya fuente es el camera script
Mensajes de resultadosCada resultado enviado por MQTT, la HTTP API y al camera script lleva vars y vars_info

Cosas que debe saber​

Escriba antes de disparar

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 como null en 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
Pruebe en banco sin un PLC

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.

A dónde ir después​