快捷搜索:  汽车  科技

阿里云怎么接收上传的json(如何将Modbus转JSON上报至阿里云)

阿里云怎么接收上传的json(如何将Modbus转JSON上报至阿里云)·支持自定义JSON格式·支持Modbus Rtu转JSON,支持采集多个寄存器数据打包成JSON上传到服务器功能特点·支持连接自建服务器和阿里云IoT平台·支持TCP-Client/UDP-Master/TCP-ZSD/UDP-ZSD/MQTT/HTTP协议

测试设备为:众山科技提供的LTE-669边缘解析网关

某宝有售

前引

Modbus转JSON功能主要用于采集Modbus Rtu传感器数据,将采集的数据按配置的数据类型解析,并且打包成key-value的JSON格式上报到服务器,支持服务器下发JSON格式命令,省去了用户自己解析数据和转换格式的麻烦。支持连接自建服务器和阿里云IoT平台。

功能特点

·支持连接自建服务器和阿里云IoT平台

·支持TCP-Client/UDP-Master/TCP-ZSD/UDP-ZSD/MQTT/HTTP协议

·支持Modbus Rtu转JSON,支持采集多个寄存器数据打包成JSON上传到服务器

·支持自定义JSON格式

·支持JSON转Modbus,支持接收服务器JSON指令,转换为Modbus Rtu输出

·支持NTP时间

·支持本地、远程参数配置

·支持公式运算,可以将原始数据按照一定公式转换为需要的数据

·支持Lua代码,用户可以对采集的数据做判断,并且执行不同的操作

一、网关工作流程

JSON网关DTU通过配置Modbus相关参数往串口发送相应的Modbus指令,485设备收到指令以后会返回采集的数据,网关DTU通过数据类型进行解析,并将解析以后的数值以key-value的格式打包成JSON发送到服务器。

阿里云怎么接收上传的json(如何将Modbus转JSON上报至阿里云)(1)

流程如下:

(1)配置服务器IP地址/域名和端口号,如果是MQTT协议还需要配置ClinetID、username、password、发布主题和订阅主题等参数,配置轮询周期和上报周期、JSON数据格式。

(2)配置Modbus相关参数,Modbus子站地址、寄存器地址、数据类型、计算公式。

(3)如果是阿里云IoT平台,需要在服务器上创建设备;如果是自建服务器,需要在服务器端打开相应的上位机软件。

(4)服务器接收到打包的JSON数据。

二、参数说明

三、使用说明

3.1 阿里云IoT平台接入

3.1.1 进入阿里云IoT平台官网https://www.aliyun.com,登录账号,然后点击右上角的控制台。

3.1.2 进入控制台后选择产品与服务-物联网平台。

注:第一次使用阿里云IoT平台物联网服务器需要先开通服务才能使用。

3.1.3 选择产品-创建产品。

3.1.4 创建产品,产品名称可以自己定义,其他参数按图片上的配置即可。

阿里云怎么接收上传的json(如何将Modbus转JSON上报至阿里云)(2)

3.1.5 创建产品成功以后添加设备。

阿里云怎么接收上传的json(如何将Modbus转JSON上报至阿里云)(3)

3.1.6 添加好设备后会弹出设备鉴权证书,新建一个文本文档,点击一键复制,将信息复制到一个TXT文档里。

阿里云怎么接收上传的json(如何将Modbus转JSON上报至阿里云)(4)

3.1.7配置连接阿里云IoT平台的相关参数。

打开参数配置软件左下角的MQTT客户端,选择阿里云登录信息合成器,将信息复制到粘贴区,点击生成登录信息,将相关信息填入参数配置软件对应的位置。

打开“DTUCFG-V1.1.5”,将生成的阿里云IoT平台MQTT相关参数配置进对应的参数项。发布号配置“属性上报”内容

/sys/a1XSBRUBMXW/866262044304197/thing/event/property/post

订阅号配置“设置设备属性”内容:

/sys/a1XSBRUBMXW/866262044304197/thing/service/property/set

