国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于MQTT協(xié)議的工控組態(tài)軟件Web發(fā)布系統(tǒng)的設(shè)計(jì)

2021-03-09 09:41:46謝艷肖金鳳賈磊
新型工業(yè)化 2021年1期
關(guān)鍵詞:代理服務(wù)器工控觸摸屏

謝艷,肖金鳳,賈磊

(南華大學(xué)電氣工程學(xué)院,湖南 衡陽 421000)

0 引言

工控組態(tài)軟件,用來采集工業(yè)現(xiàn)場關(guān)鍵位置的數(shù)據(jù)并能夠控制其值變化的專用軟件。在現(xiàn)代工業(yè)領(lǐng)域,利用組態(tài)軟件對各種儀表、控制器進(jìn)行遠(yuǎn)程管理已經(jīng)成為一種普遍現(xiàn)象[1]。因?yàn)楣I(yè)現(xiàn)場大部分都比較復(fù)雜,而且近年來網(wǎng)絡(luò)技術(shù)發(fā)展迅速,考慮數(shù)據(jù)采集和監(jiān)控的方便高效,所以Web發(fā)布系統(tǒng)也成為了工控組態(tài)軟件與時俱進(jìn)的一項(xiàng)必不可少的功能。此系統(tǒng)就是在基礎(chǔ)的組態(tài)軟件上增添Web監(jiān)控功能,將組態(tài)編輯軟件設(shè)計(jì)的監(jiān)控界面轉(zhuǎn)換成網(wǎng)頁的形式,用戶直接通過Internet和瀏覽器就能遠(yuǎn)程對現(xiàn)場進(jìn)行實(shí)時監(jiān)控[2]。所以,一個完整的Web系統(tǒng)的實(shí)現(xiàn),需要用到很多種技術(shù),如Web頁面生成技術(shù)、通訊數(shù)據(jù)傳輸技術(shù)等等。目前,國內(nèi)外對此的研究都不夠成熟,其研究方向主要集中在監(jiān)控界面的生成和實(shí)時數(shù)據(jù)的傳輸。

近年來,MQTT協(xié)議因?yàn)檩p量、開發(fā)使用簡單在物聯(lián)網(wǎng)平臺應(yīng)用普遍,針對目前廣泛使用的嵌入式組態(tài)軟件Web發(fā)布系統(tǒng)實(shí)時性較差、監(jiān)控界面配置復(fù)雜等問題,提出一種基于MQTT協(xié)議的新的工控組態(tài)軟件Web發(fā)布系統(tǒng)解決方案,該方案具實(shí)時性較高、跨平臺、系統(tǒng)維護(hù)升級便利等多項(xiàng)優(yōu)點(diǎn),且在國內(nèi)生產(chǎn)PLC工控組態(tài)軟件中實(shí)現(xiàn)。

1 功能分析與技術(shù)介紹

工控組態(tài)軟件的Web發(fā)布系統(tǒng)由其功能特點(diǎn)主要滿足兩大需求。

(1)遠(yuǎn)程瀏覽器端監(jiān)控界面與工控組態(tài)軟件設(shè)計(jì)的監(jiān)控界面一致。由此就考慮到瀏覽器端監(jiān)控界面的生成方式,需讀取組態(tài)軟件中的畫面,轉(zhuǎn)換格式并能成功嵌入網(wǎng)頁,且畫面中各控件的邏輯變化功能一致。在瀏覽器端生成畫面的方法有以下幾種:①ActiveX技術(shù)雖能完全復(fù)用相同的畫面,但其控件只能基于Windows,不能跨平臺,且運(yùn)行必須安裝ActiveX控件,而控件的開發(fā)維護(hù)復(fù)雜且升級繁瑣;②Applet基于Java,可實(shí)現(xiàn)圖形繪制、人機(jī)交互,但其程序運(yùn)行速度慢,且開發(fā)代碼量大,不易維護(hù);③WPF框架模型比較統(tǒng)一,使用靈活,但需安裝.NET Framework,安裝復(fù)雜且固定平臺;④SliverLight是WPF的輕量版,可跨平臺,但其動態(tài)屬性計(jì)算復(fù)雜,大概率導(dǎo)致延時;⑤SVG是一種矢量圖形標(biāo)準(zhǔn),基于XML,此格式有四大優(yōu)點(diǎn):即跨平臺、可指定對象類型、動態(tài)交互性強(qiáng)和支持DOM。因此,可以將畫面以SVG格式嵌入能在網(wǎng)頁顯示出高清晰度的界面,且具動態(tài)變化,無需安裝特定控件。相比較而言,SVG技術(shù)更適用。

