跳至主要內容

自定义下发类任务

约 667 字大约 2 分钟

自定义下发类任务

自定义下发类任务用来构造自定义数据,通过自定义数据流下发给设备。

提示

关于 自定义数据流 的详细介绍,请浏览 自定义数据流

自定义下发推送方式

当使用自定义下发任务时,您需要指定下发推送方式:

  • MQTT:用于设备通过 MQTT 接入自定义数据流。
  • TCP:用于设备通过 TCP 接入自定义数据流。

如下图:

静态自定义下发

直接填写要下发的自定义数据,支持自定义数据流的几种数据格式。

例如,下发一个自定义的 JSON 格式消息:

例如,下发一个 Modbus RTU 查询消息:

云函数自定义下发

同样也支持通过云函数来实时构造要下发的自定义数据。如下图:

构造二进制数据

  • typehex
  • msg: string 类型,用十六进制字符串形式表示二进制消息。

例如:

module.exports = function () {

    var data = {
        type: "hex",
        msg: "010300ff8312"
    }
    
    return data;
}

构造 JSON 数据

  • typejson
  • msg: object 类型,表示 JSON 消息。

例如:

module.exports = function () {

    var data = {
        type: "json",
        msg: {
            "data": {
                "code": "2021",
                "params": {
                    "brightness": 10000
                }
            }
        }
    }
    
    return data;
}

构造 Plaintext 文本消息

  • typetext
  • msg: string 类型,表示消息文本。

例如:

module.exports = function () {

    var data = {
        type: "text",
        msg: "control,relay1:0,relay2:1"
    }
    
    return data;
}

Modbus RTU 下发

针对 Modbus RTU 协议快速生成下发消息,支持功能码包括:

  • 0x01:读取线圈状态
  • 0x02:读取输入状态
  • 0x03:读取保持寄存器
  • 0x04:读取输入寄存器
  • 0x05:写入单个线圈寄存器
  • 0x06:写入单个保持寄存器
  • 0x10:写入多个保持寄存器

使用非常简单,可以快速生成任务,向设备(或通过 DTU 透传)下发 Modbus 查询指令,同时利用规则引擎的 Modbus 解析操作,将从机设备上报的 Modbus 消息直接解析为设备属性。

写入多个保持寄存器

对于 0x10 功能码,可以设置将多个静态数据写入指定的寄存器地址,例如:

也可以设置将设备的指定属性值,作为数据写入指定的寄存器地址,这样便可以实现和设备属性的同步,例如:

有了这样的特性,我们便可以通过 ThingsCloud 提供的通用应用软件及交互组件,快捷的更新设备属性值,然后一键下发 Modbus 指令给设备。