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

        ?

        基于Qt的數(shù)控系統(tǒng)測試軟件的設(shè)計與實現(xiàn)

        2016-12-06 08:02:42吳純赟杜少華葛小川
        關(guān)鍵詞:系統(tǒng)

        吳純赟,欒 勇,杜少華,葛小川

        (1.中國科學(xué)院大學(xué),北京 100049;2.中國科學(xué)院沈陽計算技術(shù)研究所 高檔數(shù)控國家工程研究中心,沈陽 110168;3.沈陽高精數(shù)控智能技術(shù)股份有限公司,沈陽 110168)

        ?

        基于Qt的數(shù)控系統(tǒng)測試軟件的設(shè)計與實現(xiàn)

        吳純赟,欒 勇,杜少華,葛小川

        (1.中國科學(xué)院大學(xué),北京 100049;2.中國科學(xué)院沈陽計算技術(shù)研究所 高檔數(shù)控國家工程研究中心,沈陽 110168;3.沈陽高精數(shù)控智能技術(shù)股份有限公司,沈陽 110168)

        數(shù)控系統(tǒng)的測試相比較一般的系統(tǒng)更加復(fù)雜,以往的測試工具存在測試過程復(fù)雜、測試效率低下、可移植性差、用戶交互不理想等缺點。在研究了Linux驅(qū)動及Qt技術(shù)的基礎(chǔ)下設(shè)計并實現(xiàn)了藍天數(shù)控系統(tǒng)的測試驅(qū)動程序以及基于Qt的測試應(yīng)用軟件,完成對數(shù)控系統(tǒng)IO、DA、鍵盤操作站等的測試。軟件具有較高的移植性,可以運行在不同平臺上,測試人員可以自主選擇測試的項目與過程,提高了測試效率,簡化了測試過程,縮短了測試時間。測試軟件在生產(chǎn)車間中投入使用,有效地保障了數(shù)控系統(tǒng)的可靠性。

        數(shù)控系統(tǒng);軟件測試;Qt技術(shù)

        0 引言

        數(shù)控技術(shù)是工業(yè)化過程中發(fā)展國家高新技術(shù)產(chǎn)業(yè)和尖端工業(yè)的重要一環(huán),也是先進制造技術(shù)的核心研究內(nèi)容。數(shù)控系統(tǒng)測試軟件為工業(yè)生產(chǎn)提供了有效保障,目前我國的數(shù)控測試軟件主要采用基于C語言的命令行模式,雖然在功能上能覆蓋常用的模塊,但存在可移植性差、用戶交互性弱、測試過程復(fù)雜等缺點。基于Qt的數(shù)控系統(tǒng)測試軟件正是要解決以上問題,為測試人員提供一個操作簡便、可視化程度高、移植性好的測試環(huán)境。

        在深入理解Linux內(nèi)核以及Qt界面、信號與槽機制的前提下,基于Qt的數(shù)控系統(tǒng)測試軟件重新設(shè)計了GJ303系統(tǒng)的測試驅(qū)動程序,并且使用Qt的UI實現(xiàn)了可視化操作。軟件完成了對IO、DA、鍵盤、操作站等功能模塊的設(shè)計與實現(xiàn),編譯后部署在藍天高精數(shù)控測試生產(chǎn)線上進行實際測試,并記錄測試時間和故障率,從而驗證測試軟件的可行性。

        1 需求說明

        GJ303是新一代開放式普及型數(shù)控系統(tǒng),采用高性能工業(yè)級PC平臺,在工業(yè)生產(chǎn)中已經(jīng)有廣泛的應(yīng)用,生產(chǎn)車間需要在數(shù)控系統(tǒng)出廠前對IO、DA、鍵盤操作站等進行測試,以確保軟硬件的正確性和穩(wěn)定性,為工業(yè)生產(chǎn)提供保障。

        對于IO部分,需要GJ303系統(tǒng)與外接板連接,通過測試程序?qū)O讀寫信號進行測試;DA部分需要程序?qū)A輸出值進行測試;鍵盤和操作站部分需要通過程序?qū)?shù)控系統(tǒng)鍵盤鍵位的有效性及操作站控制的有效性等進行測試。

        從上述可以看出數(shù)控系統(tǒng)的測試存在步驟多、測試過程繁瑣、測試過程掌控不到位等問題。在此背景下,結(jié)合當(dāng)前數(shù)控封裝測試車間的實際應(yīng)用場景,采用Qt技術(shù)[2]實現(xiàn)功能完備、測試過程簡單高效、移植性強、可視化程度高的數(shù)控系統(tǒng)測試軟件。

        2 測試軟件驅(qū)動的設(shè)計與實現(xiàn)

        測試軟件需要對數(shù)控系統(tǒng)的硬件資源進行操控,所以底層需要一套專門的驅(qū)動來配合上層的Qt程序。藍天數(shù)控系統(tǒng)內(nèi)核是基于Linux 2.6系統(tǒng),測試驅(qū)動程序符合一般Linux字符驅(qū)動程序開發(fā)的流程[10]。在整個數(shù)控系統(tǒng)測試軟件中,驅(qū)動程序扮演著承上啟下的作用。

        在Linux2.6內(nèi)核中,使用cdev結(jié)構(gòu)體[11]描述一個字符設(shè)備,cdev結(jié)構(gòu)體的定義描述如下:

        struct cdev {

        struct kobject kobj;//內(nèi)嵌的kobject對象

        struct mouule *owner;//所屬模塊

        struct file_operations *ops;//文件操作

        struct list_head list;

        dev_t dev;//設(shè)備號

        unsigned int count;

        };

        cedv結(jié)構(gòu)體的dev_t成員定義了設(shè)備號,為32位,其中12位主設(shè)備號,20位次設(shè)備號。使用下列宏可以獲得主設(shè)備號和次設(shè)備號:

        MAJOR(dev_t dev)

        MINOR(dev_t dev)

        使用下列宏可以通過主設(shè)備號和次設(shè)備號生成dev_t:

        MKDEV(int major, int minor)

        文件操作file_operations[12]是程序操作設(shè)備的主要結(jié)構(gòu),它的成員在應(yīng)用層中以open(),write(),read(),close()等系統(tǒng)調(diào)用來體現(xiàn)。以上操作在測試軟件中需要進行自定義,以read函數(shù)為例,GJ303系統(tǒng)中需要先設(shè)置偏移找到讀取的起始位置,再根據(jù)傳入的讀取范圍分配內(nèi)核空間內(nèi)存,最后調(diào)用__copy_to_user函數(shù)將需要的數(shù)據(jù)從內(nèi)核空間拷貝到用戶空間。write函數(shù)操作過程類似,只是拷貝數(shù)據(jù)的方向相反。

        上層的應(yīng)用程序在測試過程中需要對機床的各個功能硬件進行命令的收發(fā),通過以上驅(qū)動程序的調(diào)用就可以高效便捷地進行交互。

        3 測試軟件應(yīng)用層的設(shè)計與實現(xiàn)

        3.1 總體架構(gòu)設(shè)計

        測試軟件從結(jié)構(gòu)上分成三層,如圖1所示,用戶界面采用Qt技術(shù)[6]實現(xiàn),底層調(diào)用驅(qū)動測試程序。驅(qū)動程序直接解析用戶界面?zhèn)鱽淼臏y試命令,數(shù)控硬件系統(tǒng)根據(jù)驅(qū)動程序進行相應(yīng)的操作完成測試。

        圖1 系統(tǒng)整體結(jié)構(gòu)

        Qt具有跨平臺以及界面美觀等優(yōu)點,且在嵌入式領(lǐng)域已經(jīng)有廣泛地應(yīng)用,所以本軟件的用戶交互界面全部由Qt來實現(xiàn)。應(yīng)用層的開發(fā)在搭載Ubuntu14.04的PC下完成,測試與部署則在藍天數(shù)控GJ303系統(tǒng)上進行。上圖中數(shù)控系統(tǒng)部分實際還需要用到IO、DA的外接測試板以及外置手輪。

        3.2 事件處理機制

        由于以往的藍天數(shù)控系統(tǒng)測試工具都是基于C語言的命令行格式,測試人員即便測試某個小功能也要掌握所有的命令選項,一步步地進入到測試點。這不僅造成測試過程復(fù)雜,還容易出錯。傳統(tǒng)的程序界面跳轉(zhuǎn)采用順序驅(qū)動,導(dǎo)致邏輯復(fù)雜,跳轉(zhuǎn)代碼與業(yè)務(wù)代碼摻雜在一起,結(jié)構(gòu)混亂,不利于軟件的功能擴展及移植。

        軟件使用Qt實現(xiàn)事件驅(qū)動機制,并抽取測試人員常用的測試選項于頁面供直接使用,很好地解決了以上問題。測試軟件的測試組件由按鈕和命令行組成。按鈕是由事件驅(qū)動的測試路徑,需要通過數(shù)控系統(tǒng)自帶的鍵盤綁定相應(yīng)的事件;命令行則是快捷測試路徑的入口,需要綁定并解析相應(yīng)鍵盤輸入的字符串。為了讓軟件更好地支持與底層硬件通信,提高測試效率,以上測試路徑采用異步[8]的事件通知。異步意味著當(dāng)主線程接受完一個信號后可以繼續(xù)處理業(yè)務(wù)邏輯,不必等待,當(dāng)調(diào)用QApplication::exec()時,就進入了事件循環(huán)隊列[10]。對于按鈕和命令,自定義的事件主要對QKeyEvent進行封裝,只需對不同的事件源進行判斷就可以滿足動態(tài)需求。測試人員在對某個功能進行測試時,其輸入將被包裝成一個事件源。如果是簡單的鍵盤事件,將調(diào)用Qt自帶的事件處理器,但當(dāng)要輸入命令時,就先由事件分發(fā)器捕獲[9]這次命令事件,然后判斷是否自定義的事件,若是則分發(fā)器查找對應(yīng)的自定義事件處理器,并觸發(fā)相應(yīng)的操作,具體流程如圖2所示。為了便于管理眾多的按鈕與命令輸入框,也為了統(tǒng)一結(jié)果顯示頁面,軟件還擴展了Qt的部分控件:

        (1)狀態(tài)控制方法, 由于不同控件有各自的布局及大小管理方法,使用時十分不便,本軟件設(shè)計的void set_geometry(int,int,int,int)成員方法可以統(tǒng)一設(shè)置所以控件的大小及位置,前兩個參數(shù)表示起點位置,后兩個參數(shù)表示長度和寬度;

        (2)字體設(shè)置方法,為了使界面支持各種編碼的字符,設(shè)計了QString to_chinese(const char* str, const char* code)方法,內(nèi)部使用了QTextCodec字符編碼器將傳入的信息提示字符串str轉(zhuǎn)變?yōu)閏ode指定的編碼,使得軟件支持國際化。

        基于異步的事件處理機制對數(shù)控測試軟件的各個功能模塊進行了解耦[1],不同模塊間形成了責(zé)任鏈模式,在提高性能的同時也增加了擴展性。

        3.3 IO與DA測試的設(shè)計與實現(xiàn)

        IO與DA是數(shù)控系統(tǒng)的基礎(chǔ),是數(shù)控系統(tǒng)機床控制系統(tǒng)的重要組成部分,因此對這兩部分的測試就尤為重要。GJ303數(shù)控系統(tǒng)的IO模式是48IN32OUT以及32IN24OUT,測試時需要考慮多種輸入輸出的情況。

        IO測試模塊程序流程如圖3所示,以48IN32OUT輸出測試為例,32個比特要每隔1s輸出一位,要控制時間間隔便要使用Qt定時器來完成任務(wù)。該功能模塊的實現(xiàn)方法定義:void IO_outport(int offset,int st,unsigned int word),該方法內(nèi)部實現(xiàn)需要使用上文的驅(qū)動程序,即調(diào)用write系統(tǒng)調(diào)用[11],該系統(tǒng)調(diào)用將向操作系統(tǒng)內(nèi)核傳遞IO輸出數(shù)據(jù)。

        DA的測試需要提供一組待測電壓以及一組與之對應(yīng)的地址。軟件中封裝了void DA_outport(int st,int ch,unsigned int word)方法,word參數(shù)就是要測試的DA地址值,前面兩個參數(shù)是狀態(tài)控制參數(shù)。為了可擴展性,測試的地址[8]值可以由測試人員自行輸入,軟件后臺會將最近的一次設(shè)定值保存在數(shù)組中,并寫入配置文件刷新到磁盤上。測試開始時軟件會根據(jù)最終的地址傳入上述方法,底層使用系統(tǒng)調(diào)用傳遞給數(shù)控系統(tǒng)。

        圖3 IO測試流程

        3.4 鍵盤測試的設(shè)計與實現(xiàn)

        數(shù)控系統(tǒng)的鍵盤是其在工業(yè)生產(chǎn)環(huán)境中最常用的外設(shè),操作人員絕大部分操作及維護都是通過它來完成的,因此對鍵盤的測試尤為重要。GJ303數(shù)控系統(tǒng)的鍵盤和普通PC機的鍵位基本相同,但多了幾個系統(tǒng)鍵。該部分測試的主要思想是利用Qt的鍵盤事件。當(dāng)在主界面按下代表鍵盤測試的按鈕后,整個鍵盤進入測試模式,測試人員之后按下的每個鍵都會在軟件的界面上進行回顯,直到連按2次ESC鍵后退出測試。

        進入鍵盤測試后就觸發(fā)了事件源,事件分發(fā)器捕獲事件源并判斷自定義事件。軟件中對該功能的自定義事件改變了QKeyEvent原來的傳播行為[5],將輸出重定向至內(nèi)存中,再在界面上輸出。只要生產(chǎn)時鍵盤焊接等工藝沒有發(fā)生錯誤,測試時鍵盤的事件源就會被準(zhǔn)確地捕獲,一次典型的捕獲過程如圖4所示。

        圖4 鍵盤測試流程

        3.5 操作站測試的設(shè)計與實現(xiàn)

        操作站是鍵盤的延伸,是數(shù)控系統(tǒng)對機床進行控制的操作面板,可以控制數(shù)控運行過程中主軸的轉(zhuǎn)動方向、液壓系統(tǒng)、照明等,圖5是GJ303系統(tǒng)配套的操作站。

        圖5 操作站

        對操作站的測試不同于鍵盤,因為它是數(shù)控系統(tǒng)獨有的,Qt的事件并不支持。軟件中采用的方法是對操作站的鍵位進行轉(zhuǎn)換,然后用類似于鍵盤的測試方法在主界面上回顯按下的鍵位。

        對于數(shù)控系統(tǒng)底層驅(qū)動來講,操作站的每個鍵位都對應(yīng)著IO[10]的某個地址,地址的格式是8位的無符號整數(shù)。在軟件中為了簡潔使用unsigned char ch_pre變量表示,整個轉(zhuǎn)換的過程使用void mopValueToText(unsigned char ch_pre,unsigned char ch_rev, char* str)這個方法來完成,轉(zhuǎn)換過程如圖6所示。

        圖6 操作站轉(zhuǎn)換過程

        接下去的操作是分發(fā)器[12]調(diào)用以上轉(zhuǎn)換方法,而非某個自定義事件。轉(zhuǎn)換方法的核心部分是將IO地址一一轉(zhuǎn)換成中文或其他語言,代碼片段如下:

        case 0x81:sprintf(str,"%s","進給修調(diào) 0%");

        0x81就是IO地址,“進給修調(diào)”是需要在主界面上顯示的表述。

        4 測試結(jié)果

        測試軟件通過交叉編譯后部署在測試車間的GJ303數(shù)控系統(tǒng)上供測試人員使用。針對3個月的車間平均測試統(tǒng)計,結(jié)果如表1所示。

        表1 GJ303數(shù)控系統(tǒng)測試時間比較

        表1中數(shù)據(jù)是部署后車間流水線上每臺數(shù)控系統(tǒng)各個項目的平均測試時間,是經(jīng)過長時間累計測試得出的。從中可以看出4個項目測試時間都有較大的縮短,使得測試效率得到提高。對于出廠數(shù)控系統(tǒng)的故障率和返修率也進行了統(tǒng)計,如表2所示。

        表2 GJ303數(shù)控系統(tǒng)故障率比較

        從表2可以看出在使用新的測試軟件后平均故障率大幅下降,給生產(chǎn)帶來了較大的保障,提高了產(chǎn)品的經(jīng)濟效益。

        5 結(jié)論與展望

        基于Qt的GJ303數(shù)控系統(tǒng)測試軟件完成了對IO、DA、鍵盤與工作站的測試,并且在藍天數(shù)控測試生產(chǎn)線上進行了部署。經(jīng)過長期運行證明了該軟件測試系統(tǒng)的穩(wěn)定性與高效性。軟件幫助測試人員建立了完善易用的人機交互界面,對各個部分的測試效率也有較大地提高。

        由于軟件采用了Qt技術(shù),因此其跨平臺性也進一步得到了提高,目前已經(jīng)針對GJ301、GJ302等藍天數(shù)控系統(tǒng)進行改造,是測試軟件能部署在更多的數(shù)控系統(tǒng)上,從而創(chuàng)造更多的經(jīng)濟效益。

        未來的工作還要進一步擴展測試軟件的功能,例如編碼器、軸測試等,最終使軟件能夠適應(yīng)更多的生產(chǎn)環(huán)境。

        [1] 李一雄,劉建群,陳新度,等.Qt環(huán)境下基于PMAC運動控制器的控制系統(tǒng)開發(fā)與應(yīng)用[J].組合機床與自動化加工技術(shù),2014(1):114-116,120.

        [2] 楊杏,陳富林,周霏.基于Qt的工業(yè)機器人語言系統(tǒng)的設(shè)計[J].組合機床與自動化加工技術(shù),2014(2):71-74.

        [3] 王彩芳,劉建群,高偉強,等.基于QT+PMAC的V溝機數(shù)控軟件的開發(fā)[J].組合機床與自動化加工技術(shù),2015(3):98-101.

        [4] 梁凡,宋曉秋.基于二組合的測試用例集生成及精簡方法研究[J].計算機工程與設(shè)計,2014,35(5):1662-1666.

        [5] 王立宏,王曙燕,孫家澤.一種分階段組合測試數(shù)據(jù)生成算法[J].計算機應(yīng)用與軟件,2013,30(3):67-70.

        [6] 任立松.基于嵌入式QT4漁業(yè)電臺GUI的設(shè)計和實現(xiàn)[D].大連:大連海事大學(xué),2013.

        [7] 胡毅,于東,郭銳鋒,等.數(shù)控總線的消息安全通信方法[J].機械工程學(xué)報,2011,47(5):134-142.

        [8] 徐曉露.基于故障注入的嵌入式系統(tǒng)測試研究[D].杭州:浙江大學(xué),2008.

        [9] 徐柯.嵌入式軟件測試的研究[D].成都:電子科技大學(xué),2006.

        [10] 單錦輝,姜瑛,孫萍.軟件測試研究進展[J].北京大學(xué)學(xué)報(自然科學(xué)版),2005,41(1):134-145.

        [11] 張春曉.基于實時Linux平臺的CNC系統(tǒng)研究與實現(xiàn)[D].南京:南京航空航天大學(xué),2002.

        [12] William von Hagen, Real-Time and Performance Improvements in the 2.6 Linux Kernel[J]. Linux Journal,2005.

        (編輯 李秀敏)

        Design and Implementation of CNC System Testing Software Based on Qt

        WU Chun-yun1,2,LUAN Yong2,3,DU Shao-hua2,3,GE Xiao-chuan1,2

        (1.University of Chinese Academy of Sciences, Beijing 100049,China;2.National Engineering Research Center For High-End CNC, Shenyang Institute of Computing Technology, Chinese Academy of Sciences, Shenyang 110168,China)

        Compared with the general system, the testing of CNC system is more complex, and the original testing tools have the disadvantages of complex testing process, low efficiency, poor portability and poor user interaction.This paper designs and realizes the test driver of the blue sky numerical control system and the application software based on Qt,and complete the test of IO, DA, keyboard, etc.The software has a high portability and can run on different platforms,test personnel can choose which part to test .Through the software, it improves the test efficiency, simplify the testing process, and shorten the test time. The test software is put into use in the workshop, which effectively ensures the reliability of the numerical control system.

        CNC system;software test;Qt technology

        1001-2265(2016)11-0076-04

        10.13462/j.cnki.mmtamt.2016.11.021

        2015-12-28;

        2016-01-22

        “高檔數(shù)控機床與基礎(chǔ)制造裝備”國家科技重大專項:基于二次開發(fā)平臺的專用數(shù)控系統(tǒng)開發(fā)與應(yīng)用(2013ZX04007011)

        吳純赟(1990—),男,浙江海鹽人,中國科學(xué)院大學(xué)、中科院沈陽計算技術(shù)研究所碩士研究生,研究方向為數(shù)控系統(tǒng)軟件測試,(E-mail)437063174@qq.com。

        TH166;TG659

        A

        猜你喜歡
        系統(tǒng)
        Smartflower POP 一體式光伏系統(tǒng)
        WJ-700無人機系統(tǒng)
        ZC系列無人機遙感系統(tǒng)
        北京測繪(2020年12期)2020-12-29 01:33:58
        基于PowerPC+FPGA顯示系統(tǒng)
        基于UG的發(fā)射箱自動化虛擬裝配系統(tǒng)開發(fā)
        半沸制皂系統(tǒng)(下)
        FAO系統(tǒng)特有功能分析及互聯(lián)互通探討
        連通與提升系統(tǒng)的最后一塊拼圖 Audiolab 傲立 M-DAC mini
        一德系統(tǒng) 德行天下
        PLC在多段調(diào)速系統(tǒng)中的應(yīng)用
        国产成人拍精品免费视频| 亚洲香蕉成人av网站在线观看| 4hu四虎永久在线观看| 特级做a爰片毛片免费看| 免费成人在线电影| 馬与人黃色毛片一部| 亚洲嫩模一区二区三区视频| 丝袜美腿福利视频在线| 亚洲乱码国产乱码精品精| 精品久久久久久久中文字幕| 杨幂Av一区二区三区| 日韩av一区二区三区高清| 乱子伦一区二区三区| 国产成人av性色在线影院色戒| 国产精品青草视频免费播放| 国产一区二区三区涩涩涩| 国产高清成人在线观看视频| 日本无码欧美一区精品久久| 东京无码熟妇人妻av在线网址| 国产精品亚洲日韩欧美色窝窝色欲 | 国产精品白浆视频免费观看| 久草精品手机视频在线观看| 麻神在线观看免费观看| 真人做爰片免费观看播放| 日本三级欧美三级人妇视频| 欧美手机在线视频| 高清少妇二区三区视频在线观看| 公和我做好爽添厨房中文字幕 | 国产自产av一区二区三区性色| 国产伦奸在线播放免费| 亚洲一区二区三区日本久久九 | 亚洲一区二区三区久久蜜桃| 夫妻一起自拍内射小视频| 亚洲黄色一级在线观看| 无遮挡h肉动漫在线观看| 亚州精品无码人妻久久| 亚洲天堂av路线一免费观看| 人妻精品久久久久中文字幕| 思思久久96热在精品国产 | 欧美成年黄网站色视频| 欧美三级免费网站|