MQTT 关连接阿里云平台应用

前言:MQTT是一个基于客户端-服务器的消息发布/订阅传输协议。MQTT协议的特点是轻量、简单、开放和易于实现的,同时,西门子PLC广泛应于工业控制领域,是一款性能高、稳定性强的PLC设备。

此文档将介绍如何使用MQTT协议 关串口连接西门子200SMART PLC,将PLC的数据通过MQTT协议传输到阿里云MQTT数据平台,用户可以在阿里云的MQTT台上实时接收到200SMART PLC的数据,实现将PLC数据上云,远程监控数据的功能。

使用流程

流程如下,首次使用 关按照以下流程就可以实现将的PLC数据上传到阿里云的MQTT服务器,实现数据采集。

下文将按照此流程分步进行介绍说明。

准备工作

需要准备如下物品

1) 西门子200SMART PLC一台

2) MQTT协议 关一台,天线和电源适配器(以下用LF220作为实例)。

3) SIM卡一张,有流量,大卡(移动,联通或者电信卡)。

4) 联 电脑一台(WinXP/Win7/Win8/Win10操作系统)。

6) USB转RS232线、 线、电工工具、导线若干。

LF220 关准备工作

关相关技术参数与使用说明,可参考《LF220边缘计算 关使用手册V1.1》。

保证 关可以正常联 ,可通过4G卡(移动/联通/电信流量卡,大卡)联 (需接上随 关附带的天线)或通过 线联 (需将路由器出来的 线接到 关的WAN口);

关接12V或24V直流电源,上电。(注意,电源正负极不要接反)。

PLC准备工作

PLC连接电源(注意电源是24VDC还是220VAC),将PLC 口和LF220的LAN口用 线连接起来。

电脑的准备工作

电脑安装“蓝蜂MQTT 关配置工具压缩包”。

