LLRP en la práctica: el protocolo es simple, el modelo de configuración no
LLRP en la práctica: el protocolo es simple, el modelo de configuración no
Técnico

LLRP en la práctica: el protocolo es simple, el modelo de configuración no

LLRP intimida por su codificación TLV binaria, pero el conjunto útil es pequeño: cinco mensajes de configuración, un ROSpec, un AccessSpec y un selector de reporte. Un mapa práctico del protocolo, los campos que cambian el comportamiento y los códigos de estado que merecen gestión.

12 min· By SpidersRFID Editorial Team

LLRP tiene fama de difícil, y la fama está medio justificada: la codificación es binaria, el catálogo de mensajes es largo y la documentación parece escrita por un comité de estándares, porque lo fue. Pero el subconjunto que necesita un despliegue real es pequeño, y una vez entendido, el protocolo se convierte en la parte menos interesante del proyecto.

Este es el mapa de ese subconjunto: qué configurar, en qué orden y qué campos cambian de verdad lo que hace el lector.

Qué es LLRP y en qué capa está

LLRP es un protocolo host-lector, no un protocolo de aplicación, y mantener esa distinción ahorra mucha confusión de diseño.

  • Lo define EPCglobal y está estandarizado como LLRP 1.0.1, con 1.1 añadiendo control más fino y mejor soporte de extensiones.
  • Corre sobre TCP en el puerto 5084 por defecto y codifica mensajes como estructuras binarias tipo-longitud-valor.
  • Su trabajo es configurar la radio y entregar reportes de etiquetas, no decidir qué significa una lectura.
  • Casi cualquier lector fijo empresarial lo soporta, y por eso el código LLRP puede ser portable entre marcas.
  • Por encima de LLRP sigues necesitando tu propia pasarela: deduplicación, mapeo de negocio y escrituras al ERP quedan fuera del protocolo.

El modelo de mensajes: peticiones, respuestas y reportes

Tres familias de mensajes cubren todo, y saber cuál es cuál evita la mayor parte de la confusión.

  • Las peticiones llevan un identificador y esperan exactamente una respuesta con el mismo identificador.
  • Las respuestas llevan un código de estado; un éxito con carga inesperada es más común que un fallo rotundo.
  • Los reportes llegan de forma asíncrona una vez que un ROSpec está corriendo, y no son respuesta a nada.
  • Los eventos del lector y las notificaciones de error también pueden llegar asíncronamente, así que el cliente debe estar leyendo siempre.
  • Un cliente que solo lee después de enviar una petición acabará llenando el búfer del socket y bloqueándose.

Configuración del lector: los cinco mensajes que siempre envías

La configuración es una máquina de estados, y el orden importa más que los campos individuales.

  • Lee capacidades primero; te dice qué opciones soporta el lector y evita enviar ajustes no soportados.
  • Configura el lector después: keepalive, búfer de reportes y propiedades de antena por defecto.
  • Añade el ROSpec, habilítalo y arráncalo; un ROSpec habilitado pero no arrancado no hace nada y parece un fallo.
  • Añade el AccessSpec aparte, y solo cuando una escritura o un bloqueo sea realmente necesario.
  • Borra y vuelve a añadir un ROSpec en lugar de editarlo in situ; las ediciones in situ son donde aparecen las diferencias entre fabricantes.

ROSpec: describir una operación de inventario

Un ROSpec es un contenedor de una especificación de reporte y una o más especificaciones de parámetros de inventario.

  • La especificación de reporte selecciona qué campos de etiqueta vuelven y con qué frecuencia se emiten reportes.
  • La especificación de parámetros de inventario nombra las antenas y el comportamiento del protocolo aéreo en una sola unidad.
  • Todo ROSpec en ejecución compite por la misma radio, así que dos ROSpecs en un lector suelen significar que uno está mal.
  • Los disparadores de observación deciden cuándo se reporta una etiqueta: de inmediato, tras N lecturas o cuando deja de verse.
  • Mantén un ROSpec por comportamiento de negocio, nómbralo en el campo de descripción y trata ese nombre como parte de tu contrato de configuración.

Ajustes de protocolo aéreo: los campos que cambian el comportamiento

El comando de inventario C1G2 es donde realmente se decide el comportamiento del lector.

  • La potencia de transmisión y el canal o tabla de saltos van primero; la potencia está limitada por regulación, no es una perilla de ajuste.
  • El ajuste de sensibilidad del receptor intercambia una ventana de escucha más amplia por ruido, y los valores por defecto rara vez son óptimos en un pasillo denso.
  • La elección de sesión de singulación determina si las etiquetas se reportan rápido o se mantienen calladas; la sesión dos conviene a mercancía en movimiento.
  • La estimación de población de etiquetas ayuda al lector a elegir valores Q; una estimación equivocada cuesta tiempo, no corrección.
  • Los filtros de etiqueta reducen la población antes de la singulación y son la mejora de rendimiento más barata disponible.

AccessSpec: leer y escribir memoria de etiqueta

Las operaciones de acceso se usan con cuentagotas, y cada uso tiene un perfil de fallo concreto.

  • Un AccessSpec apunta a un filtro, así que nunca debe ejecutarse sin uno salvo que quieras escribir en todas las etiquetas del alcance.
  • Leer un banco de memoria es el diagnóstico seguro; escribir el EPC o la memoria de usuario es la operación que daña datos.
  • Las escrituras deben verificarse con una lectura posterior, en la misma sesión, y no asumirse por un estado de éxito.
  • Las contraseñas de acceso deben tratarse como secretos; un bloqueo sin contraseña registrada es un error irreversible.
  • Una operación de acceso fallida devuelve un código de estado, y el código suele ser más útil que un reintento.

Gestión de errores: códigos de estado que merecen ramificación

Casi todos los clientes LLRP tratan cualquier no-éxito como un fallo genérico, lo que hace imposible el diagnóstico de campo.

  • Distingue errores de parámetro de errores de estado: los primeros significan que el mensaje estaba mal, los segundos que el lector estaba en el estado equivocado.
  • Un desajuste de capacidades debe gestionarse volviendo a una opción soportada, no abortando el despliegue.
  • Los timeouts repetidos suelen significar una sesión TCP caída más que un lector lento, así que revise el socket antes de reintentar.
  • Registre el identificador de mensaje junto al código de estado; sin él, una secuencia de varios mensajes no se puede depurar.
  • Trate también un éxito inesperado como un error: una respuesta correcta con carga vacía a menudo significa que el lector ignoró la petición.

Mantener el código LLRP portable entre fabricantes

La portabilidad es una decisión de diseño tomada al principio y muy cara de retrofit.

  • Use solo mensajes y parámetros estándar allí donde el estándar cubra su necesidad.
  • Detecte características mediante el mensaje de capacidades en lugar de asumir que un fabricante soporta una opción.
  • Aísle las extensiones del fabricante tras un adaptador delgado, para que el resto de la pasarela nunca las importe.
  • Pruebe la misma configuración en una segunda marca antes de fijar el diseño; las diferencias aparecen pronto y baratas.
  • Versione sus archivos de configuración, porque un ROSpec que funciona es un activo que debe sobrevivir al reemplazo de un lector.
Integración Odoo RFID — solución integral

Usamos cookies para mejorar su experiencia de navegación, analizar el tráfico del sitio y personalizar el contenido. Haga clic en “Aceptar todas” para aceptar todas las cookies, o elija “Solo necesarias”. Consulte nuestra Política de privacidad para más detalles.