文档首页 > > 开发指南> 设备侧开发> 使用Modbus协议接入(联通用户专用)

使用Modbus协议接入(联通用户专用)

分享
更新时间:2020/07/30 GMT+08:00

非联通用户请查看设备接入服务

概述

Modbus协议目前已经成为工业领域通信协议的业界标准,是工业电子设备之间最常用的连接方式。使用Modbus协议的方式包括直连和非直连两种方式,组网方案如下图所示。

接入方式

方案说明

适用场景

直连接入

Modbus设备直接与边缘节点进行连接,通过TCP协议通信。边缘节点作为客户端,Modbus设备作为服务端进行连接。该方式中,在传输通道绑定设备时,边缘节点与Modbus设备之间的通道只能绑定一个设备。

Modbus设备具备TCP通信能力。

说明:

Modbus设备具备TCP能力,但如果IP资源比较受限,无法为每一个Modbus设备分配一个IP地址,也可采用非直连方式进行连接组网。

非直连接入

Modbus设备通过RTU串口与网关进行连接,然后边缘节点通过TCP协议与网关进行通信。网关作为Master节点,Modbus设备作为Slave节点进行连接。该方式中,在传输通道(边缘节点与网关之间的TCP传输通道)绑定设备时,需要将该网关下的Modbus设备绑定到指定的通道,并且,在同一个传输通道中,通过“从站号”区分不同的Modbus设备。

Modbus设备不具备TCP通信能力,只能通过RTU(串口)方式进行通信。

在数据采集时,边缘节点可根据指定的数据采集间隔时间,主动向Modbus设备或通过网关向Modbus设备进行数据的采集,数据格式为二进制格式。数据采集完成后,IoT边缘服务将采集的数据规整(Json格式)后,通过MQTT的方式将数据上报到设备管理。

接入流程

业务场景

操作步骤

说明

设备准备

准备Modbus网关

购买支持Modbus协议的网关(Modbus设备与网关支持通过RTU通信,网关与边缘节点采用TCP通信)

准备Modbus设备

购买支持Modbus协议的传感器设备

物联网平台侧操作

开发Modbus设备产品模型

在产品中心开发Modbus设备的产品模型

添加Modbus设备

在边缘节点下,添加Modbus设备

创建Modbus通道和绑定设备

将Modbus设备绑定到指定的TCP传输通道

开发Modbus设备产品模型

产品模型(也称Profile)是用于描述Modbus设备具备的能力,通过定义产品模型,在物联网平台构建一款设备的抽象在线开发Profile型,使平台理解该款Modbus设备支持的服务、属性、命令等信息,如温度、电量等。Modbus设备的产品模型定义分为两部分:包含Modbus设备的能力(图中红色框内容)和定义Modbus点位表(图中蓝色框内容),如图所示。属性和命令的定义请根据在线开发Profile,在定义属性和命令的基础上,再定义Modbus点位表,下面将详细介绍点位表的定义方法。

  1. 登录物联网平台控制台,点击右上角进入“开发中心”。
  2. 定义Modbus设备的属性和Modbus点位表,属性的定义请参考在线开发Profile文件,然后定义定位表(上图中的新增扩展描述)字段,原则如下表所示。

    参数名称

    参数说明

    Modbus读功能码

    读功能码分为“比特访问(Bit Access)”和“16比特访问(16 Bit Access)”,功能码均为十进制。

    比特访问功能码:

    • 01:读线圈(Read Coils)
    • 02:读输入离散量(Read Discrete Inputs)

    16比特访问功能码:

    • 03:读多个寄存器(Read Holding Registers)
    • 04:读单个寄存器(Read Input Register)

    Modbus写功能码

    写功能码分为“比特访问(Bit Access)”和“16比特访问(16 Bit Access)”,功能码均为十进制。

    说明:

    定义属性时,无需填写该字段。定义命令时,需要填写。

    比特访问功能码:

    • 05:写单个线圈(Write Single Coil)
    • 15:写多个线圈(Write Multiple Coils)

    16比特访问功能码:

    • 06:写单个寄存器(Write Single Register)
    • 16:写多个寄存器(Write Multiple Registers)

    寄存器起始地址

    寄存器起始地址,占16比特,例如:00 01

    寄存器数量

    属性对应的数据所在的寄存器个数,占16比特,例如:00 02

    交换寄存器内高低字节

    是否对寄存器内的数据进行高低位交换,默认:True。例如寄存器中存储的属性数据为:10011011,则IoT边缘节点获取的数据经过高低位交互后为:01100111。

    交互寄存器顺序

    是否对寄存器的位置进行交换,默认:True。例如寄存器的起始地址为0001,寄存器数量为0002,则将0002地址寄存器与0001地址寄存器进行交换。

    缩放因子

    对寄存器内的数据进行乘以缩放因子,得到所需的数据,例如获取的温度数据为365,缩放因子为0.1,则得到实际的温度数据为365*0.1=36.5

  3. 定义Modbus设备的属性和Modbus点位表,命令的定义请参考在线开发Profile文件,然后定义定位表(上图中的新增扩展描述)字段,点位表的填写原则如2中的表格所示。
  4. 定义完属性和命令后,请将Profile文件进行导入,然后根据添加Modbus设备操作,在设备管理服务中导入开发的Modbus设备产品模型。

