為機床工具企業提供深度市場分析                     

用戶名:   密碼:         免費(fèi)注冊(cè)  |   申請(qǐng)VIP  |  

English  |   German  |   Japanese  |   添加收藏  |  
廣州數(shù)控
數控係統

車床 銑床 鑽床 數控係(xì)統 加工中(zhōng)心 鍛壓機床 刨插拉(lā)床 螺紋加工(gōng)機床 齒輪加(jiā)工機床
磨床 鏜床 刀具 功能部件 配(pèi)件附件 檢驗測(cè)量 機床電器 特種加工 機器人

數控係統

電工電力 工程機械 航空航天 汽車 模(mó)具
儀器儀表 通(tōng)用機械 軌道交(jiāo)通(tōng) 船舶

搜索
熱門(mén)關鍵字:

數控機床(chuáng)

 | 數(shù)控車床 | 數控係統 | 滾齒機 | 數控(kòng)銑床 | 銑刀(dāo) | 主軸 | 立式(shì)加工(gōng)中心 | 機器(qì)人(rén)
您現在的位(wèi)置:數控係統網> 技術前(qián)沿>基於Qt的數控係統測(cè)試軟件的(de)設計與實現
基於(yú)Qt的數控係統測試軟件的設計與實現
2018-4-3  來源:轉載  作者:吳純贇 栗(lì)勇 杜少華 葛小川

       摘要:數控係統的測試相比較一般的係統更加複雜,以往的測試工具存在測試過程複雜、測試效率低下、可移植性差、用戶交互不理想等缺點。在研究了(le)Linux驅(qū)動及Qt技術的基礎下設計並實現了藍天數控係統的測試驅動(dòng)程序以及基於Qt的測試應用(yòng)軟件,完成對數控係統I0, DA,鍵盤操作站等的測試。軟件具有較(jiào)高的移植性,可以運行在不同平台上,測試人員可以自主選擇(zé)測試的項(xiàng)目與過程,提高了測(cè)試效率,簡化了測試過程,縮短了測試(shì)時間。測試(shì)軟(ruǎn)件在(zài)生產車間中投入使用,有(yǒu)效地保障了數控係統的可靠性(xìng)。

       關鍵詞:數控係統;軟件測試;Qt技術

       0、引言

       數控技術是工業化過(guò)程中發展國家高新(xīn)技術產業和尖端工業的重要一環,也是先進(jìn)製造(zào)技(jì)術的核心研究內容。數控係統測試軟件為(wéi)工業生產提供(gòng)了有效保障,目前我國的(de)數控測試軟件主(zhǔ)要采用基於c語言的命(mìng)令行模式,雖然在功能上能覆蓋常用的模塊,但存在可移植性差、用戶交互性弱、測試過程複雜等缺點(diǎn)。基於Qt的數控係統測試軟(ruǎn)件正是要解決以(yǐ)上問題,為測試人員提供一個操作簡便、可視化程度高、移植性好的測試環境。

       在深入理解Linux內核以及Qt界麵、信號與槽機製的前提下,基於Qt的數(shù)控係統測試軟件重新設計了GJ303係統的測試3動程序,並且使用Qt的UI實現(xiàn)了可視化操作。軟件完成(chéng)了對IO,DA,鍵盤、操(cāo)作站等功能模塊的設計與(yǔ)實現,編譯後部署在藍大高精數控測試生產線上(shàng)進行實際測試,並(bìng)記錄測試時間和故(gù)障率,從而驗證(zhèng)測試軟件(jiàn)的可行性。

       1、需求說明

       GJ303是新一代開放式普及型數控係統,采用高(gāo)性(xìng)能工業(yè)級PC平(píng)台,在工業生產中已經有廣泛的(de)應用,生產車間(jiān)需要在數控係統(tǒng)出廠前對IO,DA,鍵盤操作站等進行測試,以確保軟硬件的正(zhèng)確性和穩定性(xìng),為工業生(shēng)產提供保障。  
 
       對於IO部分,需要GJ303係統與外接板連接,通過測試程序對(duì)IO讀寫信號進行測試(shì);DA部(bù)分需要程序對DA輸出值進行測試;鍵盤和操作站部分需要通過程序(xù)對數控係統鍵盤(pán)鍵位的有(yǒu)效性及操作站控製的(de)有效性等進行測試。

       從上述可以看出數控係統的測試存(cún)在步驟多、測試過程(chéng)繁瑣、測試過程(chéng)掌控不到位等問題。在此背景下(xià),結合當前數控封裝測(cè)試車間的實際應用場(chǎng)景,采用Qt技術j實(shí)現功能完備、測試過程簡單高效、移植性強、可視化程度高的數控係統測試軟件。

       2、測試軟件(jiàn)驅動的設計與實現

       測試軟件需要對數控係統的硬件資源進行操控(kòng),所以底層需要一套專門的驅動來配合上層的Qt程序。藍大數(shù)控係統內核(hé)是基於Linux 2. 6係統,測試馭(yù)動程序符合一般Linu、字符馭動程序開發的流程(chéng)。在整個數控係統測試軟件中,驅動(dòng)程序扮(bàn)演著承(chéng)上啟下的作用。

       在Linux2. 6內(nèi)核(hé)中,使用(yòng)cdev結構體描(miáo)述一個字符設(shè)備,cdev結構體的定義描述如下:
 
  
 
 
       cedv結構體的dev_t成員(yuán)定義了設備號,為32位,其中12位(wèi)主設備號,20位次設備號。使用下列宏可以獲(huò)得(dé)主設備號和次設(shè)備(bèi)號:

       MAJOR (dev_ t dev)

       MINOR (dev_ t dev)

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

       MKDEV (int major int minor)

       文件操作file  operations是(shì)程序操作設(shè)備的主要(yào)結構,它的成員在應用層中以open ( ) ,write ( ) , read(),close ()等係統調用來體現。以上操作在測試軟件中需要進行自定義,以read函數為例,GJ303係統中需要先設置偏移找到讀取的起始位置(zhì),再根據傳(chuán)入的讀取範圍分配內核空間(jiān)內存,最後調用(yòng)_copy_  to_  user函數將需要的數據從內核(hé)空間拷貝到用戶空間。write函數操作過程類(lèi)似,隻是拷貝數據(jù)的(de)方向相反。

       上層的應用程序在測試過程(chéng)中(zhōng)需要對機床的各(gè)個功能硬件進行(háng)命令的(de)收發,通過以上馭動程序的調用就可以高效(xiào)便捷地進行交互。

       3、測試軟件應用層的設計與實現

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

       測試(shì)軟件從結構上分成二層,如圖(tú)1所示,用戶界麵采用Qt技術實現,底層調用馭動測試程序。驅動程序直接解(jiě)析用戶界而傳來的測試命令,數控硬件係統根據(jù)馭動(dòng)程序進行相應的操作完成測試。
 
  
 
