楊凱
(北京工業(yè)大學(xué)機(jī)電學(xué)院,北京100124)
一種焊接電源人機(jī)界面
楊凱
(北京工業(yè)大學(xué)機(jī)電學(xué)院,北京100124)
在數(shù)字化逆變焊接電源領(lǐng)域,為了達(dá)到多種焊接工藝的要求,針對精確控制能量轉(zhuǎn)化過程開展了各方面研究。但隨著用戶體驗(yàn)的提高,早期的人機(jī)交互方式已不能滿足需求。與此同時(shí),芯片制造技術(shù)蓬勃發(fā)展,芯片廠商對開發(fā)環(huán)境及開源代碼的支持日益完善。在此背景下,介紹一種焊接電源人機(jī)界面的設(shè)計(jì)方案。硬件方面,選用TI公司的AM3354作為核心處理器,外圍設(shè)備包括網(wǎng)絡(luò)接口、串行總線、SD卡接口、CAN通信接口以及LCD觸摸屏等。軟件方面,在嵌入式Linux系統(tǒng)之上進(jìn)行圖形用戶界面(基于Qt-Embedded)、數(shù)據(jù)庫、網(wǎng)絡(luò)更新以及CAN通信協(xié)議的開發(fā)工作。試驗(yàn)結(jié)果表明該方案可行。
人機(jī)界面;Qt-Emdedded;嵌入式Linux;焊接
在數(shù)字化逆變焊機(jī)領(lǐng)域,多數(shù)產(chǎn)品能夠較好地實(shí)現(xiàn)能量轉(zhuǎn)化與工藝要求。但是,長期來看,隨著芯片技術(shù)飛速發(fā)展,控制需求日益復(fù)雜,用戶體驗(yàn)的不斷提高,早期的嵌入式控制方案已不能滿足現(xiàn)階段的要求。近期來看,伏能士公司發(fā)布了智能化焊接平臺TPS/i系列焊機(jī),該焊機(jī)可實(shí)現(xiàn)焊接參數(shù)純文本顯示和圖像化的用戶界面[1]。這些都表明了焊接設(shè)備的智能化發(fā)展。在此提出了一種焊接電源人機(jī)界面的設(shè)計(jì)方案,并進(jìn)行了試驗(yàn)驗(yàn)證。
數(shù)字化弧焊電源包括逆變主電路、數(shù)字控制電路和人機(jī)交互[2]。數(shù)字控制電路負(fù)責(zé)焊機(jī)能量轉(zhuǎn)化與工藝實(shí)施,人機(jī)交互主要完成焊接參數(shù)設(shè)定、一元化焊接參數(shù)查詢、遠(yuǎn)程網(wǎng)絡(luò)升級等功能。兩者之間通過CAN協(xié)議傳遞數(shù)據(jù)。
人機(jī)交互界面的核心是TI公司的AM3354 ARM Cortex-A8微處理器,其處理器主頻、內(nèi)存等參數(shù)均能滿足要求[3]。硬件開發(fā)平臺是飛凌OK335XD開發(fā)板。該方案涉及到的外圍硬件設(shè)備包括:帶隔離保護(hù)的CAN接口;RJ45以太網(wǎng)接口;SD卡插槽;7寸液晶顯示屏等。系統(tǒng)模型如圖1所示。
圖1 系統(tǒng)模型
①觸摸屏:用戶可以設(shè)定焊接參數(shù),選擇焊接工藝,下達(dá)焊接命令。
②數(shù)據(jù)庫:本地?cái)?shù)據(jù)文件,提供不同焊機(jī)工藝的焊接參數(shù),實(shí)現(xiàn)焊接參數(shù)的一元化查詢。
③CAN協(xié)議:CAN(Controller Area Network)協(xié)議由德國博世公司提出,它能在復(fù)雜的焊接現(xiàn)場提供可靠的串行通信網(wǎng)絡(luò)。AM33554微處理器支持CAN 2.0的A,B部分(符合ISO 11898-1)[3],但需要嵌入式linux系統(tǒng)支持相應(yīng)驅(qū)動。
④FTP服務(wù)器:存儲著不同的焊接數(shù)據(jù)庫,焊機(jī)可通過網(wǎng)絡(luò)訪問FTP服務(wù)器,并選擇適當(dāng)?shù)臄?shù)據(jù)庫文件進(jìn)行下載,更新本地的數(shù)據(jù)庫內(nèi)容。
人機(jī)交互使用的硬件較多,并需要滿足多種功能。由此確定以下的軟件開發(fā)環(huán)境:選用Linux 3.2.0內(nèi)核作為操作系統(tǒng);選用Qt/Embedded 4.8.5作為GUI開發(fā)平臺;宿主機(jī)為Ubuntu 12.04 LTS,開發(fā)環(huán)境為Qt Creator 2.4.1(基于Qt 4.8.0);數(shù)據(jù)庫為SQLite。
在搭建開發(fā)環(huán)境后,整體的軟件結(jié)構(gòu)如圖2所示。主要的開發(fā)內(nèi)容包括:主界面GUI設(shè)計(jì),數(shù)據(jù)庫,CAN通信的應(yīng)用程序開發(fā)與驅(qū)動程序移植。
2.1 嵌入式系統(tǒng)的GUI設(shè)計(jì)
GUI主要完成界面功能的劃分、界面的實(shí)現(xiàn)與數(shù)據(jù)共享。嵌入式的GUI設(shè)計(jì)應(yīng)注意以下幾點(diǎn):①硬件資源的限制;②嵌入式linux系統(tǒng)無論是響應(yīng)外設(shè)的事件,還是操作硬件,都需要設(shè)備驅(qū)動程序的支持;③界面響應(yīng)與事件處理應(yīng)多線程協(xié)調(diào)工作,防止界面“假死”。
2.1.1 界面劃分
界面的功能分布在兩級菜單中,如圖3所示。
圖2 軟件結(jié)構(gòu)
圖3 界面內(nèi)容
2.1.2 實(shí)現(xiàn)界面與事件處理
Qt Designer可快速實(shí)現(xiàn)界面設(shè)計(jì),主界面如圖4所示?;赒t特有的信號與槽機(jī)制,開發(fā)者可通過界面上的控件實(shí)現(xiàn)相應(yīng)功能。例如,當(dāng)用戶輸入?yún)?shù)完成后,會向主界面發(fā)射Finished()信號。主界面的槽函數(shù)會完成界面數(shù)據(jù)的更新、軟鍵盤的消失、共享內(nèi)存的讀寫等功能。
2.1.3 數(shù)據(jù)共享
整個(gè)人機(jī)界面中,多處涉及到數(shù)據(jù)共享。首先,GUI中有多個(gè)界面與控件,這些零散分布的數(shù)據(jù)需要共享。其次,為防止界面“假死”,程序中需要多線程的通信。再次,CAN協(xié)議通信是獨(dú)立進(jìn)程,發(fā)送數(shù)據(jù)時(shí),需要與主界面進(jìn)程通信。在此采用共享內(nèi)存實(shí)現(xiàn)數(shù)據(jù)共享。在自定義的數(shù)據(jù)類中,用結(jié)構(gòu)體對共享內(nèi)存進(jìn)行封裝。實(shí)例化數(shù)據(jù)類即可讀寫共享內(nèi)存的內(nèi)容。每個(gè)界面的數(shù)據(jù)改變后,都會刷新共享內(nèi)存的信息。以下為結(jié)構(gòu)體內(nèi)容:
圖4 主界面
2.2 數(shù)據(jù)庫
焊接工藝數(shù)據(jù)庫是焊機(jī)廠商結(jié)合自身特點(diǎn)提出的焊接工藝指導(dǎo)。使用數(shù)據(jù)庫有利于提高焊接質(zhì)量和焊接效率。本研究的數(shù)據(jù)庫應(yīng)用在兩個(gè)方面:焊接工藝一元化數(shù)據(jù)查詢;網(wǎng)絡(luò)更新數(shù)據(jù)庫。
2.2.1 數(shù)據(jù)庫一元化查詢
在主界面中,用戶輸入焊接參數(shù)后,主界面會單獨(dú)啟動線程進(jìn)行數(shù)據(jù)庫查詢(見圖5)。查詢完成后,發(fā)射信號通知主界面。主界面得到信號后,讀取共享內(nèi)存內(nèi)容,并顯示到界面中。
2.2.2 數(shù)據(jù)庫與網(wǎng)絡(luò)更新
網(wǎng)絡(luò)更新界面如圖6所示,功能按鈕包括:“連接”——啟動網(wǎng)絡(luò)連接,檢測網(wǎng)址、用戶名、密碼信息;“上級目錄”——瀏覽遠(yuǎn)程FTP服務(wù)器的目錄;“下載并更新”——從遠(yuǎn)程FTP服務(wù)器下載指定的文件,下載完成后,啟動數(shù)據(jù)庫更新線程(見圖7);“放棄更新”——刪除更新時(shí)插入的表,恢復(fù)開機(jī)狀態(tài)。
圖5 數(shù)據(jù)庫查詢線程流程
圖6 網(wǎng)絡(luò)升級界面[4]
圖7 數(shù)據(jù)庫與網(wǎng)絡(luò)更新
2.3 CAN通信的應(yīng)用程序和驅(qū)動設(shè)計(jì)
2.3.1 CAN應(yīng)用程序
主界面的“開始焊接”“點(diǎn)動送絲”“試氣”都使用QProcess()類啟動CAN應(yīng)用程序,并向其傳遞命令行參數(shù)。CAN應(yīng)用程序是獨(dú)立運(yùn)行的,其發(fā)送內(nèi)容來自共享內(nèi)存,發(fā)送命令來自命令行參數(shù)。CAN進(jìn)程中分為兩個(gè)線程:主線程中發(fā)送數(shù)據(jù);分線程接受數(shù)據(jù),并將接受的信息通過信號傳到主線程中,用于進(jìn)一步判斷。
2.3.2 CAN驅(qū)動程序
(1)Linux操作系統(tǒng)中實(shí)現(xiàn)CAN協(xié)議驅(qū)動有兩種方法:基于字符設(shè)備;基于網(wǎng)絡(luò)接口。
基于字符設(shè)備的實(shí)現(xiàn),通常針對某一具體的硬件設(shè)備實(shí)現(xiàn)字符設(shè)備的接口,而且只能在用戶態(tài)實(shí)現(xiàn)高層協(xié)議(如幀隊(duì)列和ISO-TP)。若更換硬件,還需修改應(yīng)用程序?;诰W(wǎng)絡(luò)接口的Socket CAN采用了BSD socket接口與Linux網(wǎng)絡(luò)協(xié)議棧,應(yīng)用程序可采用網(wǎng)絡(luò)接口實(shí)現(xiàn)功能[5]。Socket CAN的工作原理如圖8所示。
(2)驅(qū)動程序初始化時(shí),使用的結(jié)構(gòu)體為:
圖8 SocketCAN工作原理[6]
(3)接收消息時(shí)使用Linux內(nèi)核的NAPI框架,其基本思想為:當(dāng)數(shù)據(jù)包到達(dá)時(shí)會觸發(fā)硬件中斷,中斷處理先關(guān)閉中斷進(jìn)入輪詢模式,直到所有數(shù)據(jù)包接收完畢,再重新開啟中斷,進(jìn)入下一周期。
具體來說,初始化CAN設(shè)備時(shí),給CAN設(shè)備分配NAPI功能。新數(shù)據(jù)包到來時(shí),執(zhí)行中斷函數(shù),禁止中斷并調(diào)度NAPI。進(jìn)而調(diào)用napi的poll方法(d_can_poll()),該方法會輪詢地進(jìn)行數(shù)據(jù)接收。接收完成后,該方法會用netif_receive_skb(skb)遞交給內(nèi)核,使能中斷。以下為中斷服務(wù)程序:
A kind of welding power source human-machine interface
YANG Kai
(College of Mechanical Engineering and Applied Electronics Technology,Beijing University of Technology,Beijing 100124,China)
In the field of digital inverter welding power,all research on precise control of energy conversion are developed,in order to meet the needs of a variety of welding process.However,the early HMI(Human Machine Interface)has been unable to meet the demands with the improvement of user experience.In the meantime,the manufacturing chips technology obtains a exciting development,the chip makers improve the support of development environment and open source code increasingly.On the background,introduces a design about welding power source human-machine interface.On the hardware part,it uses a TI's AM3354 microprocessor.it has many peripherals,which include network interface,serial bus interface,SD card slot,CAN communication interface and the LCD touch screen.On the software part,there are some applications,such as the graphical user interface(based on Qt-Embedded),database,updating from FTP server and CAN bus,which based on the embedded Linux system.The test results prove that the scheme is feasible.
HMI;Qt-Emdedded;embedded Linux;welding
TG434.1
A
1001-2303(2017)02-0054-05
10.7512/j.issn.1001-2303.2017.02.10
2016-11-03;
2017-02-09
楊 凱(1992—),男,河北邢臺人,在讀碩士,主要從事嵌入式系統(tǒng)與自動化裝備的研究。
獻(xiàn)
楊凱.一種焊接電源人機(jī)界面[J].電焊機(jī),2017,47(02):54-57,79.