2.5 楼控MQTT推送

前置

在组态项目中的项目浏览器里创建变量,系统会根据调试工程师创建的变量文件夹命名生成设备标识。

说明:建议使用一级文件夹,不要创建多级文件夹嵌套

验证

可下载安装mqtt.fx调试工具,安装后填写如下信息:

  1. 地址
  2. 端口
  3. 用户名
  4. 密码

mqtt相关主题说明

对接方软件简称:IBMS;我方为:HAIScada

IBMS主动召唤全数据

一般在IBMS系统上线时主动获取一次,不要频繁周期性获取。

  • 发布相关参数
    • 主题:IBMS/data/call/HAIScada
    • Payload:
    • Qos:1
    • Retain:false

HAIScada平台收到请求后,按照设备分别推送全数据,每条消息体内仅包含设备标识所示设备内的实时点值,消息如下:

  • 示例接收到的相关参数
    • 主题:IBMS/data/HAIScada/设备标识
    • Payload:{ "datas" : { "AI1" : 22.5, "AI2" : 100, "BI1" : false, "BI2" : false }, "time" : "2025-03-10 17:19:59" }
    • Qos:1
    • Retain:false

HAIScada平台主动推送各设备变化数据

跟全召唤的应答类似,只是HAIScada平台检测到设备有数据变化时,只推送变化数据。

  • IBMS订阅相关参数
    • 主题:IBMS/data/HAIScada/设备标识
    • Payload:{ "datas" : { "AI1" : 22.5, "AI2" : 100, "BI1" : false, "BI2" : false }, "time" : "2025-03-10 17:19:59" }
    • Qos:1
    • Retain:false

IBMS发送控制指令(下行)

IBMS下发指令到HAIScada系统执行。HAIScada平台收到指令后对设备进行相应的操控,不必应答,待设备当前值变动后,主动推送变化值给IBMS系统即可。

  • 主题:IBMS/write/HAIScada/设备标识
    • Payload:{ "time": "当前时间(2025-3-10 17:53:50)", "sno": "序列号(int型)", "varlist": { "AV1": 100, "BV1": 1 } }
    • Qos:1
    • Retain:false

在线离线状态

HAIScada系统主动周期推送该系统下所有设备状态信息,以便IBMS系统确认HAIScada系统各设备在线离线状态。为减少通讯报文数,HAIScada系统统一周期上报该子系统下所有设备的实时状态。

  • 主题:IBMS/heart/HAIScada
    • Payload:{ "heart" : { "HD16_100" : 1, "HD16_101" : 1, "HD16_102" : 0 }, "time" : "2025-03-10 17:19:00" }
    • Qos:1
    • Retain:false

1在线,0离线