跳到主要内容

使用DTP的MQTT插件对接

使用步科 Kinco DToolsPro 软件中 MQTT 功能连接 M-IoT 平台

前提条件

  1. 用户至少具备一台步科F2 / G2 / GL2系列的触摸屏硬件,且触摸屏具有连接互联网的条件(以太网 / WiFi / 4G 网络均可)。本案例中选择的触摸屏型号为 G2070E;
  2. 用户电脑已安装Kinco DToolsPro V1.9.0及以上版本的组态软件,并能正常使用;
  3. 用户已拥有Kinco M-IoT平台管理权限的账号。

配置流程图

操作步骤

1. 创建物模型

  • 名称、机型:指的是设备相关信息
  • 模块数:这里是指一台设备的采集终端数量。一般是1

2. Dtools Pro 打开MQTT模块

目前使用标准 MQTT 功能连接 M-IoT 平台

3. 设置 MQTT 连接信息

  • 基础信息(云平台的 MQTT 连接信息)
    • MQTT客户端版本: MQTT V3.1.1
    • 连接地址: da.m-iot.net
    • 连接端口: 2883
    • 客户端 ID: dau:%2
    • 用户名: dau
    • 密码: 云平台个人信息的 MQTT 连接信息中查看
  • 消息格式
    • 发布
      • 报文格式: {"ts":%t,"dn":"%2",%C}
      • 数据格式: "%N":%V
    • 订阅
      • 报文格式: {%C}
      • 数据格式: "%N":%V

4. 设备注册

  • 主题属性
    • 主题: m3c/dau/evt/boot
    • 发送模式: 连接成功后触发
    • 内容格式: 自定义报文格式
      • 报文格式: {"ts":%t,"dn":"%2",%C,"mk":"model key","un":0}
        • mk: 自己创建的物模型 ID
      • 数据格式: "%N":%V
  • 参数列表
    • 设备名: 平台里面的设备名(内容为空时,平台不会注册本设备
      • 名称: mach_no
      • 数据类型: 字符串

5. 设备控制参数上报

  • 主题属性
    • 主题: m3c/dau/evt/mach
    • 发送模式: 数据改变时触发
    • 内容格式: 自定义报文格式
      • 报文格式: {"ts":%t,"dn":"%2",%C}
      • 数据格式: "%N":%V
  • 参数列表
    • 设备运行状态: 设备运行状态
      • 名称: mach_sts
      • 数据类型: 8 位无符号数
      • 必须存在,平台定义内容(0:待机;1:运行;2:故障;

6. 定时上报数据

目前还没有直接设置定时发送的模式(后续会增加相关发送模式),通过增加内存变量全局控制,来实现定时功能

  1. 新建一个内存变量,数据类型是。作为定时上报的触发条件

  2. 全局控制中,新增一个控制

  • 触发设置
    • 运行状态:运行时
    • 触发条件:始终触发
    • 执行方式:一直执行
    • 执行间隔:6000 * 100 毫秒 = 10 分钟(平台接收数据频率最高为 1 次/分钟)
  • 动作设置
    • 操作模式:位
    • 执行设置:取反
    • 变量:选择上面新建的内存变量
  • 主题属性
    • 主题: m3c/dau/evt/sync
    • 发送模式: 触发变量
      • 触发方式:关->开(自动恢复)
      • 触发变量:上面步骤新建的内存变量
    • 内容格式: 自定义报文格式
      • 报文格式: {"ts":%t,"dn":"%2",%C}
      • 数据格式: "%N":%V
  • 参数列表
    • 需要上报的所有参数

7. 故障上报

  • 主题属性
    • 主题: m3c/dau/evt/errs
    • 发送模式: 数据改变时触发
    • 内容格式: 自定义报文格式
      • 报文格式: {"ts":%t,"dn":"%2",%C}
      • 数据格式: "%N":%V
  • 参数列表
    • 故障参数的数据类型是

8. 设备参数下发

设备参数下发分为以下步骤:

  1. 设备订阅消息,平台发送响应消息,设备接收消息
  2. 设备接收消息后,向平台发送确认消息。
  3. 平台接收到消息,确认下发任务完成

8.1 设备订阅

  • MQTT主题订阅
  • 主题属性
    • 主题: m3c/das/cmd/conf/dau:%2
    • 内容格式: 自定义报文格式
      • 报文格式: {%C}
      • 数据格式: "%N":%V
  • 接收参数列表
    • 系统参数(固定参数,必须存在
      • 1.订阅接收后触发发送确认消息
        • 名称:req
        • 数据类型:位
        • 内存变量,默认值是0,平台下发的固定值1,接收数据后,0->1,触发发送确认消息,确认消息发送后,值重新设置为0
      • 2.平台下发任务号
        • 名称:rid
        • 数据类型:32 位无符号数
        • 发送确认消息时,本参数需要原值发送给平台
      • 3.平台下发任务标识
        • 名称:cmd
        • 数据类型:字符串
        • 发送确认消息时,本参数需要原值发送给平台
    • 自定义参数
      • 接收的参数,一定是来源于设备控制参数上报的参数

8.2 订阅接收成功的通知

  • MQTT主题发布
  • 主题属性
    • 主题: m3c/dau/ack/conf
    • 发送模式: 触发变量
      • 触发方式:关->开(自动恢复)
      • 触发变量:订阅接收的系统参数 req
    • 内容格式: 自定义报文格式
      • 报文格式: {"dn":"%2",%C}
      • 数据格式: "%N":%V
  • 参数列表(固定 2 个参数)
    • 订阅任务ID
      • 名称: rid
      • 数据类型:32 位无符号数
      • 订阅接收的系统参数 rid(需要把平台下发的内容发还给平台)
    • 订阅方法标识
      • 名称: cmd
      • 数据类型:字符串
      • 订阅接收的系统参数 cmd(需要把平台下发的内容发还给平台)

9. 模型导入到云平台

  • 将 MQTT 工程的配置导出到本地,默认文件名是MQTT.json
  • 打开平台的物模型管理画面,在模型的配置信息中,点击DTP导入,导入MQTT.json文件
  • 如果导入存在错误,请参考错误信息,修改工程的 MQTT 相关设置,然后重新导出再导入

10. 样例工程

DTP工具内部存在模板工程