• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于Qt的礦用自卸車HMI軟件設(shè)計(jì)與開發(fā)

      2019-11-14 08:17梁智勇崔嵐穆巖巖趙貝
      軟件 2019年9期

      梁智勇 崔嵐 穆巖巖 趙貝

      摘 ?要: 為了實(shí)現(xiàn)礦用自卸車信息的實(shí)時(shí)顯示和人機(jī)交互功能,設(shè)計(jì)并開發(fā)了基于Qt構(gòu)架的HMI軟件。軟件開發(fā)以ARM9為硬件基礎(chǔ),搭建了Ubuntu+Qt的開發(fā)平臺(tái),在提出界面功能概述和拓?fù)浣Y(jié)構(gòu)的基礎(chǔ)上,采用了基于界面基類、主框架界面和信號(hào)與槽的開發(fā)技術(shù),實(shí)現(xiàn)了各界面的構(gòu)建、切換、實(shí)時(shí)數(shù)據(jù)采集、故障記錄和信號(hào)標(biāo)定等功能。實(shí)驗(yàn)結(jié)果表明,HMI軟件運(yùn)行穩(wěn)定、功能完善、交互友好,滿足設(shè)計(jì)要求。

      關(guān)鍵詞礦用自卸車;HMI;ARM9;Ubuntu;Qt

      中圖分類號(hào): TP311.1????文獻(xiàn)標(biāo)識(shí)碼ADOI:10.3969/j.issn.1003-6970.2019.09.024

      本文著錄格式:梁智勇,崔嵐,穆巖巖,等. 基于Qt的礦用自卸車HMI軟件設(shè)計(jì)與開發(fā)[J]. 軟件,2019,40(9):101-104

      Design and Development of HMI Software for Mine Dump Truck Based on Qt

      LIANG Zhi-yong, CUI Lan, MU Yan-yan, ZHAO Bei

      Research Institute of Datong Electric Locomotive Co., Ltd of CRRC, Microcomputer Network Control Laboratory, Shanxi Datong 037038,China

      Abstract: In order to realize the function of real-time?display and human-computer interaction of mining dump truck, designed and developed the HMI software based on Qt framework. Development of software was based on ARM9, established the platform based on Ubuntu and Qt, on the basis of?proposing the overview of interface function and topological structure, using the development technology based on interface of base class, interface of main frame, signal and slot, achieved the function?of construction of each interface, change, real-time data acquisition, fault record and calibration of signal. The experimental results show that: HMI software run stably, had perfect functions and friendly interaction, meeting the design requirements.

      Key words: Mining dump truck; Human machine interface; ARM9; Ubuntu; Qt

      0??引言

      交流電傳動(dòng)礦用自卸車廣泛應(yīng)于礦山和能源等領(lǐng)域,與普通自卸車相比,礦用自卸車具有耐用性強(qiáng)、載重量大、適用于各種礦區(qū)和復(fù)雜工況地面條件運(yùn)輸?shù)葍?yōu)點(diǎn)[1-2]。

      隨著整車控制系統(tǒng)的應(yīng)用,礦用自卸車的模塊化和自動(dòng)化程度進(jìn)一步提高[3],但伴隨而來的是礦用自卸車系統(tǒng)各部件信息和故障不能方便及時(shí)地反饋給司機(jī),因此為了實(shí)現(xiàn)對(duì)整車控制系統(tǒng)的實(shí)時(shí)監(jiān)控,人機(jī)交互界面(HMI)功能的現(xiàn)實(shí)就顯得特別 重要。

      通過人機(jī)交互界面,司機(jī)可以很方便地掌握礦車運(yùn)行狀態(tài)的信息,并對(duì)礦車各部件反饋的信息和數(shù)據(jù)進(jìn)行實(shí)時(shí)監(jiān)控。通過分析HMI顯示屏的實(shí)時(shí)故障和記錄的歷史故障,可以有針對(duì)性地解決礦車運(yùn)行時(shí)遇到的各類問題。司機(jī)還可以通過HMI顯示屏界面向礦車控制系統(tǒng)發(fā)送信息,從而完成礦車參數(shù)設(shè)置和信號(hào)標(biāo)定等工作。因此,人機(jī)交互界面的實(shí)現(xiàn)對(duì)礦車信息監(jiān)控、故障的分析和處理以及整車運(yùn)行的穩(wěn)定性都有重要的意義。

      鑒于人機(jī)交互界面對(duì)整車運(yùn)行的重要意義,本文在ARM硬件平臺(tái)的基礎(chǔ)上,開發(fā)了一種基于Qt的礦用自卸車人機(jī)交互界面軟件,這為礦用自卸車安全運(yùn)行提供了保障。

      1??硬件平臺(tái)介紹

      硬件平臺(tái)選用基于ARM9處理器的電路開發(fā)板。ARM板帶有CAN通訊模塊和液晶顯示屏,CAN通訊模塊基于MCP2515和MCP2551芯片設(shè)計(jì)[4],液晶顯示屏尺寸為10.4英尺,分辨率為800*600,通過LCD接口與電路板相連。

      Qt應(yīng)用程序可通過電路板的IF卡槽或USB接口拷貝至ARM板linux系統(tǒng)中運(yùn)行。

      為實(shí)現(xiàn)在ARM板linux系統(tǒng)中運(yùn)行Qt應(yīng)用程序,需要通過Busybox制作帶有QtE的文件系統(tǒng),制作完成后將其燒寫進(jìn)ARM板并修改系統(tǒng)的環(huán)境變量[5]。

      2??軟件開發(fā)環(huán)境

      2.1開發(fā)環(huán)境的特點(diǎn)

      軟件開發(fā)采用基于Ubuntu-Kylin操作系統(tǒng)的Qt Creator軟件。

      Ubuntu-Kylin系統(tǒng)是Ubuntu系統(tǒng)的衍生版,具有應(yīng)用廣泛、系統(tǒng)穩(wěn)定、發(fā)展成熟和可移植性強(qiáng)等優(yōu)點(diǎn)[6],此外,其符合中國(guó)用戶的定制功能會(huì)大大提高編程的效率。

      Qt是Trolltech公司開發(fā)的跨平臺(tái)C++圖形用戶界面應(yīng)用程序的開發(fā)框架,有著“一次編寫,到處編譯”的美譽(yù),Qt Creator則是一款基于Qt框架用于開發(fā)GUI應(yīng)用程序的集成開發(fā)環(huán)境。Qt Creator獨(dú)特的元對(duì)象系統(tǒng)支持信號(hào)與槽機(jī)制,這一特性使得程序中各對(duì)象之間的協(xié)同工作變得十分簡(jiǎn)單,其豐富的API、類庫和大量實(shí)例為UI界面的設(shè)計(jì)提供了思路和幫助[7]。

      2.2軟件平臺(tái)的搭建

      為了實(shí)現(xiàn)程序的可移植性,Qt Creator需要安裝Qt/x86和Qt/Embedded,Qt/x86用于程序的本地機(jī)編譯運(yùn)行,Qt/Embedded用于交叉編譯,平臺(tái)的搭建步驟如下:

      (1)下載Qt4源代碼,編寫Qt4編譯腳本,運(yùn)行腳本后編譯出Qt/x86和Qt/Embedded;

      (2)軟件采用交叉編譯的方式,因此將ARM編譯器復(fù)制到Ubuntu-Kylin系統(tǒng)某一目錄下,并在系統(tǒng)環(huán)境變量中添加ARM編譯器路徑[8];

      (3)在PC機(jī)中安裝Qt Creator,并通過設(shè)置本地編譯器、交叉編譯器路徑以及對(duì)應(yīng)的Qt版本,完成兩種構(gòu)建套件(kit)的配置;

      在Qt應(yīng)用程序源代碼編寫完成后,可通過選擇Qt/x86版本進(jìn)行本地機(jī)編譯,通過選擇Qt/Embedded版本進(jìn)行交叉編譯,交叉編譯后的文件可直接運(yùn)行在ARM板系統(tǒng)中。

      3??軟件設(shè)計(jì)

      3.1?HMI軟件功能概述

      軟件主要功能包括:整車數(shù)據(jù)顯示功能、實(shí)時(shí)故障顯示功能、人機(jī)交互功能和歷史故障記錄功能,如圖1所示。

      軟件對(duì)礦用自卸車的電傳系統(tǒng)、液壓系統(tǒng)、柴油機(jī)系統(tǒng)和網(wǎng)絡(luò)狀態(tài)進(jìn)行實(shí)時(shí)監(jiān)控,并將相關(guān)數(shù)據(jù)顯示在界面中。

      為保證司機(jī)能在第一時(shí)間發(fā)現(xiàn)并處理故障,軟件通過界面實(shí)時(shí)顯示DCU、ACU、MCU1/2和柴油機(jī)的相關(guān)故障,并通過點(diǎn)擊故障條可以彈出相應(yīng)故障的解決方法。HMI軟件將監(jiān)測(cè)到的實(shí)時(shí)故障通過數(shù)據(jù)流的形式保存在dat文件中,便于線下故障的分析和處理。

      司機(jī)通過顯示屏觸屏操作,可以向礦車控制系統(tǒng)發(fā)送信息,完成礦車參數(shù)的設(shè)定和信號(hào)的標(biāo)定工作。設(shè)定的參數(shù)包括前進(jìn)/后退車速限值、車號(hào)和日期/時(shí)間值等,信號(hào)的標(biāo)定工作發(fā)生在礦車首次調(diào)試、檢修維護(hù)和更換硬件后,主要包括油門踏板電壓值、制動(dòng)踏板電壓值和恒速旋鈕電壓值,目的是為了矯正信號(hào),使設(shè)定的值和硬件相匹配。

      3.2 HMI軟件構(gòu)架設(shè)計(jì)

      為實(shí)現(xiàn)軟件的各項(xiàng)功能,提出如圖2所示的軟件構(gòu)架。構(gòu)架包括主界面、網(wǎng)絡(luò)拓?fù)浣缑?、礦車各系統(tǒng)信息顯示界面、礦車參數(shù)設(shè)置界面、信號(hào)標(biāo)定界面、實(shí)時(shí)故障界面和歷史故障界面。

      為避免誤操作,對(duì)礦車參數(shù)設(shè)置和信號(hào)標(biāo)定界面設(shè)置了密碼保護(hù)。狀態(tài)條界面顯示礦車網(wǎng)絡(luò)系統(tǒng)中各個(gè)部件的生命狀態(tài)和液壓起重的狀態(tài)信號(hào),該界面只在特定的幾個(gè)界面中配合顯示。

      3.3主框架界面布局設(shè)計(jì)

      為保證軟件構(gòu)架中各界面能夠正常顯示和切換,需要在軟件設(shè)計(jì)時(shí)加入主框架界面,所有界面和窗口部件均布置在主框架界面上。

      主框架界面布局如圖3所示,標(biāo)題欄構(gòu)建于主框架界面的頂部,導(dǎo)航欄構(gòu)建于主框架界面的兩側(cè)和底部,軟件構(gòu)架中的各界面構(gòu)建于主框架界面的中部,中部各界面通過導(dǎo)航欄中的按鍵進(jìn)行切換。

      主框架界面左側(cè)導(dǎo)航欄控制主界面、網(wǎng)絡(luò)拓?fù)浣缑婧筒裼蜋C(jī)系統(tǒng)界面的切換。右側(cè)導(dǎo)航欄控制電傳系統(tǒng)界面、液壓系統(tǒng)界面和參數(shù)設(shè)置界面的切換。底部導(dǎo)航欄控制實(shí)時(shí)故障界面、歷史故障界面、信號(hào)標(biāo)定界面、車速設(shè)置界面和軟件版本界面的切換。

      3.4軟件流程設(shè)計(jì)

      軟件程序按照?qǐng)D4所示流程進(jìn)行設(shè)計(jì)。程序開始執(zhí)行后,開機(jī)界面顯示3s后隱藏,程序開始構(gòu)建主框架界面MainWidget。在MainWidget中完成各組成界面的構(gòu)建,設(shè)置主界面初始狀態(tài)為顯示,其余界面均為隱藏。當(dāng)各導(dǎo)航欄按鍵觸發(fā)切換界面的信號(hào)時(shí),程序會(huì)根據(jù)信號(hào)與槽的機(jī)制將中間界面進(jìn)行切換。

      MainWidget構(gòu)建時(shí)添加HMI內(nèi)部數(shù)據(jù)庫DataBase和通訊類NetCAN。構(gòu)建DataBase可以定義并初始化界面顯示所需的全部變量,構(gòu)建NetCAN可以完成通訊端口的配置、初始化以及應(yīng)用層數(shù)據(jù)協(xié)議解析等工作。

      此外,MainWidget會(huì)構(gòu)建定時(shí)器和刷新函數(shù),刷新函數(shù)每1s執(zhí)行一次NetCAN的同步函數(shù)synchronize(),從而完成CAN總線數(shù)據(jù)的實(shí)時(shí)捕獲和數(shù)據(jù)解析,解析完成后將相應(yīng)的數(shù)據(jù)賦值給DataBase的各成員變量,最后根據(jù)每個(gè)界面和DataBase的對(duì)應(yīng)關(guān)系,完成各界面數(shù)據(jù)的刷新。

      3.5軟件關(guān)鍵技術(shù)介紹

      軟件程序設(shè)計(jì)時(shí),主要存在以下關(guān)鍵技術(shù)。

      3.5.1 ?界面基類的編寫

      軟件構(gòu)架中的各界面均繼承自界面基類,該基類使各界面具備以下功能:

      (1)使用元對(duì)象系統(tǒng)的一些特性,如信號(hào)與槽機(jī)制[9];

      (2)使用基類中包含的各類控件,避免在每個(gè)界面中反復(fù)聲明;

      (3)可以調(diào)用定位子函數(shù),在主框架界面構(gòu)建時(shí)快速定義各界面的位置。

      3.5.2 ?界面切換的實(shí)現(xiàn)

      當(dāng)點(diǎn)擊各導(dǎo)航欄中的按鍵時(shí),按鍵發(fā)出的信號(hào)會(huì)觸發(fā)導(dǎo)航欄來執(zhí)行界面切換函數(shù),并在界面切換函數(shù)中執(zhí)行ChangePage(int)函數(shù)。

      ChangePage(int)是在基類中定義的信號(hào)函數(shù),該函數(shù)觸發(fā)后向其父類傳送信號(hào),代碼如圖5所示。導(dǎo)航欄顯然也繼承了該特性,導(dǎo)航欄的父類是主框架界面,因此導(dǎo)航欄的按鍵觸發(fā)將使主框架界面接收信號(hào)并執(zhí)行槽函數(shù)SwitchPage(int)。

      在槽函數(shù)SwitchPage(int)中,以當(dāng)前傳遞的信號(hào)值為篩選條件,通過遍歷包含各界面的容器類QMap實(shí)現(xiàn)在主框架界面中各界面的切換功能。

      3.5.3 ?通訊類中同步函數(shù)的設(shè)計(jì)

      同步函數(shù)的作用是根據(jù)數(shù)據(jù)協(xié)議對(duì)接收到的字節(jié)流進(jìn)行有效數(shù)據(jù)解析。

      本項(xiàng)目規(guī)定有效數(shù)據(jù)以$字符開頭,以N字符結(jié)束,第2~4個(gè)字符表示設(shè)備ID,ID后面有效數(shù)據(jù)之間以逗號(hào)分隔。

      同步函數(shù)在讀取到字節(jié)流后,首先通過$字符判定是否為有效數(shù)據(jù),然后再讀取前四個(gè)字節(jié)以確定數(shù)據(jù)的來源,并通過逗號(hào)分隔和條件選擇將數(shù)據(jù)解析。

      3.5.4 ?歷史故障界面的編寫

      在MySQL平臺(tái)編寫故障數(shù)據(jù)庫,庫表中將故障代碼作為主鍵,將故障描述作為外鍵[10]。在Qt Creator以外的DBMS編寫故障數(shù)據(jù)庫的好處是:當(dāng)故障信息發(fā)生變化時(shí),無需修改程序,只需通過網(wǎng)線對(duì)ARM板系統(tǒng)服務(wù)器庫表進(jìn)行相關(guān)更新即可。

      程序運(yùn)行時(shí)將首先讀取服務(wù)器故障數(shù)據(jù)庫,在更新程序中的故障容器后,會(huì)根據(jù)同步解析獲得的故障信息以遍歷的方式將相關(guān)故障顯示到顯示屏,并通過數(shù)據(jù)流的方式將故障寫入到文件。顯示屏下次開機(jī)時(shí)程序會(huì)自動(dòng)讀取該文件,從而完成歷史故障的記錄和顯示。

      4??實(shí)驗(yàn)驗(yàn)證

      程序編譯無誤后,在實(shí)驗(yàn)室ARM平臺(tái)對(duì)界面程序進(jìn)行了實(shí)驗(yàn)。

      通過TF卡或U盤將交叉編譯后的可執(zhí)行文件拷貝至ARM板系統(tǒng)目錄下,修改文件權(quán)限和開機(jī)腳本,重啟顯示屏,然后對(duì)以下工作進(jìn)行測(cè)試:點(diǎn)擊按鍵驗(yàn)證界面切換功能是否正常;校驗(yàn)故障顯示和記錄功能;點(diǎn)擊各交互按鍵,通過監(jiān)控CAN總線數(shù)據(jù)流判定交互功能是否正常;改變總線數(shù)據(jù),查看界面數(shù)據(jù)刷新是否正確,如圖6所示。

      實(shí)驗(yàn)結(jié)果表明:設(shè)計(jì)的軟件界面運(yùn)行良好,滿足設(shè)計(jì)需求,實(shí)現(xiàn)了各項(xiàng)功能。

      5??結(jié)論

      本文設(shè)計(jì)了一套運(yùn)行穩(wěn)定、功能完善、界面友好的HMI軟件。軟件開發(fā)以ARM9電路板作為硬件平臺(tái),成功搭建了基于Ubuntu+Qt的軟件開發(fā)環(huán)境,實(shí)現(xiàn)在Qt Creator軟件下的宿主機(jī)編譯和目標(biāo)機(jī)交叉編譯,使交叉編譯后的程序可以直接運(yùn)行在ARM板系統(tǒng)中。

      為實(shí)現(xiàn)軟件提出的各項(xiàng)功能,設(shè)計(jì)了軟件的整體構(gòu)架,完成了主框架界面的布局,總結(jié)出軟件的各項(xiàng)流程,在此基礎(chǔ)上,編寫出軟件的各部分程序。此外,本文對(duì)程序中的關(guān)鍵技術(shù)進(jìn)行了介紹,總結(jié)出界面基類、通訊類、界面切換和歷史故障界面的編寫方法,這為程序功能的完整性奠定了技術(shù)基礎(chǔ)。

      軟件在實(shí)驗(yàn)室ARM硬件平臺(tái)進(jìn)行了測(cè)試,結(jié)果表明滿足各項(xiàng)設(shè)計(jì)要求,這為礦用自卸車提供了一套可行性較強(qiáng)的人機(jī)交互界面,也為國(guó)內(nèi)礦車顯示屏界面的設(shè)計(jì)提供了思路。

      參考文獻(xiàn)

      [1]?王領(lǐng), 樊慶琢, 宮站偉. 礦用自卸車發(fā)展歷程與技術(shù)升級(jí)路徑[J]. 工程機(jī)械與維修, 2015(7): 62-64.

      [2]?馮慶東, 帥健, 許葵, 等. 礦用汽車的國(guó)內(nèi)外現(xiàn)狀[J].?煤礦機(jī)械, 2011,?32(10): 3-5.

      [3]?任伯濤. 礦用電動(dòng)輪自卸車的電氣系統(tǒng)設(shè)計(jì)[J]. 南方農(nóng)機(jī), 2017,?48(8): 39-40.

      [4]?孫龍, 劉暉虎. 基于MCP2515的CAN總線控制軟件的設(shè)計(jì)與實(shí)現(xiàn)[J].?現(xiàn)代信息科技, 2018,?2(7): 4-8.

      [5]?甄海濤, 聶洪淼, 陳慶文. 基于嵌入式Linux的根文件系統(tǒng)制作與移植[J].?自動(dòng)化技術(shù)與應(yīng)用, 2014,?33(12): 21-24.

      [6]?張金石. Ubuntu Linux操作系統(tǒng)[M].?北京: 人民郵電出版社, 2016.

      [7]?霍亞飛. Qt Creator開發(fā)實(shí)戰(zhàn)精解[M].?北京: 北京航空航天大學(xué)出版社, 2012.

      [8]?張歡慶, 高麗, 宋承祥. 基于ARM的嵌入式Linux交叉編譯環(huán)境的研究與實(shí)現(xiàn)[J].?計(jì)算機(jī)與數(shù)字工程, 2012,?40(2): 151-153.

      [9]?金繁, 崔培雷. 嵌入式Qt中信號(hào)與槽機(jī)制的研究[J].?電子設(shè)計(jì)工程, 2014,?22(24): 168-170.

      [10]?貝爾. 深入理解MySQL[M].?北京: 人民郵電出版社, 2010.

      定西市| 丘北县| 饶阳县| 宜兰县| 太白县| 株洲县| 株洲市| 德州市| 孟州市| 浪卡子县| 修文县| 乐平市| 马鞍山市| 德兴市| 伊吾县| 鞍山市| 南溪县| 威海市| 滨海县| 华蓥市| 莱芜市| 仁怀市| 闽清县| 浏阳市| 青海省| 汉沽区| 凤翔县| 旬邑县| 麻江县| 桃园县| 岑巩县| 平南县| 富民县| 新化县| 潮州市| 千阳县| 宿松县| 屯昌县| 漳州市| 自治县| 囊谦县|