亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        一種基于Qt的遠程監(jiān)控系統(tǒng)的設(shè)計

        2020-08-04 10:43:36湯春球莫易敏蔣亞華
        數(shù)字制造科學(xué) 2020年2期
        關(guān)鍵詞:安卓上位車間

        湯春球,王 達,莫易敏,韓 輝,蔣亞華

        (武漢理工大學(xué) 機電工程學(xué)院,湖北 武漢 430070)

        在國內(nèi)大多數(shù)企業(yè)中,生產(chǎn)線設(shè)備信息化集成度并不高,車間各個設(shè)備單元多為獨立個體,信息交互比較少,設(shè)備故障信息及工作狀態(tài)信息缺乏相應(yīng)的監(jiān)控。智能手機作為一種通用的通信工具,具有小巧,便攜,可隨時無線接入互聯(lián)網(wǎng)的特點。采用智能手機作為終端,設(shè)計一種移動遠程監(jiān)控系統(tǒng),使得操作人員可隨時隨地通過手機連接WIFI進行遠程監(jiān)控,方便工廠生產(chǎn)人員對車間內(nèi)充電加熱設(shè)備的工作狀況及運行情況實現(xiàn)有效實時監(jiān)管,提升車間工作效率。

        1 Qt開發(fā)平臺

        Qt是基于C++跨平臺的UI和應(yīng)用軟件開發(fā)框架[1],使用特殊的代碼生成擴展(稱其為源對象編譯器)以及一些宏。Qt擁有良好的擴展功能,當(dāng)Qt自帶控件功能無法滿足使用要求時,可重寫其方法,實現(xiàn)自定義功能。Qt集成Qt Designer工具,可方便程序編寫者設(shè)計美觀易用的界面。Qt具有優(yōu)秀的跨平臺特性,可支持Windows、Linux、Mac OS X、Android、iOS、Windows Phone和嵌入式系統(tǒng)。

        車間設(shè)備監(jiān)控系統(tǒng)通過Qt開發(fā)桌面程序,移動監(jiān)控終端為安卓APP。利用Qt良好的擴展功能,設(shè)計自定義控件進行添加,優(yōu)化程序顯示界面,實現(xiàn)上位機監(jiān)控應(yīng)用程序。通過Qt跨平臺特點,將上位機監(jiān)控程序功能代碼進行修改移植,編譯形成安卓客戶端APP。

        2 系統(tǒng)通信框架設(shè)計

        遠程監(jiān)控體系由車間設(shè)備監(jiān)控系統(tǒng)、移動監(jiān)控終端、服務(wù)器和MySQL數(shù)據(jù)庫組成。車間設(shè)備監(jiān)控系統(tǒng)與下位機采用CAN總線連接,CAN總線采用擴展幀[2]格式,根據(jù)自定義的CAN應(yīng)用層協(xié)議,將獲取的下位機數(shù)據(jù)進行解析。車間設(shè)備監(jiān)控系統(tǒng)通過QMySQL驅(qū)動與MySQL數(shù)據(jù)庫連接,對重要信息進行存儲。服務(wù)器集成在車間設(shè)備監(jiān)控系統(tǒng)中,對解析后的數(shù)據(jù)進行封裝處理,采用UDP通信協(xié)議發(fā)送至以太網(wǎng),監(jiān)控終端通過WIFI連入以太網(wǎng),采用UDP通信協(xié)議獲取數(shù)據(jù),顯示到界面上。不同區(qū)域的車間設(shè)備監(jiān)控系統(tǒng)形成組播,實現(xiàn)設(shè)備數(shù)據(jù)共享,安卓監(jiān)控終端加入組播,獲取實時設(shè)備數(shù)據(jù),主要通信框架如圖1所示。

        圖1 監(jiān)控系統(tǒng)通信框架

        3 監(jiān)控系統(tǒng)總體設(shè)計

        遠程監(jiān)控系統(tǒng)以車間設(shè)備監(jiān)控系統(tǒng)作為上位機,安卓客戶端作為移動終端來實現(xiàn)對車間設(shè)備數(shù)據(jù)傳輸?shù)墓δ?。遠程監(jiān)控系統(tǒng)具備數(shù)據(jù)的存儲、處理和查詢功能。需要上位機服務(wù)器接收下位機數(shù)據(jù), MySQL數(shù)據(jù)庫實現(xiàn)對重要數(shù)據(jù)的管理、存儲。

        3.1 MySQL數(shù)據(jù)庫

        MySQL由于其性能卓越,服務(wù)穩(wěn)定,開放源代碼無版本制約,自主性及使用成本低,體積小,安裝簡單易維護的優(yōu)勢倍受開發(fā)者的青睞[3-4]。

        移動遠程監(jiān)控系統(tǒng)采用MySQL數(shù)據(jù)庫實現(xiàn)設(shè)備信息、計劃信息、操作人員信息和設(shè)備工作信息的存儲。車間設(shè)備監(jiān)控系統(tǒng)通過QMySQL驅(qū)動MySQL數(shù)據(jù)庫,QSqlDatabase與數(shù)據(jù)庫進行連接,QSqlQuery執(zhí)行SQL語句,對數(shù)據(jù)庫內(nèi)容進行增刪改查操作,QSqlRecord將封裝數(shù)據(jù)庫記錄。

        3.2 上位機服務(wù)器設(shè)計

        上位機服務(wù)器作為監(jiān)控系統(tǒng)中數(shù)據(jù)的傳遞者,需要接收CAN總線的數(shù)據(jù),再將數(shù)據(jù)發(fā)送給監(jiān)控終端,同時接收來自監(jiān)控終端的指令,并將控制數(shù)據(jù)傳遞給下位機,實現(xiàn)監(jiān)控終端對下位機設(shè)備的遠程控制。

        由于監(jiān)控終端需對不同區(qū)域設(shè)備進行監(jiān)控,故上位機服務(wù)器通信采用UDP協(xié)議實現(xiàn)傳輸。考慮到設(shè)備量較多,數(shù)據(jù)量較大,為優(yōu)化網(wǎng)絡(luò)性能,減少其他區(qū)域服務(wù)器的負載,服務(wù)器采用組播方式。本區(qū)域上位機監(jiān)控系統(tǒng)服務(wù)器獲取數(shù)據(jù)后,將數(shù)據(jù)進行處理,設(shè)計好數(shù)據(jù)結(jié)構(gòu)后,封裝成數(shù)據(jù)報,往組播地址IP發(fā)送,實現(xiàn)共享本區(qū)域數(shù)據(jù)。也可接受來自其他區(qū)域的數(shù)據(jù),完成跨區(qū)域監(jiān)控。將監(jiān)控終端加入以太網(wǎng)組播地址,即可接收到所有區(qū)域設(shè)備實時數(shù)據(jù)。當(dāng)安卓客戶端需要查詢數(shù)據(jù)庫內(nèi)容時,向服務(wù)器發(fā)出查詢報文,服務(wù)器響應(yīng)后,從數(shù)據(jù)庫中獲取數(shù)據(jù),發(fā)送給監(jiān)控客戶端。設(shè)備實時數(shù)據(jù)中部分數(shù)據(jù)結(jié)構(gòu)如表1所示。

        表1 設(shè)備信息數(shù)據(jù)結(jié)構(gòu)

        4 移動監(jiān)控終端設(shè)計

        在安卓移動遠程監(jiān)控系統(tǒng)中,移動監(jiān)控終端主要是安卓客戶端通過UDP網(wǎng)絡(luò)通信獲取車間設(shè)備監(jiān)控系統(tǒng)的實時設(shè)備數(shù)據(jù)。安卓客戶端作為整個系統(tǒng)手機移動終端部分,由用戶選擇工作區(qū)域,驗證信息登錄后,獲取監(jiān)控權(quán)限,接收并顯示來自網(wǎng)絡(luò)中設(shè)備的數(shù)據(jù),將其顯示在客戶端界面中,具體功能如下:

        (1)工作區(qū)域選擇功能;

        (2)人員信息登錄功能;

        (3)設(shè)備工作參數(shù)實時顯示功能;

        (4)設(shè)備狀態(tài)、故障信息、工作計劃等重要信息的查詢功能;

        (5)遠程控制功能。

        4.1 Qt開發(fā)Android APP的工作機制

        通過Qt開發(fā)安卓APP,應(yīng)該考慮兩個部分[5]。第一個是基于Qt類庫的C/C++程序部分,這個部分是APP實現(xiàn)圖像顯示,數(shù)據(jù)操作以及事件響應(yīng)。第二個部分則是基于Java的Android底層資源調(diào)用API部分,這部分是與Android底層硬件通信和調(diào)用的功能。通過JNI[6](Java Native Interface)實現(xiàn)這兩部分的協(xié)同工作,基于Qt的安卓APP封裝模型如圖2所示。

        圖2 基于Qt的安卓APP封裝模型

        在此模型中,模塊①里,Qt編譯平臺會利用抽象層QPA(Qt Platfrom Abstaction)對所有的操作系統(tǒng)進行統(tǒng)一化支持,使得Qt類庫程序可以運行在其他操作系統(tǒng)中,包括Android平臺;模塊②是Qt中的事件循環(huán)與Android里的事件循環(huán)通過線程發(fā)生交互;模塊③中Qt編寫的安卓程序利用JNI反向調(diào)用Java代碼,實現(xiàn)調(diào)用安卓系統(tǒng)功能,諸如判斷網(wǎng)絡(luò)連接、獲取外部存儲或者緩存文件目錄等。

        4.2 界面設(shè)計

        主界面及子模塊界面均采用C++代碼進行設(shè)計,界面均是基于Qt類庫實現(xiàn),用戶對界面的操作均是轉(zhuǎn)化為事件的形式。當(dāng)用戶在屏幕上按下按鈕、在編輯框輸入數(shù)字,都會發(fā)出一個相應(yīng)的事件。對事件進行響應(yīng)則是通過信號與槽的機制來實現(xiàn)的。信號和槽機制是Qt的核心機制,主要應(yīng)用于對象之間的通信。它是Qt對象間通信的一種機制,也是Qt的核心特性,它替代了回調(diào)函數(shù)。MOC(Meta Object Compiler)是Qt的一種工具,它本質(zhì)上是C++預(yù)處理程式,可在編譯前將擴展語法如宏Q_OBJECT去掉,生成附加代碼,幫助Qt處理信號與槽。

        每個Qt對象均有若干個定義好的信號和槽,當(dāng)對象狀態(tài)發(fā)生變化時(如發(fā)生一個事件),一個信號則被發(fā)送,與信號相關(guān)聯(lián)的槽則會響應(yīng)信號并進行響應(yīng)的處理。當(dāng)一個類被繼承時, 子類將會繼承父類的信號與槽,同時也可根據(jù)需要自定義信號與槽。信號與槽是一個十分強大的組件編程機制[7-8],如圖3所示。

        圖3 信號與槽

        客戶端界面設(shè)計采用樹狀界面??蛻舳私缑姘ǎ汗ぷ鲄^(qū)域選擇界面、登陸界面、主界面、設(shè)備實時信息界面、工作信息界面、用戶界面、故障信息界面以及計劃信息界面??蛻舳瞬僮髁鞒倘鐖D4所示。

        圖4 安卓客戶端操作流程圖

        (1)工作區(qū)域選擇界面。該界面獲取指定區(qū)域設(shè)備工作數(shù)據(jù),方便工作人員從一個監(jiān)控區(qū)域轉(zhuǎn)換到另一個監(jiān)控區(qū)域時,只需切換工作區(qū)域即可實現(xiàn)設(shè)備監(jiān)控切換。

        (2)登錄界面。該界面進行監(jiān)控人員信息驗證。與數(shù)據(jù)庫信息進行驗證,通過后不同人員擁有不同操作權(quán)限,分為操作人員和管理人員權(quán)限,權(quán)限不同客戶端局部功能也不同,驗證失敗則無法獲取監(jiān)控頁面信息。

        (3)主界面。該界面對區(qū)域內(nèi)所有設(shè)備的工作狀態(tài)進行顯示,主要包括設(shè)備工作輸出功率,設(shè)備運行工作狀態(tài)如開機、關(guān)機或故障。方便操作人員能直觀地看到區(qū)域內(nèi)所有設(shè)備的工作狀態(tài)。

        (4)設(shè)備實時信息界面。該界面對區(qū)域內(nèi)每臺設(shè)備具體的輸入輸出工作參數(shù)進行顯示以及設(shè)備工作狀態(tài)、故障狀態(tài)進行實時顯示,工作人員通過查看客戶端上設(shè)備實時工作信息、設(shè)備狀態(tài)即可判斷設(shè)備是否存在故障及故障類型,方便進行高效處理。

        (5)工作信息界面。該界面查看區(qū)域內(nèi)各設(shè)備處于何種工作狀態(tài),以及設(shè)備歷史工作記錄。其中設(shè)備歷史工作記錄包括開機時間,關(guān)機時間以及工作總時長。

        (6)故障信息界面。該界面用于查看設(shè)備故障歷史記錄。其中包括設(shè)備名稱、故障時間、狀態(tài)、故障類型、恢復(fù)類型和恢復(fù)狀態(tài)等。

        (7)計劃信息界面。該界面用于查看計劃任務(wù)信息,管理人員可進行作業(yè)計劃下達。管理人員可對任務(wù)執(zhí)行人員、作業(yè)位置、作業(yè)設(shè)備進行選擇,對具體作業(yè)內(nèi)容進行編輯后進行下達,計劃任務(wù)將存儲于數(shù)據(jù)庫中,現(xiàn)場操作人員根據(jù)計劃執(zhí)行,實現(xiàn)遠程控制功能。

        4.3 UDP通信

        安卓客戶端與上位機服務(wù)器通信采用UDP[9]通信方式,UDP是輕量的、不可靠的、面向數(shù)據(jù)報,無連接的協(xié)議。由于不同上位機之間通過組播方式形成網(wǎng)絡(luò),安卓客戶端則采用加入組播的方式,可獲取其他上位機往組播所發(fā)送的數(shù)據(jù)包。在監(jiān)控不同區(qū)域時,根據(jù)不同區(qū)域IP地址進行選擇性接收,監(jiān)控系統(tǒng)網(wǎng)絡(luò)拓撲圖如圖5所示。

        圖5 監(jiān)控系統(tǒng)網(wǎng)絡(luò)拓撲圖

        在Qt中,采用QUdpSocket類實現(xiàn)UDP通訊。在上位機服務(wù)器端需要實例化一個QUdpSocket對象來創(chuàng)建一個通信套接字,并采用bind()函數(shù)去綁定地址和端口號,來監(jiān)聽指定客戶端的請求,當(dāng)套接字接收到客戶端數(shù)據(jù),則會發(fā)出readyRead()信號,將此信號關(guān)聯(lián),在槽函數(shù)中使用readDatagram()讀取數(shù)據(jù)。進行數(shù)據(jù)反饋時,發(fā)送數(shù)據(jù)采用writeDatagram()函數(shù),指定手機終端IP和端口號進行發(fā)送。

        安卓客戶端同樣需要實例化QUdpSocket[10]對象創(chuàng)建通信套接字,可使用writeDatagram()函數(shù)往組播中發(fā)送數(shù)據(jù)包。同時使用joinMulticastGroup()函數(shù)加入一個多播組,leaveMulticastGroup()函數(shù)離開一個多播組,關(guān)鍵函數(shù)語句如下:

        m_UdpSocket->bind(address,port);

        m_UdpSocket->writeDatagram(data,size,address,port);

        m_UdpSocket->readDatagram(data,size,address,port);

        connect(m_UdpSocket,SIGNAL(readyRead()),this,SLOT(read_data()));

        其中read_data()為自定義函數(shù)。

        5 結(jié)論

        針對傳統(tǒng)工業(yè)車間環(huán)境,通過Qt良好的跨平臺性能,結(jié)合C++編程和互聯(lián)網(wǎng)通信開發(fā)移動監(jiān)控客戶端。移動客戶端基于上位機程序編寫移植,省去二次學(xué)習(xí)Java的時間成本,降低了學(xué)習(xí)成本。同時克服監(jiān)控地點限制,使用戶通過手機即可檢測車間設(shè)備工作狀態(tài),無需再去現(xiàn)場查看設(shè)備信息,提高了工作效率。

        猜你喜歡
        安卓上位車間
        100MW光伏車間自動化改造方案設(shè)計
        智能制造(2021年4期)2021-11-04 08:54:28
        文物表情包
        招工啦
        特斯拉 風(fēng)云之老阿姨上位
        車迷(2018年12期)2018-07-26 00:42:22
        “扶貧車間”拔窮根
        把農(nóng)業(yè)搬進車間
        “三扶”齊上位 決戰(zhàn)必打贏
        一種基于安卓系統(tǒng)的手機側(cè)抓包分析方法
        基于ZigBee和VC上位機的教室智能監(jiān)測管理系統(tǒng)
        以新思路促推現(xiàn)代農(nóng)業(yè)上位
        美女主播福利一区二区| 2021av在线| 激情综合网缴情五月天| 久久精品人妻中文av| 久久aaaa片一区二区| 久久亚洲私人国产精品| 狠狠干视频网站| 久久婷婷国产色一区二区三区| 99re6在线视频精品免费下载| 中文字幕天天躁日日躁狠狠躁免费| 天天综合天天色| 男女啦啦啦视频在线观看| 人妻av有码中文字幕| 精品乱码久久久久久久| 中文字幕少妇AV| 91精品啪在线观看国产色| 久久精品国产亚洲夜色av网站| 国产精品成人国产乱| 国产亚洲高清不卡在线观看 | japanese无码中文字幕| 亚洲中文字幕av一区二区三区人| 美艳善良的丝袜高跟美腿| 一区二区三区av波多野结衣| 亚洲福利视频一区| 亚洲中国美女精品久久久| 亚洲人成在久久综合网站| 精品人妻无码一区二区三区蜜桃一 | 99热久久只有这里是精品| 国产成人高清在线观看视频| 亚洲精品www久久久| 亚洲av日韩aⅴ永久无码| 亚洲av大片在线免费观看| 国产欧美日韩中文久久| 国产成人av一区二区三区在线| 青青草免费激情自拍视频| 蜜臀av毛片一区二区三区| 国产精品无码午夜福利| 久久成人永久免费播放| 日韩av中文字幕波多野九色| 亚洲国产精彩中文乱码av| 全免费a级毛片免费看视频|