进入蓝蜂官 (
https://www.lanfengkeji.com/),点击→【物联 平台】。或直接搜索“物联 平台”。

注:第一次使用阿里云 IoT 平台物联 服务器需要先开通服务才能使用,跟随界面提示点击即可。

阿里云IoT平台配置步骤

成功登陆阿里云IoT平台以后,需要进行配置,按照如下步骤操作。

创建产品

点击实例,可进入实例详情,点击【设备管理】→【产品】→【创建产品】,如图。

【产品名称】:可自定义填写,会在“设备所属产品”中进行展示。

【所属品类】:本案例选择自定义品类,自定义功能。标准品类时,可选择与自己产品设备相近的模型,选择后系统可自动为您创建必选功能,也可根据需要添加可选功能和自定义功能。

【节点类型】:选择直连设备

【联 方式】:蜂窝(2G/3G/4G/5G)

【数据格式】:ICA标准数据格式(Alink JSON)

【校验类型】和【认证方式】保持默认即可。

添加设备

创建产品完成后,点击确认,可进行添加设备,点击“前往添加”。

【DeviceName】建议填写蓝蜂 关sn编 ,可方便后续对配置文件进行导入导出操作,也可以自定义名称。

【备注】可不写。

完成后点击【确认】按钮后,可在设备列表中看到添加的设备。

点击【查看】按钮,可查看设备的连接参数以及其他详细信息。

【DeviceName】和【ProductKey】需要记录下来,在之后的配置过程中会用到。

配置阿里云IoT平台物模型

此步骤类似于在平台创建变量。只有添加了变量以后,平台才会将这些数据进行展示。

在阿里云IoT平台,点击【产品】,找到我们刚刚创建的产品,点击查看按钮,如图:

这里我们添加属性,添加温度,湿度和开关三个变量,如图:

注意:数据类型需要根据设备每个属性的实际情况进行选择,在后面使用蓝蜂MQTT 关配置工具配置时,需要与之进行匹配。

区别于EMCP物联 云平台,此处不需要填写变量的地址,数据是根据“标识符”来展示的。建议在创建变量后将创建的“变量名称”、“标识符”、“数据类型”记录下来,如下表。在之后的蓝蜂MQTT 关配置工具中会用到。

变量名称

标识符

数据类型

温度

Temperature

int32(32位整形)

湿度

Humidity

int32(32位整形)

开关

Switch

Bool(开关量)

添加完成后,列表中可看到我们添加的3个属性,点击左下角发布上线。

注:

每个产品中可以有多个设备,共用所有的模块(变量)信息。举例:我有10台设备在同一个产品下,默认模块中设置了3个变量。在通讯正常时,10台设备都会采集这3个相同的变量进行展示。

获取连接阿里云IoT平台的参数

点击【设备】,找到刚刚创建的设备,点击后方的【查看】如图

非常重要。在后面使用蓝蜂MQTT 关配置工具配置 关登陆时(4.3节处)需要按照此处信息填写。这个界面刷新后会变化,建议在配置 关时打开,复制粘贴即可。

至此,按照如上步骤,对于阿里云平台的设置就完成了。

总结:

关于变量:在阿里云平台中创建变量完成后,必须要知道设备的“DeviceName”、“ProductKey”、“变量名称”、“标识符”、“数据类型”。

关于MQTT连接参数:非常重要,此为 关登录阿里云IoT平台的参数。

MQTT 关登陆平台配置步骤

首次使用蓝蜂 关进行连接MQTT服务器时,必须使用电脑与 关232串口连接,只有RS232口可以配置 关。接线如下:

登录

打开“蓝蜂MQTT 关配置工具”,此处必须使用本地串口配置的方式进行配置,如图:

使用232串口,将 关的RS232口使用USB转232线接到电脑串口上,同时填写配置参数,包括选择通讯口,波特率,数据位,数据校验,停止位。默认参数为115200,8,无,1。

【通讯口】:选择正确的串口 ,可在电脑的“设备管理器”中查看。本机为COM4。

【读取 关串口参数】:如果对于串口参数并不了解,可点击“读取 关串口参数”按钮,客户端会主动搜索并填入已选中的串口的参数。前提是必须选择正确的通讯口。

【记住配置】:点击“记住配置”按钮后,会记住当前配置,避免每次进入时需要重新配置的问题,再次进入时可直接进行连接操作。

点击“立即连接”按钮,稍等片刻即可进入 关配置工具进行配置。

关概况

当连接成功后,即可进入 关配置页面,对 关进行相应的配置。

关于 关基本信息的具体介绍,见《蓝蜂MQTT 关配置工具使用说明V1.0》第4.1节。

关于日志设置,强烈建议在非调试阶段关闭全部日志配置,长时间开启日志会影响 关性能。

注意:LF220最多支持添加500个变量,16个驱动。

MQTT连接配置

MQTT配置页面可用于填写MQTT服务器参数,具体介绍内容见《蓝蜂MQTT 关配置工具使用说明V1.0》第4.2节。首次拿到 关需要进行MQTT连接配置,可用于配置连接的MQTT服务器的参数。配置完成后, 关即可连接MQTT服务器,如图:

此处所有的配置是从阿里云平台处获取的(见3.4节内容),复制时不要添加或删除任何字符,否则将无法连接阿里云MQTT平台。填写完成后点击保存按钮,需要重启 关,配置才会生效,同时需要重新登录配置工具。

驱动管理

【通讯口配置】:点击通讯口配置下面有3个通讯端口项,【RS232】、【RS485】和【LAN】,分别对应 关上的3个数据通讯端口,3个通讯口可以同时和下位机进行通讯。可按照需要对相应通讯口进行配置。

我们需要使用 线与PLC进行通讯,所以需要配置 口的参数。如下图。本案例中,PLC的IP地址为192.168.1.55。

同时,建议使用手动设置IP的方式。需要填写和PLC同一 段的地址,任意即可,这里填写192.168.1.10,子 掩码为255.255.255.0。

【+新增】:点击此处创建驱动,可根据实际使用需求进行选择填写。

【驱动名称】:自定义。不限中英文,不限标点符 ,包括空格,最大支持20个字。

【品牌】、【型 】:根据需要选择品牌型 , 关会根据您选择的品牌型 的专有协议跟设备进行通讯。本案例连接西门子200SMART PLC,所以【品牌】选择“西门子”,【型 】选择“S7-200 SMART”。

【IP地址】:必填项,填写PLC的IP地址。

【端口 】:西门子默认为102。

完成后点击确定即可看到新创建的驱动。

变量管理

首先我们需要拿到PLC端的地址表, 此处的【寄存器类型】和【寄存器地址】需要和PLC的地址表一致。地址表见后方说明。

注意:此处的【变量标识(key)】需要和阿里云MQTT平台中填写的一致且区分大小写。见3.3节表格。

注:

1、 关会将创建的所有变量上传到阿里云IoT平台,由IoT平台根据标识符来判断数据是否采集、展示。

2、MQTT 关配置工具支持变量的复制/导入/导出功能,使用【复制】可以快速添加变量。

具体内容介绍见《蓝蜂MQTT 关配置工具使用说明V1.0》第4.5.2节和4.5.3节。

※变量名称说明:

【仪表、PLC】:必填,选择刚才创建的西门子smart200即可。

【变量表示(key)】:必填,自定义即可。注意不能有重复的名称。

【寄存器类型】:必填,填写对应西门子smart200PLC的寄存器类型。

【寄存器地址】:必填,与实际寄存器地址一致。具体可见下方地址表示例。

【数据类型】:必填,根据实际需要选择即可。

【死区设置】:具体内容见后方“?”。

【读写方式】:可根据需求自行修改该寄存器的读写方式,默认为只读。

【采集公式】:可根据需求自行编写公式,需要使用英文字符。具体内容介绍见《蓝蜂MQTT 关配置工具使用说明V1.0》第4.5.4节。

地址表示例:

数据上 和写入配置

数据上 配置设置

配置步骤

打开阿里云平台,点击【产品】→【查看】,如图:

进入产品后,点击【topic类列表】-【物模型通信topic】,即找到属性上 主题,如图

其中“ /sys/ gqbaihhDlTb /${deviceName}
/thing/event/property/post”中的gqbaihhDlTb是IoT平台自动生成的,需要改成自己设备的ProductKey。为3.2节中标出需要记录的ProductKey。

主题中的通配符${deviceName}需要替换成我们这个产品中创建的设备的DeviceName。我们的示例在阿里云IoT平台创建的设备的DeviceName为 关sn编 ,而在蓝蜂配置工具中可使用通配符${sn}代替sn编 。

因此我们的上 主题为/sys/gqbaihhDlTb/${sn}
/thing/event/property/post

我们将该主题写入数据上 配置中的上 主题中,如图:

【上 方式】:可按需求选择定时上 或变化上 ,此文档以定时上 为例。

※【加工脚本】如下,复制粘贴即可,一般不需要进行修改:

function reportToJson(signalArray, system){

var json ={

id: system.msgId,

version:”1.0″,

sys:{ ack : 0},

method: “thing.event.property.post”,

params:{}

}

var time = new Date().getTime();

for(var i=0; i<signalArray.length; i++){

var signal = signalArray[i];

json.params[signal.key] = {

time:time,

value:Number(signal.value)

}

}

return JSON.stringify(json);

}

点击确定按钮,配置完成,需要重启 关,配置才会生效,将 关接入设备后,采集到的数据就可上 到阿里云IoT平台了。

查看数据

当设备采集到数据并上 到阿里云IoT平台后,我们可以在阿里云IoT平台,点击设备,找到我们接入的设备。

点击查看按钮,进入设备详情中,点击物模型数据,便可查看到我们采集到的数据,如图:

点击查看数据按钮,可查看该属性的历史数据详情,如图:

写变量配置

操作步骤

从阿里云IoT平台向设备写入数据,需要在蓝蜂MQTT 关配置工具中对写入进行配置。

点击【数据传输配置】-【写变量配置】,我们可在写变量配置中设置请求和响应主题,在阿里云IoT平台打开对应设备的topic列表找到属性设置topic,如图:

进入产品后,点击【topic类列表】-【物模型通信topic】,即找到属性设置主题,如图:

其中“/sys/ gqbaihhDlTb /${deviceName}
/thing/service/property/set”中的gqbaihhDlTb是IoT平台自动生成的,需要改成自己设备的ProductKey。为3.2节中标出需要记录的ProductKey。

主题中的通配符${deviceName}需要替换成我们这个产品中创建的设备的DeviceName。

我们的示例在阿里云IoT平台创建的设备的DeviceName为 关sn编 ,而在蓝蜂配置工具中可使用通配符${sn}代替sn编 。

因此我们的请求主题为:/sys/gqbaihhDlTb/${sn}
/thing/service/property/set,

响应主题为:/sys/gqbaihhDlTb/${sn}
/thing/service/property/set_reply

我们将请求主题和响应主题写入写变量配置中的请求和响应主题中,如图:

※【请求解析脚本】如下,复制粘贴即可,一般不需要进行修改:

function writeReqToJson(str){

if(str!=””){

var req = JSON.parse(str)

var keys = Object.keys(req.params)

var key = keys[0]

var msgId = req.id

var json = { key: key, value:req.params[key]+””,msgId:msgId}

return JSON.stringify(json)

}

return {}

}

※【响应加工脚本】如下,复制粘贴即可,一般不需要进行修改:

function writeRespToJson(signal, system){

var json = {

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2022年6月26日
下一篇 2022年6月26日

相关推荐