硬件连接
- 将Modbus POE ETH Relay通过网线连接到局域网,通过电源端口供电或者通过POE供电。

注意:上图是使用PoE网口供电。如果是使用的普通网线,须外接电源适配器供电,可外接7~36V范围的电源供电。
软件准备
开始通信

- 点击设备管理->产品->创建产品,输入产品名称,示例名称为waveshare,所属品类选择自定义品类。其他默认即可。

- 创建完成后点击下面的查看产品详情进入产品页面,选择Topic类列表进去话题页面添加自定义话题。

- 选择Topic类列表->自定义Topic->定义Topic类,创建一个send发布话题发送数据。


- 选择设备管理->设备->添加设备。添加一个设备名为Relay的设备,即继电器模块。

- 由于方便测试再添加一个设备名为mqttx的设备,阿里云网页上只能发送文本数据不能发送二进制数据,故使用mqttx软件方便调试。

- 添加完成可以在设备中查看到mqttx和relay两个设备,点查看进入Relay页面。

- 选择设备信息->MQTT连接参数 查看,可以看到MQTT连接参数。

- 打开Vircom->设备管理->鼠标左键双击对应的设备->固件与配置->MQTT配置,进入配置页面

- 根据Relay设备MQTT连接信息配置连接参数。配置完成后选择保存MQTT设置,再点击下载。


- 注意:可以通过ping mqttHostUrl获得阿里云IP地址。

- 设置目标IP和目标端口,点击修改设置保存。注意:本地端口如果为0则需要修改一个非零端口,否则不能连接。

- 连接成功后可以看到Relay设备从未激活转为在线状态。




- 输入发送话题,选择hex发送和hex显示,发送数据。

- 选择监控运维->日志服务->云端运行日志可以查到云端接收到的信息,选择hex显示。

- 至此,Relay设备和mqttx设备均已连接云平台,但是还不可以通过mqttx软件控制继电器,最后还需要添加消息转发。
- 选择消息转发->云产品流转->数据源->创建数据源,数据源名称为mqttx-send.

- 转到编辑页面,添加Topic,选择自定义,waveshare产品,mqttx设备,user/send话题。

- 选择消息转发->云产品流转->数据源->创建数据源再添加一个数据源,数据源名称为relay-send.

- 转到编辑页面,添加Topic,选择自定义,waveshare产品,relay设备,user/send话题。

- 选择消息转发->云产品流转->数据目的->创建数据目的,数据目的名称为mqttx-receive.

- 选择消息转发->云产品流转->数据源->创建数据源再添加一个数据目的,数据目的名称为relay-receive.

- 选择消息转发->云产品流转->解析器->创建解析器,解析器名称为mqttx-to-relay.

- 打开mqttx-to-relay编辑页面->数据源->关联数据源,数据源选择mqttx-send

- 数据目的->关联数数据目的->数据目的选择relay-receive

- 解析器脚本,添加如下代码并发布,其中1005为relay-receive数据目的ID,/ipl390TLRtl/Relay/user/receive为继电器接收话题,需要更加实际情况修改。
//通过payload函数,获取设备上报的消息内容,将payload数据转换成二进制变量进行透传
var data = payload("binary");
//转发数据到继电器
writeIotTopic(1005, "/ipl390TLRtl/Relay/user/receive", data);

- 选择消息转发->云产品流转->解析器->创建解析器再创建一个解析器,解析器名称为relay-to-mqttx.

- 打开mqttx-to-relay编辑页面->数据源->关联数据源,数据源选择relay-send

- 数据目的->关联数数据目的->数据目的选择mqttx-receive

- 解析器脚本,添加如下代码并发布,其中1004为mqttx-receive数据目的ID,/ipl390TLRtl/mqttx/user/receive为mqttx接收话题,需要更加实际情况修改。
//通过payload函数,获取设备上报的消息内容,将payload数据转换成二进制变量进行透传
var data = payload("binary");
//转发数据到继电器
writeIotTopic(1004, "/ipl390TLRtl/mqttx/user/receive", data);

- 最后选择启动解析器实现数据转发。消息转发已配置完成并启用

- 此时通过mqttx即可以发送指令控制继电器了。按照下图发送继电器全部翻转指令。正常情况下继电器将会全部翻转,并且返回指令数据。

- 至此操作完全。可以尝试发送更多modbus指令测试。其中数据流为如下所示。
- mqttx发送指令->阿里云接收数据并转发给relay->relay接收到数据执行动作并返回数据给阿里云->阿里云接收数据并转发给mqttx->mqttx接收到返回数据。