Historian数据上云第二弹,微软走起
通用电气数字集团 刘尊义
续接上篇Historian发布数据到阿里云IoT,第二弹讨论Historian数据发布到微软Azure IoT Hub设备中心。
Azure IoT Hub是目前最好的中心化IoT平台之一,Azure IoT Hub注册的设备可以在Azure保存7天,免去个人搭建服务器的各种繁琐操作和管理。
书归正传,测试将Historian数据发布到Azure IoT Hub统共需要以下4个工具:
GE Proficy Historian 9.1
微软Azure IoT Hub账号
MQTT.FX测试工具
VSCODE编程环境
特别说明,微软Azure中国区和国外是两个隔离的空间,账号互相独立,数据发布的技术细节也略有不同,另外,中国区账号需要组织身份注册。
为了便于新手用户理解数据发布的机制,我们将整个测试过程分为五个步骤:
· 微软Azure IoT Hub准备
· 获取Azure IoT Hub令牌
· 在MQTT.fx中进行数据发布测试
· 用VSCode控制台订阅Azure IoT Hub数据
· 用Historian采集器发布数据并测试
1、微软Azure IoT Hub准备
Azure中国区的地址是Portal.azure.cn, 而国外的入口是Portal.azure.com, 两个账号不能通用,我们使用国外的平台进行演示。首先,我们需要了解几个Azure中的概念:
· 资源组:Azure提供的各种服务资源的组合池,可以包含多种资源,建议按照项目命名比较合适;
· 资源:Azure提供的各种服务资源,比如IoT中心就是一个资源类型;
· IoT中心:Azure提供的套用IoT中心,可以理解为一个Broker实例;
· IoT设备:向IoT中心发布数据的终端或服务,需要首先在IoT中心注册。
其它概念如IoT Edge等因为本测试案例使用不到,就不在这里赘述,下面开始详细的步骤。
首先当然需要注册一个微软Azure账号,然后登陆控制台首页,在菜单入口,选择资源组,创建一个资源组,为资源组命名并选择机房位置。
第二步,在资源组中创建一个物联网IoT中心资源,并为IoT中心实例命名和选择缩放级别,缩放级别和订阅费用与每天的记录数有关,测试用可以选择基础缩放级别即可。
第三步,在刚刚创建的IoT中心注册IoT设备,命名设备ID。
最终,在IoT设备创建完成后会生成连接字符串和密钥,记住提取位置,后面会用到。
2、获取Azure IoT Hub令牌
接下来,将会使用MQTT.fx测试连接到Azure IoT Hub,Azure IoT Hub支持用户名/密码组合及x.509证书两种认证方式,用户名密码组合的认证方式中的密码实际上,并不是注册设备时,Azure自动生成的Key,而是使用动态令牌作为连接使用的密码,这一步的目的就是使用VSCode生成一个动态令牌。
这一步只是让大家了解Azure IoT Hub的通讯过程,实际在Historian向Azure IoT Hub发布数据的过程中,这一步骤由Historian自动执行,不需要我们手动获取,如果是熟练应用,直接跳到第五步即可。
这一步,需要先安装VSCode,并在VSCode选择扩展入口,在应用商店中搜索Azure IoT Tools,并执行安装。
第二步,在资源管理器入口,连接Azure IoT中心,在IoT中心下,选择“Devices”,然后选择“Set IoT Hub Connection String”。
在VSCode的上部会弹出一个输入框。
从Azure IoT中心资源共享访问策略处选择iothubowner策略,从弹出的权限窗口复制主连接字符串到弹出的输入框,即可与IoT中心的资源建立连接,会自动刷新出IoT设备。
第三步,选中IoT设备,右键单击并选择“Generate SAS Token for Device”获取令牌。
在VSCode上部的弹出框会弹出令牌过期时间,以小时为单位,输入一个尽量长的时间值,获取令牌,但是过期之后需要重新获取令牌。
最后, VSCode输出窗口会输出一个SASToken,以“SharedAccessSignature”开头的一行字符即为Azure IoT Hub连接的认证密码,在后面会用到。
3、在MQTT.fx中进行数据发布测试
这一步骤是一个可选项,主要目的是为了快速验证和IoT Hub之间的连接。如果熟悉Historian可直接跳到第五步。
在MQTT.fx控制台,单击菜单栏中的Extras,选择Edit Connection Profiles,点击左侧的“+”号添加一个新的连接。
按照上图所示,输入一个名字,并在MQTT Broker设置栏,填入地址、端口和客户端ID。
其中的Broker Address可以在Azure IoT中心的概述页面找到,其中的主机名即是需要在Broker Address中填入的内容。
Broker Port是Azure IoT Hub的固定值8883。
Client ID是在Azure IoT Hub中注册的IoT设备ID。
其它选项保持默认值,接下来切换到User Credentials选项卡,用户名处是一个固定组合,具体格式为:“IoT_hub_name/IoT_device_name/?api-version=2018-06-30”。
密码处是在上一步生成的SAS动态令牌。
填写完成后点击OK保存即可。
然后,需要在mqtt.fx中,连接刚才配置的连接,在Publish选项,定义一个相关的topic进行数据发送。定义topic的格式如下:devices/IoT_device_name/messages/events/。
我们输入测试数据,点击Publish进行发布。
4、用VSCode控制台订阅Azure IoT Hub数据
接下来,我们在刚才获取SAS令牌的VSCode环境,右键单击IoT设备,选择“Start Monitoring Built-in Event Endpoint”订阅缺省Topic的数据。
在弹出的连接字符串输入框,需要输入连接字符串。
连接字符串从IoT Hub的内置终结点的事件中心-兼容终结点获取。
回车后,随即可以在VSCode的输出窗口返回如下信息:
我们在上一步设置的MQTT.fx测试工具中发布一段信息,随即可以在输出窗口捕获订阅的信息。
到此,我们确认IoT Hub已经可以正常工作并代理信息。
5、用Historian采集器发布数据并测试
最后,我们正式通过Historian采集器向IoT Hub发布数据,其实,如果是熟练应用,可以直接跳过第二、三、四步,直接在这一步创建采集器连接,发布数据即可。
同时,Historian并不需要手动获取Azure IoT Hub的SAS动态令牌,Historian可以自动获取令牌并通过令牌建立连接,而无需考虑令牌过期问题。
我们打开Configuration Hub并登陆到Historian服务器,添加一个采集器。选择机器名和采集器类型,点击“Get Details”获取安装的驱动器和数据路径。
在下一步中,选择数据源服务。
接下来,选择目的为“Azure IoT Hub”,并复制在第一步中创建IoT设备后的主连接字符串,填到设备连接字符串,在传输协议中选择“MQTT”。
拉到底端,选择配置端,建议选择Historian配置,并输入Historian服务器的用户名密码。
最后一步,选择默认本地系统服务运行,并点击添加,添加成功后,新添加的采集器将自动运行。
在Historian管理客户端中为采集器添加标签。
最后,可以在VSCode的输出窗口看到数据正常刷新,至此,Historian通过采集器发布到Azure IoT Hub测试完成。
物联网IoT正在影响着我们的生活,无论是共享单车还是工业领域的应用,都在随着技术的进步和数据应用需求的增强,一步步走进我们工作生活的每个领域。
GE作为IIoT的提出者和倡导者,针对工业领域的特点,能够提供从设备到业务的完整解决方案。
如果大家对GE的解决方案,GE的Proficy Historian或者GE Digital的其它软件产品感兴趣,或者需要我们提供哪些技术分享,欢迎随时与GE Digital联系。
提交
Proficy软件亮相国际智能制造论坛,以工业数据为核心赋能企业提高生产力
MQTT与OPC UA的物联网对话
GE数字集团的Proficy Historian 2023
预见智能制造,GE Digital亮相2023第十七届北京国际工业自动化展览会
GE Digital云端制造执行系统(MES)可降低30%的总拥有成本