(2)監(jiān)控界面的動態(tài)變化靠實(shí)時數(shù)據(jù)驅(qū)動,這就要求數(shù)據(jù)傳輸?shù)膶?shí)時性盡可能高。數(shù)據(jù)來源是現(xiàn)場的監(jiān)控設(shè)備或者組態(tài)軟件。工業(yè)現(xiàn)場為局域網(wǎng)環(huán)境,客戶端網(wǎng)絡(luò)也大概率為局域網(wǎng),要想實(shí)現(xiàn)遠(yuǎn)程瀏覽器監(jiān)控,則需實(shí)現(xiàn)內(nèi)網(wǎng)穿透,而一般的互聯(lián)網(wǎng)通信的實(shí)時性都比較差。本文通過對現(xiàn)有網(wǎng)絡(luò)通信技術(shù)的研究,決定在以MQTT消息發(fā)布訂閱形式進(jìn)行現(xiàn)場監(jiān)控設(shè)備或組態(tài)軟件與Web服務(wù)器之間的實(shí)時數(shù)據(jù)的傳輸,而Web服務(wù)器與瀏覽器之間則通過WebSocket傳輸。下面介紹關(guān)鍵技術(shù)MQTT及WebSocket。

1.1 MQTT

MQTT(Message Queuing Telemetry Transport,消息隊(duì)列遙測傳輸協(xié)議),是一種基于發(fā)布/訂閱(publish/subscribe)模式的輕量級通訊協(xié)議,構(gòu)建于TCP/IP協(xié)議上,提供可靠、有序與雙向的數(shù)據(jù)傳輸機(jī)制[3]。

MQTT協(xié)議中共有發(fā)布者(Publisher)、代理(Broker)、訂閱者(Subscriber)三種角色,其關(guān)系如圖1所示。

圖1 MQTT協(xié)議原理

Publisher和Subscriber都是客戶端,Publisher同時也可以是Subscriber,Subscriber也可以是另一Topic的Publisher,Broker是MQTT代理服務(wù)器(如mosquitto)。作為客戶端的兩種角色并不需要知道對方是否存在,它們只需要通過IP和端口成功連接上Broker,Broker就能夠?qū)λ械南⑦M(jìn)行篩選,并且根據(jù)各消息的Topic對它們進(jìn)行分發(fā),就可實(shí)現(xiàn)消息的發(fā)布和訂閱[4]。MQTT對傳輸?shù)南⒂腥N服務(wù)類型(QoS):最多一次(QoS0),至少一次(QoS1),只有一次(QoS2),對應(yīng)著消息傳遞時不同的可靠程度。代理服務(wù)器對所有的Topic采用的是二叉樹結(jié)構(gòu)式管理,二叉樹每個節(jié)點(diǎn)的存儲方式為孩子兄弟鏈表法。即代理服務(wù)器將所有的Topic根據(jù)“/”分叉,所有Topic將形成一棵二叉樹,而從主節(jié)點(diǎn)沿樹杈到樹中的任何一節(jié)點(diǎn)即是該節(jié)點(diǎn)的實(shí)際Topic,所以每個節(jié)點(diǎn)都有一個訂閱列表,該訂閱列表中保存了所有訂閱當(dāng)前Topic的客戶端信息。

MQTT協(xié)議能夠以較少的代碼和有限的帶寬為遠(yuǎn)程設(shè)備提供實(shí)時可靠的消息服務(wù)。特別適用于資源有限、帶寬低、延遲大或網(wǎng)絡(luò)環(huán)境不可靠的嵌入式設(shè)備。

1.2 WebSocket

WebSocket協(xié)議是一種通過單個TCP連接進(jìn)行全雙工通信的協(xié)議,應(yīng)用于瀏覽器和服務(wù)器之間,兩者只需要進(jìn)行一次握手,就能夠建立長久的連接,實(shí)現(xiàn)雙向的信息通信。其工作機(jī)制基于訂閱發(fā)布模式。