阿里云IoT平台相关参数配置完以后需要配置“变化周期”和“固定上传周期”,变化周期表示发送Modbus指令的时间间隔,固定上传周期表示将JSON包发送到服务器的周期,单位都为毫秒。

注:除了连接阿里云IoT平台的必要参数,还需要将Modbus转JSON开关打开,JSON格式设置为阿里云IoT平台。

3.1.8切换到Modbus RTU参数,根据实际需要采集的Modbus Rtu设备配置相应的参数,本手册用一个温湿度-光照度传感器示例,Modbus Rtu地址及寄存器定义如下:

阿里云怎么接收上传的json(如何将Modbus转JSON上报至阿里云)(5)

阿里云怎么接收上传的json(如何将Modbus转JSON上报至阿里云)(6)

可以看出温度和湿度为两个字节,温度有符号,数据类型是int16;湿度无符号,数据类型是uint16,转换为十进制以后都需要除以10,公式配置为valuey=valuex/10。光照度为四个字节,无符号,数据类型为uint32,字节序为1234,无公式,取原始值。参数配置如下:

点击工具-Modbus参数配置可以进入Modbus配置界面

注:点击添加按钮添加功能标识符,删除按钮删除功能标识符。

阿里云怎么接收上传的json(如何将Modbus转JSON上报至阿里云)(7)

阿里云怎么接收上传的json(如何将Modbus转JSON上报至阿里云)(8)

参数配置成功以后需要点复位设备,参数才会生效

3.1.9阿里云IoT平台物理模型配置

在阿里云IoT平台的产品-功能定义里面设置每个功能标识符的定义(根据每个寄存器的实际类型定义,不然阿里云IoT平台平台会提示参数类型错误),定义好以后点发布。当DTU采集数据上报后可以在设备-物理模型里面看数据,数据是Modbus Rtu协议解析后的数据。

注:虽然实际温度是int16类型,湿度是uint16类型,但经过公式计算以后有小数,所以阿里云IoT平台平台上定义温度和湿度的数据类型为float浮点数类型才能正确解析;光照度不需要通过公式计算,上报的值为原始值,类型为uint32。

点击产品-功能定义,选择编辑草稿。

阿里云怎么接收上传的json(如何将Modbus转JSON上报至阿里云)(9)

点击添加自定义功能

阿里云怎么接收上传的json(如何将Modbus转JSON上报至阿里云)(10)

按照采集数据的类型添加功能。

注:标识符需要和Modbus Rtu参数中的功能标识符保持一致,这样阿里云IoT平台平台才能正确解析物理模型

阿里云怎么接收上传的json(如何将Modbus转JSON上报至阿里云)(11)

(4)功能定义完以后点左下角发布

阿里云怎么接收上传的json(如何将Modbus转JSON上报至阿里云)(12)

3.1.10当设备采集数据并上报到阿里云IoT平台,可以在设备-物理模型数据查看。现在就实现了Modbus Rtu转JSON并上报到阿里云IoT平台的功能。

阿里云怎么接收上传的json(如何将Modbus转JSON上报至阿里云)(13)

3.1.11 阿里云下发设置

如果配置了可读可写的开关量类型,比如继电器,可以使用阿里云设置功能。先在阿里云IoT平台物理模型添加一个继电器。

阿里云怎么接收上传的json(如何将Modbus转JSON上报至阿里云)(14)

3.1.12 在Modbus参数配置软件配置IO口的Modbus RTU相关参数(以众山RTU为例,默认Modbus RTU地址为100,DI1、DI2的寄存器地址分别为17、18;DO1、DO2的寄存器地址分别为20、21,数据类型为bool)

阿里云怎么接收上传的json(如何将Modbus转JSON上报至阿里云)(15)

3.1.13 从阿里云IoT平台的在线调试功能下发控制继电器的指令

阿里云怎么接收上传的json(如何将Modbus转JSON上报至阿里云)(16)

阿里云IoT平台下发的原始指令为JSON格式,网关DTU会转换为相应的Modbus指令控制继电器,RTU返回的Modbus指令也会打包成JSON然后立即上报,这样可以实时控制和获取继电器状态。

猜您喜欢: