「使用教程」串口服务器接入阿里云物模型

深圳运维 服务器运维 1.0K

在之前的文章中我们了解到虚拟串口软件作为TCP客户端来结合串口服务器使用,这一期我们来看一下串口服务器怎样接入阿里云物模型。

步骤详尽,一文读懂。

硬件准备ME31-AXAX4040网络IO联网模块一台;

MCGS的TPC7062组态屏一台;

RS-458通讯电缆若干;

线缆若干;

12V开关电源一个;

串口服务器(NB114);

*说明:串口服务器作为数据传输设备目前版本并不支持对JSON数据的处理(处理指的是JSON转Modbus RTU协议,但可以传输JSON数据)因此需要使用MCGS对数据进行组包和解包操作。

设备接线本例程需要使用的TPC7062的两路串口,COM2连接ME31-AXAX4040实现Modbus控制,COM1连接NB114实现连接阿里云MQTT服务器。

「使用教程」串口服务器接入阿里云物模型-第1张图片-贝塔运维

NB114的RS-232接口定义与TPC的2、3、5相同,连接时应当注意RX与TX交叉连接。

①TPC连接NB114接线示意:

「使用教程」串口服务器接入阿里云物模型-第2张图片-贝塔运维

②TPC连接ME31-AXAX4040示意:

「使用教程」串口服务器接入阿里云物模型-第3张图片-贝塔运维

软件配置1.阿里云MQTT环境配置「使用教程」串口服务器接入阿里云物模型-第4张图片-贝塔运维

①有账号直接登录,没有账号点击立即注册,根据注册引导进行下一步,可在网上查找到阿里云注册方法,本文不做介绍。

②在“产品”目录下选择“物联网IOT”的企业物联网平台,进入控制台,选择“公共实例”。

「使用教程」串口服务器接入阿里云物模型-第5张图片-贝塔运维

③点击“创建产品”,配置产品名称,选择“自定义品类”,其余参数保持默认。

「使用教程」串口服务器接入阿里云物模型-第6张图片-贝塔运维

④选择“功能定义”,点击“编辑草稿”。

「使用教程」串口服务器接入阿里云物模型-第7张图片-贝塔运维

⑤可以选择在“默认模块”下配置或者添加一个新的模块用于区别不同设备的功能定义,本项目使用“默认模块”即可。

「使用教程」串口服务器接入阿里云物模型-第8张图片-贝塔运维

⑥点击“添加自定义功能”,选择“属性”,配置名称,配置标志符(标准符与MCGS的JSON协议解析相关,若要使用本文解析脚本需要与我的配置方法保持一致,否则无法解析和正确组包数据),数据类型选择BOOL(布尔型),配置0和1的具体含义,如图所示:

「使用教程」串口服务器接入阿里云物模型-第9张图片-贝塔运维

⑦其他变量参考“开关量输入第一路”配置,在配置“开关量输出”注意修改为读写。

标识符说明(定义时需要与我保持一致)

名称

标识符

开关量输入第一路

DI01

开关量输入第二路

DI02

开关量输入第三路

DI03

开关量输入第四路

DI04

开关量输出第一路

DO01

开关量输出第二路

DO02

开关量输出第三路

DO03

开关量输出第四路

DO04

⑧在该产品目录下“添加设备”,复制产品“三要素”。

查询物模型的发布与订阅地址:

发布地址:/sys/a1mc0PReOQ9/${deviceName}/thing/service/property/set

订阅地址:/sys/a1mc0PReOQ9/${deviceName}/thing/event/property/post

${deviceName}需要替换为具体设备名,发布订阅都使用服务等级“0”。

2.串口服务器(NB114)配置串口服务器连接MQTT服务器方法参考“串口服务器用户手册”,不再重复说明。

「使用教程」串口服务器接入阿里云物模型-第10张图片-贝塔运维

3.设备驱动添加与处理本次例程需要使用到TPC的两路串口以及两种收发协议,详细说明如下:

①在MCGS官网下载“MCGS_嵌入式_扫码枪驱动”并安装用以实现串口数据透传。

「使用教程」串口服务器接入阿里云物模型-第11张图片-贝塔运维

②添加两台父设备分别关联COM1与COM2,COM1下添加扫码枪驱动,COM2添加Modbus RTU驱动。

「使用教程」串口服务器接入阿里云物模型-第12张图片-贝塔运维

③Modbus RTU驱动定义变量添加通道,参考中配置。

「使用教程」串口服务器接入阿里云物模型-第13张图片-贝塔运维

④扫码枪驱动定义变量添加通道,参考中配置。

「使用教程」串口服务器接入阿里云物模型-第14张图片-贝塔运维

4.变量添加①除了设备通道中定义的变量外还需添加一些中间变量用于数据解析,如图所示。

「使用教程」串口服务器接入阿里云物模型-第15张图片-贝塔运维

阿里云物模型下发数据处理

「使用教程」串口服务器接入阿里云物模型-第16张图片-贝塔运维

添加事件脚本,关联“COM1_DEV4_S_R_STATE”,COM1在收到数据时有电平跳变,因此可以借助这个电平跳变采集串口数据,并使能数据处理脚本。

「使用教程」串口服务器接入阿里云物模型-第17张图片-贝塔运维

脚本如下:

「使用教程」串口服务器接入阿里云物模型-第18张图片-贝塔运维

接收处理,周期查询检测是否被使能。

「使用教程」串口服务器接入阿里云物模型-第19张图片-贝塔运维

标记设备,我这有多台设备需要接入服务器因此需要的各型号进行标记,若是单台设备直接对标记变量赋与固定值,具体脚本如下。

「使用教程」串口服务器接入阿里云物模型-第20张图片-贝塔运维

对原始数据进行第一次处理,仅保留JSON中“属性”字段,脚本如下

「使用教程」串口服务器接入阿里云物模型-第21张图片-贝塔运维

调用具体策略将平台数据解析到中间变量中缓存。

先将设备的DO状态保存到中间变量,再调用处理DO脚本,本例并未使用到AO请忽略。

「使用教程」串口服务器接入阿里云物模型-第22张图片-贝塔运维

DO处理脚本如下

「使用教程」串口服务器接入阿里云物模型-第23张图片-贝塔运维

调用处理IO执行脚本,脚本如下。

「使用教程」串口服务器接入阿里云物模型-第24张图片-贝塔运维

忽略对ME31-XAAX0440与ME31-AAAX2240的数据处理。

「使用教程」串口服务器接入阿里云物模型-第25张图片-贝塔运维

处理完成标记

「使用教程」串口服务器接入阿里云物模型-第26张图片-贝塔运维

简单制作一个界面关联相应变量。

「使用教程」串口服务器接入阿里云物模型-第27张图片-贝塔运维

②经过上述步骤,已经可以实现物模型平台控制,演示如下:

「使用教程」串口服务器接入阿里云物模型-第28张图片-贝塔运维

在“在线调试”控制第一路DO输出

「使用教程」串口服务器接入阿里云物模型-第29张图片-贝塔运维

「使用教程」串口服务器接入阿里云物模型-第30张图片-贝塔运维

处理上报阿里云物模型数据

接下来对上报数据进行处理,创建“用户策略”。

「使用教程」串口服务器接入阿里云物模型-第31张图片-贝塔运维

手动对数据进行组包处理,图中所示其余脚本在单设备中不生效。

「使用教程」串口服务器接入阿里云物模型-第32张图片-贝塔运维

标记完成对单设备不生效,因此只用清空处理标志。

添加手动上传功能,自动上传只是周期调用“上传策略”,不再说明:

「使用教程」串口服务器接入阿里云物模型-第33张图片-贝塔运维

查询当前平台参数:

「使用教程」串口服务器接入阿里云物模型-第34张图片-贝塔运维

点击“手动上传”,刷新网页再次查询:

「使用教程」串口服务器接入阿里云物模型-第35张图片-贝塔运维

自此就ME31-AXAX404通过TPC7062连接阿里云物模型实现远程控制采集。

标签: 阿里云服务器

抱歉,评论功能暂时关闭!