设备管理 IoTDM(联通用户专用)-使用Modbus协议接入(联通用户专用):开发Modbus设备产品模型
开发Modbus设备产品模型
产品模型(也称Profile)是用于描述Modbus设备具备的能力,通过定义产品模型,在物联网平台构建一款设备的抽象在线开发Profile型,使平台理解该款Modbus设备支持的服务、属性、命令等信息,如温度、电量等。Modbus设备的产品模型定义分为两部分:包含Modbus设备的能力(图中红色框内容)和定义Modbus点位表(图中蓝色框内容),如图所示。属性和命令的定义请根据在线开发Profile,在定义属性和命令的基础上,再定义Modbus点位表,下面将详细介绍点位表的定义方法。
- 登录物联网平台控制台,点击右上角进入“开发中心”。
- 定义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
- 定义Modbus设备的属性和Modbus点位表,命令的定义请参考在线开发Profile文件,然后定义定位表(上图中的新增扩展描述)字段,点位表的填写原则如2中的表格所示。
- 定义完属性和命令后,请将Profile文件进行导入,然后根据添加Modbus设备操作,在设备管理服务中导入开发的Modbus设备产品模型。