圖1 係統整體結(jié)構 

       Qt具有(yǒu)跨平台以及界(jiè)而美觀等優點,且在嵌入式領域已經有(yǒu)廣泛地應用(yòng),所以(yǐ)本(běn)軟件的用戶交互界麵全部由Qt來實現。應用(yòng)層的開發在搭載(zǎi)Ubuntu 14. 04的PC下(xià)完成,測試與部署則在藍大數控(kòng)GJ303係統上進行(háng)。上圖中數控係統部分實際還需要用(yòng)到I0, DA的外接測試(shì)板以及外置手輪。

       3. 2 事件處理機(jī)製

       由於(yú)以往的藍大數控係統測試工具都是基於C語言的命令行格式,測試人員即便測(cè)試某個(gè)小功能也要掌握(wò)所有的命令選項,一步步地進入到測(cè)試點。這(zhè)不僅造成測試過程複雜,還容易(yì)出錯。傳統的程序界而跳轉采用順序馭(yù)動,導致邏輯複雜,跳轉(zhuǎn)代碼與業務代碼摻雜在一起,結構混亂,不利於軟件的功能擴展及移植。

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

       (1) 狀態控製方法,由於不同控件有各(gè)自的布局及大小管理方法,使(shǐ)用時十分不便,本軟(ruǎn)件設計的voidset-eometry (int , int , int , int)成員方法可以統一設置所以控件的大小及位置,前兩個參數表示(shì)起點位置,後兩個參數表示長度和寬度;

       (2) 字體設置方法,為了使界而(ér)支持各種編碼的字符(fú),設計了QString to -Chinese (const char*  str,constchar*  code)方法,內部使用了(le)QTextCodec字符編碼器將傳入的信息提示字符串str轉變(biàn)為code指(zhǐ)定(dìng)的編碼,使得軟件支持國際化。

       基於異步的事件處理機製對(duì)數控測試軟件的各個功(gōng)能模塊進行(háng)了解耦,不同模塊(kuài)間形成(chéng)了責任鏈模式,在提高性能的同時也增加了擴展性。
 
  