瀏覽器和服務(wù)器之間傳統(tǒng)的通信是通過AJAX輪詢,即瀏覽器定時向服務(wù)器發(fā)送連接請求,服務(wù)器收到此請求后再返回瀏覽器需要的消息并斷開連接。雖然AJAX實(shí)現(xiàn)較簡單,但對服務(wù)器資源浪費(fèi)比較嚴(yán)重,效率比較低[5]。而WebSocket在最開始握手時利借助HTTP協(xié)議,利用HTTP連接中的Upgrade字段,與服務(wù)端協(xié)商將HTTP協(xié)議升級為WebSocket,服務(wù)器與瀏覽器從而建立長久連接,雙方可主動給對方發(fā)送信息。且其握手?jǐn)?shù)據(jù)包的請求頭只有2個字節(jié),對網(wǎng)絡(luò)帶寬占用較小。圖2顯示了AJAX輪詢和WebSocket兩種方式建立連接的不同。

圖2 AJAX輪詢和WebSocket連接方式

在工業(yè)現(xiàn)場,實(shí)時信息更新較快,發(fā)布系統(tǒng)的數(shù)據(jù)傳輸也更頻繁,因此,瀏覽器和服務(wù)器之間使用WebSocket通信比AJAX輪詢更加有效適用。

2 系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)

2.1 系統(tǒng)架構(gòu)

根據(jù)系統(tǒng)的功能實(shí)現(xiàn)分析,基于組態(tài)軟件的Web發(fā)布系統(tǒng)設(shè)計(jì)主要有組態(tài)軟件、設(shè)備(監(jiān)控終端)、MQTT代理服務(wù)器和監(jiān)控登錄系統(tǒng)四部分,如圖3所示。組態(tài)軟件有兩個功能:(1)實(shí)現(xiàn)監(jiān)控界面的設(shè)計(jì)與編輯;(2)能將界面信息分別轉(zhuǎn)化成可在設(shè)備和瀏覽器端運(yùn)行的文件。設(shè)備是監(jiān)控終端,在工業(yè)現(xiàn)場收集數(shù)據(jù)信息并在監(jiān)控界面顯示。MQTT代理服務(wù)器是發(fā)布系統(tǒng)的信息傳輸中樞,組態(tài)軟件、設(shè)備及監(jiān)控登錄系統(tǒng)通過MQTT協(xié)議連接代理服務(wù)器,進(jìn)行實(shí)時信息轉(zhuǎn)發(fā)。監(jiān)控登錄系統(tǒng)保存遠(yuǎn)程監(jiān)控用戶的用戶信息及運(yùn)行監(jiān)控界面。

圖3 系統(tǒng)架構(gòu)

2.2 界面生成

組態(tài)軟件設(shè)計(jì)監(jiān)控界面的同時,對每個界面元素配置為SVG格式的圖元,整個界面保存為SVG格式的矢量圖文件,Web發(fā)布系統(tǒng)前端網(wǎng)頁收到矢量圖文件解析后嵌入vue,再發(fā)布到網(wǎng)頁顯示。

圖4 瀏覽器端頁面生成

2.3 數(shù)據(jù)傳輸實(shí)現(xiàn)

觸摸屏可以收集控制器數(shù)據(jù),是MQTT的客戶端,MQTT的消息代理服務(wù)器構(gòu)建在阿里云平臺的ECS云服務(wù)器上,開啟觸摸屏打開監(jiān)控畫面的同時,觸摸屏的MQTT模塊通過代理服務(wù)器的IP和端口與代理服務(wù)器建立連接,在觸摸屏上有數(shù)據(jù)變動時,變動數(shù)據(jù)打包后由觸摸屏MQTT客戶端發(fā)送至云代理服務(wù)器中轉(zhuǎn),云服務(wù)器通過其收到數(shù)據(jù)的主題進(jìn)行分類。用戶通過網(wǎng)頁端登錄系統(tǒng),不同位置的觸摸屏其發(fā)送消息的主題不同,用戶登錄系統(tǒng)后通過選擇訂閱想要監(jiān)視的觸摸屏對應(yīng)的主題,進(jìn)入此觸摸屏的監(jiān)視畫面。消息發(fā)布者觸摸屏發(fā)送實(shí)時消息到mosquitto服務(wù)器,mosquitto對主題進(jìn)行分類后再發(fā)布,網(wǎng)頁后臺的Web服務(wù)器作為mosquitto的訂閱者,收到對應(yīng)主題的消息,對消息進(jìn)行解析。網(wǎng)頁前后端通訊通過websocket長連接方式,后端一收到消息主動推送至前端,前端通過改變網(wǎng)頁界面相對應(yīng)的參數(shù),刷新界面。

