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

?

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

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

梁智勇 崔嵐 穆巖巖 趙貝

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

關鍵詞礦用自卸車;HMI;ARM9;Ubuntu;Qt

中圖分類號: TP311.1????文獻標識碼ADOI:10.3969/j.issn.1003-6970.2019.09.024

本文著錄格式:梁智勇,崔嵐,穆巖巖,等. 基于Qt的礦用自卸車HMI軟件設計與開發(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??引言

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

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

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

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

1??硬件平臺介紹

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

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

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

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

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

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

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

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

2.2軟件平臺的搭建

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

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

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

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

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

3??軟件設計

3.1?HMI軟件功能概述

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

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

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

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

3.2 HMI軟件構架設計

為實現(xiàn)軟件的各項功能,提出如圖2所示的軟件構架。構架包括主界面、網絡拓撲界面、礦車各系統(tǒng)信息顯示界面、礦車參數(shù)設置界面、信號標定界面、實時故障界面和歷史故障界面。

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

3.3主框架界面布局設計

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

主框架界面布局如圖3所示,標題欄構建于主框架界面的頂部,導航欄構建于主框架界面的兩側和底部,軟件構架中的各界面構建于主框架界面的中部,中部各界面通過導航欄中的按鍵進行切換。

主框架界面左側導航欄控制主界面、網絡拓撲界面和柴油機系統(tǒng)界面的切換。右側導航欄控制電傳系統(tǒng)界面、液壓系統(tǒng)界面和參數(shù)設置界面的切換。底部導航欄控制實時故障界面、歷史故障界面、信號標定界面、車速設置界面和軟件版本界面的切換。

3.4軟件流程設計

軟件程序按照圖4所示流程進行設計。程序開始執(zhí)行后,開機界面顯示3s后隱藏,程序開始構建主框架界面MainWidget。在MainWidget中完成各組成界面的構建,設置主界面初始狀態(tài)為顯示,其余界面均為隱藏。當各導航欄按鍵觸發(fā)切換界面的信號時,程序會根據信號與槽的機制將中間界面進行切換。

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

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

3.5軟件關鍵技術介紹

軟件程序設計時,主要存在以下關鍵技術。

3.5.1 ?界面基類的編寫

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

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

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

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

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

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

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

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

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

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

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

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

3.5.4 ?歷史故障界面的編寫

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

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

4??實驗驗證

程序編譯無誤后,在實驗室ARM平臺對界面程序進行了實驗。

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

實驗結果表明:設計的軟件界面運行良好,滿足設計需求,實現(xiàn)了各項功能。

5??結論

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

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

軟件在實驗室ARM硬件平臺進行了測試,結果表明滿足各項設計要求,這為礦用自卸車提供了一套可行性較強的人機交互界面,也為國內礦車顯示屏界面的設計提供了思路。

參考文獻

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

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

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

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

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

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

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

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

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

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

大田县| 仙游县| 西乌珠穆沁旗| 乌拉特中旗| 华容县| 英吉沙县| 铁岭县| 涡阳县| 台湾省| 江门市| 平陆县| 巫山县| 大悟县| 拜泉县| 保靖县| 渭源县| 沁阳市| 桂林市| 香格里拉县| 乌什县| 延边| 旬阳县| 新巴尔虎左旗| 昌图县| 江城| 永和县| 浦江县| 望城县| 永兴县| 阿鲁科尔沁旗| 峨山| 广汉市| 兴业县| 大丰市| 阳春市| 丰台区| 湘潭市| 崇文区| 喀喇沁旗| 历史| 米泉市|