通过网关反控设备

物解析的网关包括backControlTopic字段,用来反控网关行为,即物解析网关不仅可以从Modbus采集数据上传到云端,还可以从云端接受反控指令,写入Modbus从站。

注意:网关需要下载新版(2017年7月24日之后),下载地址。

首先,新建网关,点击查看密钥,此时可以看到backControlTopic的字段,配置到最新的网关,网关订阅这个topic后,用户就可以向这个topic发送反控指令。网关订阅到反馈指令,就会去执行,即向指定的Modbus从站写指定的数据。

当用户需要反控的时候,就向backControlTopic发送一条反控指令,反控指令为JSON格式,示例如下:

{
    "request1": {
        "slaveid": 1,
        "address": 1,
        "data": "0101010100000000"
    },
    "request2": {
        "slaveid": 2,
        "address": 40001,
        "data": "00ff1234"
    }
}

requestx:x为数字编号,1,2,3…n,表示一个消息包含的多个指令。
slaveid:为需要反控的modbus从站编号。
address:为需要写的寄存器的起始地址。
data:为要写入modbus从站的数据。

从address开始,依次往后写入。例如示例中的request1,会向地址1-8等8个离散值(coins)写数据,写入的值分别为1,1,1,1,0,0,0,0; 示例中的request2,会写2个寄存器,40001和40002,写入的值分别为00ff, 1234。

注意:反控指令不需要指定功能码(function code),这里的address是绝对地址,也就是对应解析项目里面解释设置(点表)的地址,而不是轮询设置里面的起始地址。需要反控的Modbus从站,必须是正在被采集的从站,也就是说,轮询设置里面有针对该从站的轮询。例如:如果网关采集的slaveid为1,2,即可以控制slaveid为1,2的从站,反控slaveid=3的从站,这是不被允许的。

如果你不希望网关能反控你的Modbus从站,你可以在网关配置文件(gwconfig.txt)里面,将backControlTopic删除。关于配置文件gwconfig.txt的详细介绍,请参看安装IoT Modbus SDK