- MQTT的协议网络
采用机器专家协议的OPC UA、NVL,利用机器之间的双向交换改善机器互动。
以前通常都需要在控制器之外加上一个协议转换网关,然后通过网关来和云平台连接,现在用了M262之后,就可以直接和云平台链接,少了网关。这样就轻松打通了IT和OT之间的通道,实现远程监测,分析和预防性维护等IIoT的热点应用,与云平台连接的网络示意图 如图1-1所示。
图1-1 与云平台连接的网络示意图
- M262的MQTT的云应用的网络
M262可以连接到第3方云平台【阿里云】进行物联网的通信,并且不需要网关进行中转,将网线连接到路由器进行连接,M262的MQTT云应用的网络架构如图1-2所示。
图1-2 M262的MQTT云应用的网络架构
- 阿里云物联网的开发流程
通过M262连接到阿里云,建议采用以下流程做阿里云的开发:
- 注册阿里云的账号、密码,完成手机的绑定和账号的实名。开通物联网,物联网开通链接如下。 https://www.aliyun.com/product/iot?spm=a2c4g.11186623.2.17.115a437bAljkTi创建产品
创建产品是物联网使用的第一步,产品是设备的集合,通常是一组具有相同功能定义的设备集合。例如产品指同一个型号的产品,设备就是该型号下的某个设备。
- 定义物模型
选择设备端确定哪些数据要上云。
- 了解topic的定义和使用创建设备
设备端的开发包括M262的PLC网络设置、编程、程序的下载,M262上云的调试等内容。
- 监控运维时,除查看实时监控数据、数据统计说明以外,真实设备和虚拟设备调试也将在监控运维中进行。设备管理
设备管理包含了云端开发、设备分组、文件管理、子设备管理、服务端订阅、数据解析等内容。
- 物联网数据分析
数据分析是阿里云为物联网开发者提供的设备智能分析服务,全链路覆盖了设备数据生成、管理(存储)、清洗、分析及可视化等环节。有效降低数据分析门槛,数据分析能够助力物联网的开发工作。
阿里云物联网设备的开发流程如图1-3所示。
图1-3 阿里云的开发流程图
- M262上阿里云的操作
根据MQTT的物联网协议,为M262与阿里云的信息交换创建产品,并创建设备等等操作,并详细说明具体的详细流程。
- 创建产品
创建产品是物联网使用的第一步,产品是设备的集合,通常是一组具有相同功能定义的设备集合。例如产品指同一个型号的产品,设备就是该型号下的某个设备。
阿里云的控制台链接:https://iot.console.aliyun.com/lk/summary
在【设备管理】下的【产品】选择创建产品,如图1-4所示。
图1-4 创建产品
【所属分类】选择自定义设备,【节点类型】选择设备,【是否接入网关】选择否,【ID2认证】选择为否,如图1-5所示。
图1-5 创建新产品
- 创建设备
产品指某一类设备,创建完产品后,需要为设备创建身份。读者可以创建单个设备,也可以批量创建设备,这里选择创建一个新设备,如图1-6所示。
图1-6 创建新设备
DeviceName是设备名称,设备名称在产品内必须是唯一的。设备名称长度为4~32个字符,可以包含英文字母、数字和特殊字符,包括连接号(-)、下划线(_)、at符号(@)、点号(.)和英文冒号(:),设置的画面如图1-7所示。
图1-7 添加设备名称
设备创建成功后,将自动弹出查看设备证书对话框,设备证书由设备 ProductKey、DeviceName、和 DeviceSecret组成,是设备与物联网平台进行通信的重要身份认证,是后续M262创建用户名和密码的依据,必须妥善保管,可以在设备列表中,单击设备对应的查看按钮,进入设备详情页的【设备信息】下,查看设备信息,如图1-8所示。
图1-8 查看设备信息
- 为设备创建物模型
物模型,简称TSL,即Thing Specification Language,是一个JSON格式的文件。它是物理空间中的实体,如传感器、车载装置、楼宇、工厂等在云端的数字化表示,从属性、服务和事件3个维度,分别描述了该实体是什么,能做什么,可以对外提供哪些信息。用户定义了这3个维度,即完成了产品功能的定义。
添加单个的物模型,即单个添加属性、事件和服务,在这里选择M262中需要上传到云的内容。需要在左侧的导航栏选择【设备管理】 > 【产品】。然后在在【产品】管理页面产品列表中,单击产品所对应的查看操作按钮。再单击功能定义,先选择【标准功能】的添加功能,再选择【自定义功能】的添加功能,如图1-9 所示。
图1-9 添加功能的界面
在【编辑标准功能】页面下的【属性】下添加【环境温度】,设置取值范围为0~150,如图1-10所示。
图1-10 添加标准功能
添加扩展功能包括电机的实际转速和实际电流,如图1-11所示。
图1-11 添加的扩展功能
在名称为【阿里云和M262MQTT项目】的【设备树】中将Ethernet 2设置为DHCP,并使用网线将PLC接入路由器的网口中,这样PLC就可以连接到互联网了。
M262使用MQTT的通信协议有专门的功能块库MQTThandling,需要在库管理器中调用这些库,另外阿里云通信的数据格式采用的是JSON,因此也要添加FileFormatUtility工具库,另外还要添加以太网TCPUDP库,SysMem和SysSem库如图1-12所示。
图1-12 项目需要添加的库
- 阿里云的密码设置
阿里云的用户名和密码需要由密码小工具来生成,下载链接:https://files.alicdn.com/tpsservice/88413c66e471bec826257781969d1bc7.zip?spm=a2c4g.11186623.2.21.348c7908rCF2mR&file=88413c66e471bec826257781969d1bc7.zip
解压缩后,使用密码工具生成密码,根据设备ProductKey、DeviceName、和 DeviceSecret计算密码,需注意clientId直接输入数字,不要将1|securemode=2,signmethod=hmacsha1|整体填入,如图1-13所示。
图1-13 设成密码画面
阿里云相关的组态设置如下。
用户名UserName,由设备名DeviceName、符号(&)和产品ProductKey组成。
固定格式:${YourDeviceName}&${YourPrductKey}。
完整示例如:device&alxxxxxxxxxx。
阿里云的服务地址是域名,但MQTT功能块只支持IP地址,所以需要先进行域名解析;
阿里云的域名格式:
${YourProductKey}.iot-as-mqtt.${region}.aliyuncs.com
在M262程序中调用FB_DNSClient块进行解析,首先在GVL全局变量中输入网关的地址192.168.1.1和阿里云服务器的域名,如图1-14所示。
图1-14 在全局变量中全局变量和域名设置
Dns解析出来的服务器地址为106.15.100.2,如图1-15所示。
图1-15 Dns分析的服务器的IP地址
ClientID 即mqttClientId,用于MQTT的底层协议报文。
格式固定:${clientId}|securemode=3,signmethod=hmacsha1|。
完整示例:12345|securemode=3,signmethod=hmacsha1|。
其中,
- ${ClientId}为设备的ID信息。可取任意值,长度在64字符以内。建议使用设备的MAC地址或SN码。
- securemode为安全模式,TCP直连模式设置为securemode=3,TLS直连为securemode=2。
- signmethod为算法类型,支持hmacmd5和hmacsha1。
在Action ACT_connect中的ConnectionSetting的结构体中设置ClientID,连接保持时间,IP地址采用功能块Dns解析的地址,接口固定为1883,然后设置阿里云的用户名和密码。
在库MqttHandling中的GPC的属性变量ClientID最大长度中要进行修改,防止因clientId比较长导致ClientID不能被正常识别导致连不上服务器。
物联网平台中,服务端和设备端通过 Topic 来实现消息通信。Topic是针对设备的概念,Topic类是针对产品的概念。产品的Topic类会自动映射到产品下的所有设备中,生成用于消息通信的具体设备Topic。
阿里云采用的是Json格式的文件数据,在Action Act_addString中采用Json相关的功能块生成传递给云的Json格式的字符串,因为字符串很长,回到主程序中,将发送的最大数据设置到最大。
在Act_Subscribe中设置订阅的Topic,在阿里云上的Topic,设置发布信息。这样就把设备端和阿里云的数据通路打通了,读者还可以在此基础上加入阿里云与服务器的连接和对手机信息的推送,这都属于IT工程师的工作范畴,这里就不再说明了。
M262不仅可以通过MQTT和HTTP协议、JSON和TLS加密可以连接到其他施耐德电气平台或第3方云平台,还可以利用M262的API对IT功能的优势加以充分利用,例如电子邮件收发,日历、事件管理、社交网络互动和天气信息等。
如若转载,请注明出处:https://www.hanjifoods.com/482.html