您已经在使用数据传输终端 (DTU) 作为网关,将支持 Modbus 协议的各种传感器和执行器接入到 ThingsCloud 平台。通过利用平台的任务功能,可以定时下发 Modbus 查询或控制指令,并使用 Modbus 智能属性解析,快捷获得返回的 Modbus 数据,从而迅速建立起实用的物联网应用。这种方式的操作简单高效,极大地方便了设备管理与数据采集。
然而,当一个 DTU 连接多个 Modbus 设备时,这种集中化处理的方式可能存在一定的局限性。所有连接到该 DTU 下的 Modbus 设备的数据都会汇集到云平台上 DTU 设备的属性中。
例如:一个 DTU 的 RS485 端口挂接了 5 个 Modbus 温湿度传感器作为从机,这 5 组温湿度数据将全部出现在 DTU 设备的属性中(如下图)。这种方式虽然整合了数据,但在某些应用场景下并不理想,尤其是当我们希望在云平台上将每个传感器视为一个独立设备进行管理和数据查看时。
如果希望在 ThingsCloud 平台上将每个子设备视为独立设备(如下图),可以通过使用平台提供的 Modbus 云网关功能来实现。与网关硬件层面实现的网关接入协议不同,Modbus 云网关功能适用于 DTU 这类通用的透传网关,不需要 DTU 进行专门的适配开发。
这个视频我们来分享 Modbus 设备通过 DTU 快速接入
ThingsCloud 云平台
open in new window
后,所有从机设备的数据都进入 DTU 设备中。如何将从机设备变成云平台上的独立设备呢?利用 ThingsCloud 的 Modbus 云网关功能,轻松搞定。
我们用了两个最常见的 Modbus/RS485 设备,一个温湿度传感器,一个 IO 控制器。
DTU 我们以塔石的 WiFi DTU 为例,其它品牌和款型的 DTU 均可以接入 ThingsCloud,只是配置上位机软件略有不同,但是配置方法都基本相同。
为 DTU 设备绑定一个接入类型是
网关
的设备类型,网关接入协议选择
Modbus RTU 云网关
。这样,DTU 设备就会被平台视为一个支持子设备管理的网关设备,允许通过 Modbus 协议接入和管理多个从机设备。如下图:
为每一个物理连接在 DTU 下的传感器或执行器,单独创建对应的设备,并将其添加到 DTU 的子设备列表中。
这里进入网关设备的子设备管理界面,在
子设备
列表中,添加为传感器单独创建的设备。如下图:
然后为子设备设置其对应的 Modbus 从机地址,使其与物理设备匹配。如下图:
通过以上的设置,ThingsCloud 将 DTU 对应的设备视为网关,将自动把 Modbus 子设备的上报数据根据 Modbus 地址转发给子设备,并将下发给子设备的数据,同样先下发给 DTU 设备。
接下来,便可以直接在子设备下设置任务,配置方法和直连 DTU 设备的 Modbus 任务大致相同,唯一不同在于,需要开启
使用子设备地址
。如下图:
配置方法和直连 DTU 的 Modbus 智能解析配置方法完全相同,请参考
Modbus 寄存器设置
。
请注意,您需要为子设备所属的设备类型配置 Modbus 寄存器,而不是为网关设备进行配置。因此,子设备所属设备类型的接入协议,应选择 Modbus RTU,从而开启 Modbus 寄存器配置入口。
在子设备所属的设备类型下,创建一个自定义数据上报的消息规则,使用 Modbus RTU 解析操作,如下图:
这里注意要启用
使用子设备地址
,云平台将自动使用前边给子设备设置过的 Modbus 地址。
搞定,从以下子设备的消息日志中,可以看到整个过程。
由于平台对子设备的下发数据会直接转到网关中,因此在日志中看不到对子设备的 Modbus 报文下发,而 Modbus 回复报文被云网关自动转发回子设备,以及自动解析出属性上报数据,如下图:
有了 ThingsCloud Modbus 云网关的支持,任何透传式 DTU 都可以成为一个名副其实的网关,在平台侧真正实现和子设备的分离管理。
更加方便的是,当我们需要给 DTU 增加一个新的传感器子设备时,完全不需要对 DTU 再进行任何配置,只要添加子设备,设置好 Modbus 从机地址,便可让子设备快速上云。