跳到主要内容

ZeroMQCollectClient

插件用途

ZeroMQ 订阅接收、主题过滤和变量映射采集驱动

选择入口

进入“开发配置 → 采集配置”,创建设备并在“采集插件”中选择“ZeroMQCollectClient”。

支持的通道和数据类型

通道类型配置前检查
插件内置连接连接参数在设备动态属性中配置,不使用公共 TCP、UDP 或串口通道参数。

可选数据类型: 对象(由协议节点或载荷决定)

插件参数

ZeroMQ 采集客户端通过 NetMQ Socket 直接连接或绑定,不使用普通 TCP、UDP 或串口通道字段。读写超时、失败重试和数据解析顺序等采集公共属性仍按采集配置配置。

连接配置

参数说明
连接地址默认:tcp://127.0.0.1:5555;填写:文本输入。设置建立连接时使用的连接地址。
Socket类型默认:0;填写:下拉选择。设置建立连接时使用的Socket类型。
绑定模式默认:否;填写:开关。控制“绑定模式”功能是否启用。

“Socket类型”选项为:Sub(订阅发布端)、Pull(接收 Push 端)和 Router(与 Dealer 配对并按身份回复)。默认是 Sub绑定模式=是 时本端 Bind,关闭时本端 Connect;同一 Endpoint 只能由一端 Bind。

消息配置

参数说明
订阅主题前缀填写:文本输入。设置消息发布或订阅使用的订阅主题前缀。

该前缀只在 Sub 模式连接建立时订阅;变量地址中的 Topic 会在变量重载后追加为实际订阅。PullRouter 不使用该字段。

容量限制

参数说明
高水位标记默认:1000;填写:数字输入。限制当前目标运行时允许使用的高水位标记。

高水位是 Socket 接收缓冲的上限,不是持久化队列;超过后 ZeroMQ 可能丢弃较早消息。默认检查清除时间为 60000 毫秒,超过该时间没有消息的变量会被标记为离线。

日志诊断

参数说明
详细日志默认:否;填写:开关。开启后记录更详细的连接、模板或收发日志,排障完成后可关闭以减少日志量。

缓存与可靠性

参数说明
检查清除时间默认:60000;填写:数字输入。设置缓存、重试或连接恢复使用的检查清除时间。

地址规则

  • 变量地址:${zmq_topic};${payload_item};${Condition}
  • 主题:device/data
  • 负载示例:
  • {
  • "Temperature": 25.6,
  • "Humidity": 60.5,
  • "Status": "Running"
  • }
  • 比如device/data;Temperature,结果是25.6
  • 比如device/data;Status;Condition名称(脚本判断Temperature大于20),结果是"Running"
  • payload_item 只支持以点号分隔的 JSON 属性路径,例如 data.temperature;属性名按大小写精确匹配,不存在时不会自动改写大小写。
  • 消息必须是两帧:第一帧 Topic,第二帧 UTF-8 JSON Payload。Router 还包含身份帧和空分隔帧,插件会自动发送空响应确认。

特殊方法

方法用途参数
SendDebugMessage发送 ZeroMQ 调试消息topic=消息主题,payload=消息正文

设备调试

进入“开发配置 → 采集配置”,选择当前设备后点击“更多功能”并打开“调试”。

专用调试页

协议调试页用于查看 ZeroMQ 订阅连接、主题和接收状态。

功能作用
发布调试消息使用当前 ZeroMQ 实例发送指定 Topic 和 Payload。
调试结果显示本次发布成功、失败及错误信息。
订阅诊断结合设备状态和日志核对连接地址、Socket 类型、绑定模式和主题前缀。

ZeroMQCollectClient 协议调试

调试要点

使用 SendDebugMessage 或协议页发送测试 Topic/Payload,核对订阅、主题过滤和变量映射结果。

验证重点

  1. 确认发布端与采集端的 Endpoint、Socket 类型和 Bind/Connect 角色匹配,同一地址只由一端 Bind。
  2. 为测试变量配置 device/data;Temperature,并确保订阅主题前缀允许该 Topic。
  3. 发送 Topic device/data、Payload {"Temperature":25.6},确认变量更新为 25.6
  4. 再使用条件脚本变量发送一条不满足条件的消息,确认变量不会被错误更新。
  5. 正式接入后观察高水位标记和详细日志,确认接收端没有持续积压或丢弃消息。

排障差异

  • 发布或接收失败:检查连接地址、Socket 类型、绑定模式和防火墙;确认只有一端 Bind。
  • 设备在线但变量不更新:核对 Topic、订阅主题前缀、Payload 字段名和条件脚本。
  • 字段值为空:确认 payload_item 与 JSON 属性大小写一致,并检查 Payload 是有效 JSON。
  • 消息延迟或丢失:检查发送速度、接收处理速度和高水位标记,必要时降低测试频率。
  • 调试消息发布成功但外部订阅端收不到:核对双方 Socket 模式是否兼容以及订阅前缀是否匹配。
  • ZeroMQ 显示在线但对端未收到:Connect 模式的在线状态只表示 Socket 已配置,不能证明对端可达;请在两端消息日志中同时确认。

相关操作

  • 采集配置:查看通道、设备和公共变量配置。
  • 插件索引:查找其它采集或数据转发插件。