圖2  自(zì)定義事件處理機製

       3. 3  IO與DA測試的設計與(yǔ)實現

       IO與(yǔ)DA是數控係統的基礎(chǔ),是數控係統(tǒng)機床控製係統的重要組(zǔ)成部分,因此對這兩部分的(de)測(cè)試就尤(yóu)為重要。GJ303數控係統的IO模式(shì)是48IN320UT以及32IN240UT,測試(shì)時需要考慮多種輸入輸出的情(qíng)況。

       IO測試模塊程序流程如圖3所示,以48IN320UT輸出測(cè)試為例,犯個比特(tè)要每隔is輸出一位,要控製時間間隔(gé)便要使用Qt定時器來完成任務。該功能模塊的實現方法定義: void IO_ outport (int offset , int st , un-signed int word),該方法內(nèi)部實現需要使用上文的(de)驅動程序,即調用writ。係統調用(yòng),該(gāi)係統調(diào)用將向操作(zuò)係統內核傳遞IO輸出數據。

       DA的測試需要提供一組待測電壓(yā)以及一(yī)組與之對應的地址。軟件中封(fēng)裝了void DA outport (int st int chunsigned int word)方法,word參數就是要測試的DA地址值,前(qián)而兩個參數是狀態(tài)控製參數。為了可(kě)擴(kuò)展性,測試的地址岡值可以由(yóu)測試人員自行輸入,軟件後台會(huì)將最近的一次設定值保存在數組中,並寫入配置文件刷(shuā)新到磁(cí)盤上。測試開始時軟件會根據最終的地址傳入上述方(fāng)法,底層使用係統調(diào)用傳遞給數控係統(tǒng)。
 
  

圖(tú)3  IO測試流程

       3. 4 鍵盤測試的設計與實現

       數控係(xì)統的鍵盤是其在工業生產環境(jìng)中最常用的外設,操作人員(yuán)絕大部分操作及維護都是通過它來完成的,因此對鍵盤的測試尤為重要。GJ303數控係統的鍵(jiàn)盤和普通PC機的鍵位基(jī)木相同,但多了幾個係統鍵。該部分測試的主要思想是利用Qt的鍵盤事(shì)件。當在主界而按下代表鍵盤測試的按鈕後,整個鍵盤進入測試模式,測試(shì)人員之後按下(xià)的(de)每個鍵都會在軟件(jiàn)的界麵上進行回(huí)顯,直(zhí)到連按2次ESC鍵後(hòu)退出測試。

       進(jìn)入鍵盤測試後就觸發(fā)了事件源,事件(jiàn)分發器捕獲事件(jiàn)源並判斷自定義事件。軟件中(zhōng)對(duì)該功能的自定義(yì)事件改變了QKeyEvent原來的(de)傳播行為,將輸出重定向至內存中(zhōng),再在界而上輸出。隻要生產時鍵盤焊接等工藝沒有發生錯誤,測試(shì)時鍵盤(pán)的事件源就會被準確地(dì)捕獲(huò),一次典型的捕獲(huò)過程如圖4所示。
 
  