添加Modbus设备

前提条件

操作步骤:

部署完IoT边缘应用后,在设备管理服务控制台的设备列表中,会自动生成边缘节点设备,现在需要在边缘节点设备下,添加Modbus设备。

  1. 登录物联网平台控制台,点击右上角“进入设备管理服务”。
  2. 单击左下角,在“产品模型”界面中,单击右上角的“新增产品模型”,选择“本地导入”,将Modbus设备的产品模型导入到设备管理中。
  3. 选择IoT边缘节点所属的行业应用,并在“设备 > 所有设备”中,找到边缘节点设备。
  4. 单击边缘节点设备,进入设备详情界面,在“子设备”页签中,单击“添加”按钮,创建Modbus设备。
  5. 在弹出的对话框中,选择上传的Modbus设备的产品模型,填写设备名称后,单击“确定”,完成Modbus设备的添加。添加完成后,Modbus设备的状态为“离线”。

    Modbus设备的状态由IoT边缘节点进行上报,如果IoT边缘节点不能正常上报子设备的状态信息到设备管理服务,则展示的子设备状态不会刷新。

    • 在线:设备管理服务采集到Modbus设备上报的数据后,状态就会刷新为在线。
    • 离线:如果IoT边缘节点连续5个数据采集间隔无法获取Modbus设备的数据,则IoT边缘节点上报Modbus设备的状态为离线,设备管理服务将设备的状态刷新为离线。

为Modbus设备绑定通道

根据概述中的Modbus接入组网方案可以知道,Modbus设备在接入IoT边缘节点时,需要将Modbus设备绑定到具体的通道中。如果Modbus设备与IoT边缘节点直连,则该通道只能绑定该设备;如果Modbus设备与IoT边缘节点通过网关连接,则需要创建IoT边缘节点与网关之间的传输通道,并将Modbus设备绑定到指定的通道中。

  1. 在边缘节点设备的详情界面中,选择“配置”页签。
  2. 单击右上角的“通道”按钮,在弹出的对话框中单击“添加”按钮,填写通道信息后单击“确定”,完成TCP传输通道的添加。

    参数名称

    参数说明

    通道名称

    定义IoT边缘节点与Modbus设备或网关之间的传输通道。如:Channel_TCP01

    传输模式

    固定选择“TCP”。

    IP地址

    IoT边缘节点与Modbus设备或网关建立TCP传输通道时,IoT边缘节点作为客户端,Modbus设备或网关作为服务端,因此该地址需要填写为Modbus设备(直连)或网关(Modbus设备非直连接入IoT边缘节点)的IP地址。如:192.168.10.11

    端口

    TCP服务端(Modbus设备或网关)的端口号。如:8000

    Modbus设备通过网关接入到IoT边缘节点时,如果添加设备前,已经创建了相应的通道,可以不用再执行该步骤,直接按照步骤3绑定Modbus设备即可。

  3. 在“配置”页签中,单击“绑定子设备”按钮,然后单击“添加”按钮。
  4. 在弹出的添加子设备配置页面中,选择需要绑定的Modbus设备,然后点击“下一步”。
  5. 在弹出的对话框中,填写相关信息后,单击“提交”,完成Modbus设备的通道绑定。配置完成后,设备管理服务会将配置信息下发给IoT边缘节点。

    参数名称

    参数说明

    关联通道

    选择需要将Modbus设备绑定的通道,如:Channel_TCP01

    从站号

    用于标识同一个通道下的不同Modbus设备。填写原则:需要与Modbus设备规划的从站号保持一致。

    数据采集间隔

    IoT边缘节点采集Modbus设备数据的时间间隔,单位为:秒,最小采集间隔可设置为1秒。请根据Modbus设备数据采集的实际周期进行灵活设置。

执行完以上操作后,Modbus设备上电接入到IoT边缘节点后,经过一个数据采集周期即可在设备管理服务的设备列表中查看采集的设备数据。

分享:

    相关文档

    相关产品

文档是否有解决您的问题?

提交成功!

非常感谢您的反馈,我们会继续努力做到更好!

反馈提交失败,请稍后再试!

*必选

请至少选择或填写一项反馈信息

字符长度不能超过200

提交反馈 取消

如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨

智能客服提问云社区提问