概述
使用 Modbus RTU 透传
Modbus RTU 串口透传功能几乎是所有 DTU 产品的标配,我们在教程中也介绍了一些厂商的 DTU 接入示例。
ThingsEdge DTU 使用 Modbus 透传功能和其它 DTU 完全相同,这里列举一些常用方法。
使用 DTU 集成模式
ThingsCloud 对所有 DTU 的接入通常支持两种模式:
-
集成模式:也就是 DTU 以及它连接的所有传感器等设备,在 ThingsCloud 上体现为一台设备。这种方式适合 DTU 和子设备都比较少的情况。如果数量较多,不利于设备功能定义的复用性。
-
网关模式:将 DTU 和它的多个子设备,在 ThingsCloud 上对应独立的设备。这样便可以对子设备进行独立的功能定义,便于设备资产的组织和维护管理,非常清晰。
这一节我们先介绍集成模式。为了便于管理,我们用之前的方法新建一个设备类型,改个新的名称。
接线示例
在这个示例中,我们在 DTU 的 RS485 总线上连接了两个 Modbus 设备:
- 8进8出 IO 控制器,从机站号是 1,波特率 9600
- 温湿度传感器,从机站号是 2,波特率 9600
其中,在 IO 控制器的继电器端,我们连接了两个指示灯,在IO输入端,连接了两个行程开关。
添加 IO 控制器的属性定义
我们先在 DTU 的设备类型中,找到功能定义,通过添加标准功能,找到对应的设备模型,添加 8 个 IO 输入开关量属性,和 8 个继电器输出开关量属性。
创建好的属性定义如下:
配置 IO 控制器的 Modbus 寄存器
然后在 DTU 的设备类型中,找到Modbus 配置,将刚创建的属性加入 IO 寄存器。如下图:
然后配置正确的从机地址和寄存器地址,如下图:
最后,开启属性智能转换,并绑定自定义数据流。如下图:
下发 Modbus 开关量控制
现在我们回到设备的概览面板,可以直接下发继电器输出。
在设备的调试功能中,可以看到属性下发被自动转成了 Modbus 指令,通过自定义数据流下发到了 DTU,再被透传到 IO 控制器,然后接收到了 DTU 回传的 Modbus 回复消息。如下图:
到目前为止,我们已经可以通过 ThingsCloud 控制台远程控制继电器开关。
通过 Modbus 任务查询继电器状态
有时候继电器断电会归位,云平台可能不知道继电器的最新状态,所以我们来建立一个继电器状态查询的 Modbus 任务。如下图:
这里我们将任务的目标类型选为设备类型,而不是设备,这使得任务对该设备类型下的所有设备生效,未来有更多设备添加后不需要再单独创建同样的任务。
推送方式选择 MQTT,自定义数据流填写 stream
,这是 DTU 内置连接 ThingsCloud 的默认自定义数据流标识符。
选择 Modbus RTU 下发 任务,用 01
功能码查询继电器状态,这里需要略懂 Modbus 指令,通常可以从设备手册中找到 Modbus 协议。
任务创建成功后,我们可以手动运行一次。如下图:
可以在设备调试中看到 3 条消息,分别是:
- 下发的 Modbus 查询指令
- 收到 Modbus 回复指令
- 解析后转换成属性上报消息
配置温湿度传感器 Modbus 寄存器
接下来我们再配置另一个连接到 DTU 的温湿度传感器,同样先添加功能定义,添加温度和湿度两个属性,如下图:
添加新的属性后,如下图:
接着在 Modbus 配置中,设置温度、湿度属性对应的传感器寄存器,如下图:
不同厂家的温湿度传感器,支持的 Modbus 寄存器略有不同,请您参考实际产品手册。
通过 Modbus 任务查询温湿度
普通的温湿度传感器,只有上报数据的功能,我们来建立一个 Modbus 任务,定时查询温湿度。如下图:
这里我们用到任务的定时功能,我们选 间隔时间重复,如下图:
保存任务后,任务自动启动运行,等待我们设置的间隔时间后,任务首次运行,温湿度数据成功获得。
其它透传 DTU 的支持
ThingsCloud 的 Modbus RTU 透传方式适用于所有厂商支持串口透传的 DTU 产品,可参考这些示例:
- 有人 4G DTU TCP 接入
- 塔石 4G DTU MQTT 接入
最后
以上就是拼搏宝马为你收集整理的DTU 使用 Modbus 透传接入 ThingsCloud 云平台 —— 读取传感器数据和控制继电器的全部内容,希望文章能够帮你解决DTU 使用 Modbus 透传接入 ThingsCloud 云平台 —— 读取传感器数据和控制继电器所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复