LLRP 实战:如何配置读写器而不制造新的数据孤岛
LLRP 实战:如何配置读写器而不制造新的数据孤岛
技术指南

LLRP 实战:如何配置读写器而不制造新的数据孤岛

LLRP 只解决「多厂商读写器用同一套协议」这一件事。配置、过滤、去重与断点续传仍属中间件职责,本文给出可落地的分层结构。

8 min· By SpidersRFID Editorial Team

LLRP(Low Level Reader Protocol)之所以存在,是因为此前的每台固定式 UHF 读写器都说自己的方言。在它之前,集成三家厂商意味着三套 SDK、三套连接语义、三种表达"用这个过滤条件读这四路天线"的方式。LLRP 用一个 TCP 上的二进制协议取代了这些。

LLRP 究竟标准化了什么

LLRP 定义了客户端发给读写器的消息,以及读写器回传的报告:能力发现、读写器配置、盘点与访问规格、标签访问命令、事件通知。2007 年通过的 1.0.1 版仍是部署最广的版本;2.0 版增加了 Gen2 v2 命令。

它并不标准化你的业务逻辑、数据模型或天线命名。这些仍属于你自己,而把"协议"误当成"集成",正是大多数项目走偏的原因。

  • 能力发现:天线数量、功率范围、支持的空中协议。
  • 配置:射频模式、发射功率、天线权重、GPI/GPO 行为。
  • 盘点:ROSpec 与 AISpec 定义哪几路天线工作、上报什么。
  • 访问:对选定标签集执行读、写、锁定与灭活。

哪些配置应该放在中间件而不是固件里

任何在两个站点之间会不同的设置,都必须放在中间件里,并与集成代码一起版本化。读写器侧的默认值是不可见的、未版本化的,负责的工程师离职后就再也无法审计。

  • 盘点 session、target 与标签数量估计。
  • 每路天线的发射功率,以及天线到区域的映射。
  • 过滤条件(EPC 前缀、TID 掩码),决定读写器被允许上报什么。
  • 读写器模式:最大吞吐、密集读取或混合。
  • 传送带或门磁的 GPI 触发与防抖窗口。

ROSpec、AISpec 与 AccessSpec 该怎么建模?

ROSpec 是容器:它把天线、一份盘点规格、可选的访问规格和一份上报规格组合在一起,并在 disabled、inactive、active 三种状态间迁移。AISpec 说明哪几路天线用哪套盘点参数;AccessSpec 说明对符合过滤条件的标签读什么、写什么。

按物理区域建 ROSpec,而不是按天线建。这样一个月台门就是一个可以启停、可以监控的单一对象,天线映射则退化为配置细节,而不是代码改动。

  • 每个区域一个 ROSpec:月台门、产线、库房。
  • 通道上报间隔 200–1,000 毫秒;只有低流量读取才用立即上报。
  • AccessSpec 只用于写入;只读区域不要带访问命令。

LLRP 项目通常在哪里失败

协议本身很少是问题,失败都发生在运维层面。

  • 连接处理:读写器会重启、断 TCP、并集中重连;没有退避的客户端会同时压垮读写器和网络。
  • 重复读取:同一标签两秒内被看到十二次,是一个事件,不是十二笔库存变动。
  • 缓冲区溢出:通道处 800 个标签的突发流量会冲垮同步处理的客户端。
  • 固件差异:可选字段与能力在不同型号、不同版本间不一致,能力发现结果必须当作数据而不是假设。
  • 职责不分离:埋在读写器配置里的业务规则无法测试。

事件应该如何进入 Odoo?

干净的路径是:读写器事件 → 归一化 → 去重 → 业务事件 → ERP 调用。每一步只承担一个职责,并可独立记录日志。

  • 读写器事件:EPC、天线、时间戳、读取次数、RSSI。
  • 归一化:EPC 映射为产品,天线映射为库位,读写器映射为作业类型。
  • 去重:按 EPC 与区域设置 3–10 秒的防抖窗口。
  • 业务事件:入库、调拨、盘点或调整——每次物理移动只产生一个。
  • Odoo 调用:更新 stock.quant、创建 stock.move 或库存调整,并用 EPC、区域与时间窗构成幂等键。

监控与故障切换应该怎么做?

把读写器当网络设备对待。每 30 秒轮询心跳与 GPI 状态,对读取速率的骤降告警,而不是对单条错误告警;当 ERP 或网络不可用时,在本地缓存事件。

在"漏读一次月台门、三周后变成库存差异"的仓库里,断点续传不是可选项。缓存的容量至少按峰值读取速率覆盖四小时,并以原始时间戳重放,让 ERP 看到正确的顺序。

结论

LLRP 给你的只是"多厂商读写器共用一套协议",仅此而已。把配置、过滤与缓存放进中间件,按区域建 ROSpec,在触碰 ERP 之前完成去重,并像对待网络设备那样监控读写器。

Odoo RFID 集成一站式方案

我们使用 Cookie 来提升您的浏览体验、分析网站流量并个性化内容。点击“接受全部”即表示您同意我们使用所有 Cookie,您也可以选择“仅必要 Cookie”。详情请参阅我们的 隐私政策 以了解更多详情。