圖4 鍵盤測試流(liú)程

       3. 5 操作站測試(shì)的設計與實現

       操作站是鍵(jiàn)盤的延伸,是數控係統對機床進行控(kòng)製的操作而板,可以控製數控運行過程(chéng)中主軸的轉動方向、液壓係統、照明等,圖5是GJ303係統配(pèi)套的(de)操作站。
 
  
 
圖5 操作站

       對操作站(zhàn)的(de)測試不同於鍵盤,因為它是數控係統(tǒng)獨有的,Qt的事件並不(bú)支持。軟件中采用的方(fāng)法是(shì)對操作(zuò)站的鍵位進(jìn)行(háng)轉換,然後用類似於(yú)鍵盤的測(cè)試方法在主界麵上回顯按下的鍵(jiàn)位。

       對於數控係統底層馭動來講,操作站的每個鍵位都對應著IO的某個地(dì)址,地址的格式是8位的無符號整數。在軟(ruǎn)件中為了簡(jiǎn)潔使用unsigned char ch_pre變量表示,整個轉換的過程使用void mopValueToText(unsigned char ch_pre, unsigned char ch_rev,char*str)這個方法來完成,轉換過程如圖(tú)6所示。
 
  

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

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

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

       0x81就(jiù)是(shì)IO地(dì)址“進給修調”是需要(yào)在主界而上顯示(shì)的表述。

       4、測試(shì)結果

       測試軟件通過交叉編譯後部署在(zài)測試車間的GJ303數控係統上供測試人員使用。針(zhēn)對3個月的車間平均測試統計,結果如表1所示。
 
  
 
表1  GJ303數控係統測試時間比較

       表1中(zhōng)數據是部署後車間流水線上每台數控係統各個項目的平均測試時間(jiān),是經過(guò)長時間累計測試得出(chū)的。從中可以看出4個項目測試時間都有較大的縮短,使得測試效率得到提高。對於出廠數控係統的故障率和返(fǎn)修率也進行了統計,如表2所示。
 
  

表2  GJ303數控係統故障率比較

       從表2可(kě)以看出在使用新(xīn)的測試軟件(jiàn)後平均故障率大幅卜降,給生產帶來了較大的保障,提高了產品(pǐn)的經濟效(xiào)益。

       5、結論與展望

       基於Qt的GJ303數控係統測試軟件完成了對I0,DA,鍵盤與工作站的測試,並且在藍大數控測試(shì)生(shēng)產線上進行了部署。經過長期運(yùn)行(háng)證明了該軟件測試係統的穩定性與高效性。軟件幫助測試(shì)人員建立了完善易用的人機交互界麵,對各個(gè)部分的(de)測試效率也有較大地(dì)提高。

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

       未來的工作還要進一步擴展測(cè)試軟件的功能,例如編碼器、軸測試等,最終(zhōng)使軟件能夠適應更多的生產環境。
 
       來源:中國科學(xué)院大學,中國(guó)科學院沈陽計算技術研究所高檔數控國家土程研究中心.沈(shěn)陽高精數控智能技術股份有限公司 
    投稿箱:
        如果您有機床行業、企業相關新聞稿件發表,或進(jìn)行資訊合作,歡迎聯係本網編輯部, 郵箱:skjcsc@vip.sina.com
国产999精品2卡3卡4卡丨日韩欧美视频一区二区在线观看丨一区二区三区日韩免费播放丨九色91精品国产网站丨XX性欧美肥妇精品久久久久久丨久久久久国产精品嫩草影院丨成人免费a级毛片丨五月婷婷六月丁香综合