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 会在变量重载后追加为实际订阅。Pull 和 Router 不使用该字段。
容量限制
| 参数 | 说明 |
|---|---|
| 高水位标记 | 默认: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 类型、绑定模式和主题前缀。 |

调试要点
使用 SendDebugMessage 或协议页发送测试 Topic/Payload,核对订阅、主题过滤和变量映射结果。
验证重点
- 确认发布端与采集端的 Endpoint、Socket 类型和 Bind/Connect 角色匹配,同一地址只由一端 Bind。
- 为测试变量配置
device/data;Temperature,并确保订阅主题前缀允许该 Topic。 - 发送 Topic
device/data、Payload{"Temperature":25.6},确认变量更新为25.6。 - 再使用条件脚本变量发送一条不满足条件的消息,确认变量不会被错误更新。
- 正式接入后观察高水位标记和详细日志,确认接收端没有持续积压或丢弃消息。
排障差异
- 发布或接收失败:检查连接地址、Socket 类型、绑定模式和防火墙;确认只有一端 Bind。
- 设备在线但变量不更新:核对 Topic、订阅主题前缀、Payload 字段名和条件脚本。
- 字段值为空:确认
payload_item与 JSON 属性大小写一致,并检查 Payload 是有效 JSON。 - 消息延迟或丢失:检查发送速度、接收处理速度和高水位标记,必要时降低测试频率。
- 调试消息发布成功但外部订阅端收不到:核对双方 Socket 模式是否兼容以及订阅前缀是否匹配。
- ZeroMQ 显示在线但对端未收到:Connect 模式的在线状态只表示 Socket 已配置,不能证明对端可达;请在两端消息日志中同时确认。