2.4 系統(tǒng)測試

此系統(tǒng)已在國內(nèi)生產(chǎn)的工控組態(tài)軟件上測試成功。測試環(huán)境為基于Windows操作系統(tǒng)的PC,組態(tài)編輯軟件使用Qt開發(fā),Web服務(wù)器選用Apache,測試瀏覽器采用的是搜狗或谷歌瀏覽器,監(jiān)控登錄系統(tǒng)的前端為Vue框架,后端開發(fā)為Springboot框架,在阿里云上建立linux操作系統(tǒng),采用mosquitto作為MQTT的代理服務(wù)器,監(jiān)控設(shè)備為觸摸屏。組態(tài)編輯軟件(仿真時)或觸摸屏運(yùn)行時通過MQTT發(fā)布消息,不同監(jiān)控地點(diǎn)的發(fā)布消息的主題不同,mosquitto代理服務(wù)器訂閱多個主題,在瀏覽器端登錄監(jiān)控系統(tǒng)后,根據(jù)想監(jiān)控的具體觸摸屏發(fā)布的主題進(jìn)行選擇訂閱,網(wǎng)頁監(jiān)控界面根據(jù)此主題的消息實(shí)時更新界面。監(jiān)控界面中用到文本、編輯框、按鈕、數(shù)據(jù)歷史趨勢圖、表格等元素,運(yùn)行效果如圖5所示,根據(jù)監(jiān)控界面的復(fù)雜程度,與現(xiàn)場監(jiān)控設(shè)備比,其實(shí)時界面刷新延遲在1s左右。

圖5 瀏覽器端數(shù)據(jù)監(jiān)控界面效果

3 結(jié)論

本文以MQTT協(xié)議為主要實(shí)時數(shù)據(jù)傳輸方式,以SVG為監(jiān)控界面生成方式,實(shí)現(xiàn)的工控組態(tài)軟件的Web發(fā)布系統(tǒng),可以實(shí)現(xiàn)互聯(lián)網(wǎng)方式的消息傳輸,且具有實(shí)時性較高、跨平臺、系統(tǒng)維護(hù)升級便利等多項(xiàng)優(yōu)點(diǎn),滿足了國內(nèi)生產(chǎn)的PLC工控組態(tài)軟件Web發(fā)布系統(tǒng)在工程中的要求。未來組態(tài)軟件的發(fā)展方向應(yīng)該是直接基于瀏覽器開發(fā)組態(tài)編輯工具,監(jiān)控界面可直接在瀏覽器上設(shè)計(jì)和編輯,使監(jiān)控管理工作更加便利。

猜你喜歡
代理服務(wù)器工控觸摸屏
PLC和觸摸屏在衛(wèi)生間控制系統(tǒng)的應(yīng)用
地鐵信號系統(tǒng)中代理服務(wù)器的設(shè)計(jì)與實(shí)現(xiàn)
皮膚“長”出觸摸屏
IP地址隱藏器
工控速派 一個工控技術(shù)服務(wù)的江湖
工控速浱 一個工控技術(shù)服務(wù)的江湖
熱點(diǎn)追蹤 工控安全低調(diào)而不失重要
基于攻擊圖的工控系統(tǒng)脆弱性量化方法
投射式多點(diǎn)觸控電容觸摸屏
河南科技(2014年12期)2014-02-27 14:10:32
觸摸屏項(xiàng)目移植在自動化系統(tǒng)升級中的應(yīng)用
隆尧县| 乌鲁木齐市| 旬阳县| 房产| 富民县| 安乡县| 兴城市| 虞城县| 兴义市| 新乐市| 三明市| 什邡市| 新竹县| 建湖县| 安溪县| 临沂市| 蓬莱市| 龙川县| 连州市| 泸溪县| 宁陵县| 龙南县| 青冈县| 怀仁县| 申扎县| 合川市| 苍南县| 巴彦县| 简阳市| 神池县| 荔浦县| 普洱| 湖北省| 嘉峪关市| 荆门市| 轮台县| 绥棱县| 景德镇市| 陕西省| 渭源县| 石林|