Historian數(shù)據(jù)上云第二彈,微軟走起
通用電氣數(shù)字集團(tuán) 劉尊義
續(xù)接上篇Historian發(fā)布數(shù)據(jù)到阿里云IoT,第二彈討論Historian數(shù)據(jù)發(fā)布到微軟Azure IoT Hub設(shè)備中心。
Azure IoT Hub是目前最好的中心化IoT平臺之一,Azure IoT Hub注冊的設(shè)備可以在Azure保存7天,免去個人搭建服務(wù)器的各種繁瑣操作和管理。
書歸正傳,測試將Historian數(shù)據(jù)發(fā)布到Azure IoT Hub統(tǒng)共需要以下4個工具:
GE Proficy Historian 9.1
微軟Azure IoT Hub賬號
MQTT.FX測試工具
VSCODE編程環(huán)境
特別說明,微軟Azure中國區(qū)和國外是兩個隔離的空間,賬號互相獨(dú)立,數(shù)據(jù)發(fā)布的技術(shù)細(xì)節(jié)也略有不同,另外,中國區(qū)賬號需要組織身份注冊。
為了便于新手用戶理解數(shù)據(jù)發(fā)布的機(jī)制,我們將整個測試過程分為五個步驟:
· 微軟Azure IoT Hub準(zhǔn)備
· 獲取Azure IoT Hub令牌
· 在MQTT.fx中進(jìn)行數(shù)據(jù)發(fā)布測試
· 用VSCode控制臺訂閱Azure IoT Hub數(shù)據(jù)
· 用Historian采集器發(fā)布數(shù)據(jù)并測試
1、微軟Azure IoT Hub準(zhǔn)備
Azure中國區(qū)的地址是Portal.azure.cn, 而國外的入口是Portal.azure.com, 兩個賬號不能通用,我們使用國外的平臺進(jìn)行演示。首先,我們需要了解幾個Azure中的概念:
· 資源組:Azure提供的各種服務(wù)資源的組合池,可以包含多種資源,建議按照項(xiàng)目命名比較合適;
· 資源:Azure提供的各種服務(wù)資源,比如IoT中心就是一個資源類型;
· IoT中心:Azure提供的套用IoT中心,可以理解為一個Broker實(shí)例;
· IoT設(shè)備:向IoT中心發(fā)布數(shù)據(jù)的終端或服務(wù),需要首先在IoT中心注冊。
其它概念如IoT Edge等因?yàn)楸緶y試案例使用不到,就不在這里贅述,下面開始詳細(xì)的步驟。
首先當(dāng)然需要注冊一個微軟Azure賬號,然后登陸控制臺首頁,在菜單入口,選擇資源組,創(chuàng)建一個資源組,為資源組命名并選擇機(jī)房位置。
第二步,在資源組中創(chuàng)建一個物聯(lián)網(wǎng)IoT中心資源,并為IoT中心實(shí)例命名和選擇縮放級別,縮放級別和訂閱費(fèi)用與每天的記錄數(shù)有關(guān),測試用可以選擇基礎(chǔ)縮放級別即可。
第三步,在剛剛創(chuàng)建的IoT中心注冊IoT設(shè)備,命名設(shè)備ID。
最終,在IoT設(shè)備創(chuàng)建完成后會生成連接字符串和密鑰,記住提取位置,后面會用到。
2、獲取Azure IoT Hub令牌
接下來,將會使用MQTT.fx測試連接到Azure IoT Hub,Azure IoT Hub支持用戶名/密碼組合及x.509證書兩種認(rèn)證方式,用戶名密碼組合的認(rèn)證方式中的密碼實(shí)際上,并不是注冊設(shè)備時,Azure自動生成的Key,而是使用動態(tài)令牌作為連接使用的密碼,這一步的目的就是使用VSCode生成一個動態(tài)令牌。
這一步只是讓大家了解Azure IoT Hub的通訊過程,實(shí)際在Historian向Azure IoT Hub發(fā)布數(shù)據(jù)的過程中,這一步驟由Historian自動執(zhí)行,不需要我們手動獲取,如果是熟練應(yīng)用,直接跳到第五步即可。
這一步,需要先安裝VSCode,并在VSCode選擇擴(kuò)展入口,在應(yīng)用商店中搜索Azure IoT Tools,并執(zhí)行安裝。
第二步,在資源管理器入口,連接Azure IoT中心,在IoT中心下,選擇“Devices”,然后選擇“Set IoT Hub Connection String”。
在VSCode的上部會彈出一個輸入框。
從Azure IoT中心資源共享訪問策略處選擇iothubowner策略,從彈出的權(quán)限窗口復(fù)制主連接字符串到彈出的輸入框,即可與IoT中心的資源建立連接,會自動刷新出IoT設(shè)備。
第三步,選中IoT設(shè)備,右鍵單擊并選擇“Generate SAS Token for Device”獲取令牌。
在VSCode上部的彈出框會彈出令牌過期時間,以小時為單位,輸入一個盡量長的時間值,獲取令牌,但是過期之后需要重新獲取令牌。
最后, VSCode輸出窗口會輸出一個SASToken,以“SharedAccessSignature”開頭的一行字符即為Azure IoT Hub連接的認(rèn)證密碼,在后面會用到。
3、在MQTT.fx中進(jìn)行數(shù)據(jù)發(fā)布測試
這一步驟是一個可選項(xiàng),主要目的是為了快速驗(yàn)證和IoT Hub之間的連接。如果熟悉Historian可直接跳到第五步。
在MQTT.fx控制臺,單擊菜單欄中的Extras,選擇Edit Connection Profiles,點(diǎn)擊左側(cè)的“+”號添加一個新的連接。
按照上圖所示,輸入一個名字,并在MQTT Broker設(shè)置欄,填入地址、端口和客戶端ID。
其中的Broker Address可以在Azure IoT中心的概述頁面找到,其中的主機(jī)名即是需要在Broker Address中填入的內(nèi)容。
Broker Port是Azure IoT Hub的固定值8883。
Client ID是在Azure IoT Hub中注冊的IoT設(shè)備ID。
其它選項(xiàng)保持默認(rèn)值,接下來切換到User Credentials選項(xiàng)卡,用戶名處是一個固定組合,具體格式為:“IoT_hub_name/IoT_device_name/?api-version=2018-06-30”。
密碼處是在上一步生成的SAS動態(tài)令牌。
填寫完成后點(diǎn)擊OK保存即可。
然后,需要在mqtt.fx中,連接剛才配置的連接,在Publish選項(xiàng),定義一個相關(guān)的topic進(jìn)行數(shù)據(jù)發(fā)送。定義topic的格式如下:devices/IoT_device_name/messages/events/。
我們輸入測試數(shù)據(jù),點(diǎn)擊Publish進(jìn)行發(fā)布。
4、用VSCode控制臺訂閱Azure IoT Hub數(shù)據(jù)
接下來,我們在剛才獲取SAS令牌的VSCode環(huán)境,右鍵單擊IoT設(shè)備,選擇“Start Monitoring Built-in Event Endpoint”訂閱缺省Topic的數(shù)據(jù)。
在彈出的連接字符串輸入框,需要輸入連接字符串。
連接字符串從IoT Hub的內(nèi)置終結(jié)點(diǎn)的事件中心-兼容終結(jié)點(diǎn)獲取。
回車后,隨即可以在VSCode的輸出窗口返回如下信息:
我們在上一步設(shè)置的MQTT.fx測試工具中發(fā)布一段信息,隨即可以在輸出窗口捕獲訂閱的信息。
到此,我們確認(rèn)IoT Hub已經(jīng)可以正常工作并代理信息。
5、用Historian采集器發(fā)布數(shù)據(jù)并測試
最后,我們正式通過Historian采集器向IoT Hub發(fā)布數(shù)據(jù),其實(shí),如果是熟練應(yīng)用,可以直接跳過第二、三、四步,直接在這一步創(chuàng)建采集器連接,發(fā)布數(shù)據(jù)即可。
同時,Historian并不需要手動獲取Azure IoT Hub的SAS動態(tài)令牌,Historian可以自動獲取令牌并通過令牌建立連接,而無需考慮令牌過期問題。
我們打開Configuration Hub并登陸到Historian服務(wù)器,添加一個采集器。選擇機(jī)器名和采集器類型,點(diǎn)擊“Get Details”獲取安裝的驅(qū)動器和數(shù)據(jù)路徑。
在下一步中,選擇數(shù)據(jù)源服務(wù)。
接下來,選擇目的為“Azure IoT Hub”,并復(fù)制在第一步中創(chuàng)建IoT設(shè)備后的主連接字符串,填到設(shè)備連接字符串,在傳輸協(xié)議中選擇“MQTT”。
拉到底端,選擇配置端,建議選擇Historian配置,并輸入Historian服務(wù)器的用戶名密碼。
最后一步,選擇默認(rèn)本地系統(tǒng)服務(wù)運(yùn)行,并點(diǎn)擊添加,添加成功后,新添加的采集器將自動運(yùn)行。
在Historian管理客戶端中為采集器添加標(biāo)簽。
最后,可以在VSCode的輸出窗口看到數(shù)據(jù)正常刷新,至此,Historian通過采集器發(fā)布到Azure IoT Hub測試完成。
物聯(lián)網(wǎng)IoT正在影響著我們的生活,無論是共享單車還是工業(yè)領(lǐng)域的應(yīng)用,都在隨著技術(shù)的進(jìn)步和數(shù)據(jù)應(yīng)用需求的增強(qiáng),一步步走進(jìn)我們工作生活的每個領(lǐng)域。
GE作為IIoT的提出者和倡導(dǎo)者,針對工業(yè)領(lǐng)域的特點(diǎn),能夠提供從設(shè)備到業(yè)務(wù)的完整解決方案。
如果大家對GE的解決方案,GE的Proficy Historian或者GE Digital的其它軟件產(chǎn)品感興趣,或者需要我們提供哪些技術(shù)分享,歡迎隨時與GE Digital聯(lián)系。
提交
Proficy軟件亮相國際智能制造論壇,以工業(yè)數(shù)據(jù)為核心賦能企業(yè)提高生產(chǎn)力
MQTT與OPC UA的物聯(lián)網(wǎng)對話
GE數(shù)字集團(tuán)的Proficy Historian 2023
預(yù)見智能制造,GE Digital亮相2023第十七屆北京國際工業(yè)自動化展覽會
GE Digital云端制造執(zhí)行系統(tǒng)(MES)可降低30%的總擁有成本