摘 要: 汽車電子配件的生產制造逐漸由自動化步入智能化,汽車儀表指針的智能壓制也成了眾多汽車生產企業研究的對象。介紹了基于S3C6410的Windows CE平臺的汽車儀表指針壓制系統的整機工作流程、硬件結構原理、人機界面和SQLite數據庫的設計開發過程。進行了整機測試,試驗結果表明,本壓制系統與老式壓制機相比,具有良好的人機界面,操作靈活方便,且有較高的精確度和效率,完全能滿足汽車配件廠的生產要求。
關鍵詞: Windows CE; S3C6410; 指針壓制; SQLite
中圖分類號:TP273 文獻標志碼:A 文章編號:1006-8228(2013)02-01-03
Embedded control software design of instrument pointer pressure
Dai Lu, Liao Yipeng
(College of physics and information engineering, Fuzhou University, Fuzhou, Fujian 350001, China)
Abstract: With the development of automobile industry, the manufacture of electronic auto parts has developed gradually from automation to intelligence. The intelligent pressure of automobile instrument pointer has become the research object of many car manufacturers. The whole workflow, hardware structure, human-computer interface and SQLite database design process of the automobile instrument pointer pressure system based on the Windows CE platform built by S3C6410 are described in this article. The whole system test is completed. The test result shows, compared with traditional pressure machines, that the system has better human-computer interface, higher precision and efficiency, and the operation was more flexible and convenient.
Key words: Windows CE; S3C6410; intelligent pressure; SQLite
0 引言
本文介紹一種基于Windows CE平臺的嵌入式儀表指針壓制系統,該系統通過S3C6410處理器操作伺服電機控制壓制頭向下行進一定的距離,當接觸到壓針時通過采集壓力進行壓制判定。若壓制頭行進的距離與壓制時的壓力在設定范圍內,則判定該次壓制成功,其余都判定壓制失敗。若壓制成功則通過標簽機把當前的SN碼打印出來。使用Windows CE平臺能制作出人性化十足的操作界面;S3C6410的運算速度,以及自帶的ADC的采集精度都遠遠超過了現今其他常用的指針壓制機。
1 系統硬件結構介紹
工業現場常用的指針壓制儀器通常只采用8位的CPU,其外部電路也相對簡單:8位的A/D采集模塊,實現對壓力的采樣;單色液晶屏幕,為用戶提供操作界面;鍵盤輸入,給用戶提供操作平臺;E2PROM,實現數據的存儲;實時時鐘,用于顯示與記錄時間。8位的CPU與8位的ADC,無論速度,還是采集精度都無法達到現今的技術要求,單色的液晶屏幕不能提供優質的用戶體驗,E2PROM無法記錄大量的數據。因此需要一種先進的指針壓制機。
本系統是由三星公司的S3C6410作為主控芯片,最高運算速度可達667MHz;8路12位的ADC,其最高轉化率可達到500kSPS;支持高速USB2.0(全速480MBPS);4通道UART 具有基于DMA或基于中斷操作;支持5位,6位,7位,或8位串行數據傳輸/接收。其優秀的性能和豐富的外設,完全符合系統的需求,且價格便宜[1-2]。
[標簽機][伺服電機][ USB接口
UART2接口
AD采集 UART1接口 RJ45接口][S3C6410] [EXCEL導出] [Ethernet] [PC機] [128M DDR][256M FLASH][7寸觸摸屏] [RS422] [壓力采集]
圖1 系統硬件框圖
外圍接口電路:UART接口(控制伺服電機、標簽機)、USB2.0接口(進行數據導出)、RJ45接口(進行遠程數據操作);并由通過總線連接LCD觸摸屏(人機交互),芯片自帶的ADC(進行壓力采集)、DDR、FLASH組成。
系統與飼服電機之間的串行通信采用RS-422總線,由于RS-422是差模傳輸,抗干擾能力比RS-232強,理論傳輸距離達到1200米,且是全雙工通信,更適合在復雜的工控環境中使用。
2 系統軟件設計
Windows CE是一個開放的、可升級的32位嵌入式操作系統。其體積小巧,最小配置的Windows CE .NET可以小至200KB。且系統可裁剪,通過裁剪可針對系統專門定制出所需的最精簡系統。Windows CE的圖形用戶界面相當出色,因此本設計選用Windows CE作為操作系統。采用Microsoft Visual Studio 2005開發平臺,編寫Windows CE下基于MFC架構的GUI界面[3]。
SQLite是D.Richard Hipp開發的一個基于C庫的輕量級嵌入式關系數據庫引擎,支持多表和索引、事務、視圖、觸發和一系列的用戶接口及驅動。且SQLite在Windows CE下無需安裝,可通過API直接訪問數據庫,具有代碼量小,免費、開源等優點,因此本設計采用SQLite數據庫對數據進行存儲和管理,并可導出數據方便管理者進行生產統籌[4-5]。
系統通過7寸的觸摸屏進行人機交互,系統軟件由用戶管理、參數設置、手動模式、自動模式、記錄查詢、系統幫助等幾個模塊組成。
2.1 用戶管理
在用戶管理菜單下可進行用戶注冊、登錄、刪除及密碼的修改。對系統進行操作時需要進行系統登錄,管理員可進行員工的添加、刪除及時間的設置。員工及管理員的數據存在SQLite數據庫中,調用方便、迅速。
2.2 手動模式
手動模式主要是方便技術人員對壓制參數進程更改,該模式下有點動、寸動兩種模式,控制壓制機上升與下壓,技術人員可在該模式下調試好參數,之后再進入參數設置模式進行新建、修改機型參數。
2.3 參數設置
在參數設置模式下可直接新建、修改、刪除機型參數,以及將已有的機型參數設置成當前手動模式或自動模式壓制的參數。所有機型參數存儲在SQLite數據庫中,等需要時再對數據進行存取。參數設置界面如圖2所示。
圖2 參數設置界面
機型名稱:當前機型的名稱。
打印簡碼:當前機型的打印簡碼。
最大/小壓力:當前機型在壓制時成功的最大/小壓力值。
懸空最大壓力:在不接觸壓制物體時的最大壓力(在自動模式下,壓制頭若還未到壓針最大位移時的實時壓力,大于懸空最大壓力時,系統判定壓力超限)。
接觸最小壓力:在接觸到壓制物體時的最小壓力(在自動模式下,壓制頭若到了壓針最大位移時的實時壓力,小于接觸最小壓力時,系統判定壓力超限)。
回歸位置:當壓制完成時,壓制頭會上升到回歸位置方便操作人員取出壓制物。
壓針最大/小位移:當前機型在壓制成功時的壓針最大/小位移值。
系統密碼:若要修改參數值,新建機型,刪除機型時需要輸入系統密碼。
機型選擇:系統中所有注冊的機型都會出現在機型選擇框中以方便選擇。
2.4 自動模式
壓制的自動模式是提高壓制效率的手段之一,在此模式下操作人員只要將壓件擺好,按動自動壓制按鈕就能實現自動壓制。
老式的壓制機在壓制過程中,若操作員不正常操作則時常會出現安全事故,智能壓制系統在壓制過程中為了防止此類事故發生,特在下位機增加了兩個按鍵,必須當操作人員的兩只手同時按住兩個按鍵才能進行壓制,以防止發生危險(如肢體被碾壓的情況)。
自動壓制過程中顯示屏右側的當前壓力與當前位移數據實時刷新,上次壓力與上次位移則顯示上次壓制過程最后的壓力與位移。當壓制完成時,當前的壓力與位移數據會顯示到上次壓力與位移中,同時當前壓力與位移數據清零。且在曲線上畫出當次的壓制曲線,存入數據庫中。若壓制成功,則自動生成系列碼,并通過標簽打印機進行打印。若壓制失敗,則進行下一次壓制。自動模式如圖3所示。
圖3 自動模式
壓力與位移用兩個C2Dgraph類[6]分開進行顯示。根據現場環境,將壓力坐標定為0~15KG,位移坐標定為5~12mm。根據機型的不同,壓制的最大壓力、最小壓力,最大位移、最小位移會在曲線顯示框中用綠色的虛線繪制出來。若是曲線超出了綠色的虛線范圍,便代表了該次壓制出錯。在壓制過程中每壓制一個設備,都會將最后的值繪制在曲線中。當曲線繪滿300個點時只將第一個點刪除,在末尾添加新的點,實現的部分代碼如下:
C2DGraph m_2DGraph_p,m_2DGraph_s; //二維曲線對象
if(m_pointCount > 300 ) //當曲線的點大于300時刪除第一個點
{ m_2DGraph_p.DeleteFirstPoint(); //刪除壓力曲線的第一個點
m_2DGraph_s.DeleteFirstPoint(); //刪除位移曲線的第一個點
m_pointCount--; //曲線點數減一
}
m_2DGraph_p.AppendPoint_P((DWORD)f_kg); //繪制壓力曲線
m_2DGraph_s.AppendPoint((DWORD)f_mm); //繪制位移曲線
m_pointCount++; //曲線點數加一
在自動壓制過程中,除了實時顯示當前數據并繪制壓制曲線外系統還能記錄當前壓制完成時的壓力與位移值,存入SQLite數據庫中[7]以方便數據查詢、傳輸。
當壓制成功時,數據存入數據庫的代碼如下:
CppSQLite3DB db;
db.open(L\"\\Program Files\\PointerDB.db\"); //打開數據庫
db.execDML(L\"insert into record values ('OK', 'OK','\"+
tmp_data+L\"','\"+Machine_Id+L\"','\"+ C_tmp_mg+L\"','\"+
C_tmp_mm+L\"','\" +L\"','\"+tmp_sn+L\"','\"+tmp_time+L\"','\"+
User_Id+L\"');\");
//將成功的壓制信息、壓制日期、壓制機型、壓力、位移、生成碼、壓制時間、員工信息等存入數據庫
db.close(); //關閉數據庫
自動模式流程如圖4所示。
[開始壓制] [數據儲存,繪制曲線] [壓制是否成功?] [生成、存儲,打印序列碼] [N][Y] [壓制直至完成]
圖4 自動模式流程圖
2.5 數據查詢
數據查詢是智能儀表壓制系統里的一項重要功能,利用ClistCtrl列表控件編程,顯示查詢壓制過程的機型、員工、日期、時間等壓制相關數據。且查詢可以通過條件篩選,方便管理者了解所關心的信息。
數據導出可將SQLite數據庫中的壓制信息轉換成Excel的格式,并將轉換后的數據導出到U盤,也可通過以太網將轉換后的數據傳到遠端的計算機上,這樣大大方便了管理者對生產數據的了解,方便其對生產的統籌。數據查詢如圖5所示。
3 系統測試
本次實驗在寧波汽車廠進行,用標準電子稱進行壓力檢測。通過表1可以看出:本壓制機壓力采集精度比傳統壓制機精度略高。
圖5 數據查詢
表1 壓力測試結果分析
[標準電子稱測量(KG)\本壓制機測試值(KG)\測量誤差/(KG)\傳統壓制機(KG)\測量誤差(KG)\2.5\2.4\-0.1\2.6\+0.1\4\4.1\+0.1\3.8\-0.2\6.5\6.5\0\6.3\-0.2\8\8\0\7.9\-0.1\10.5\10.4\-0.1\10.5\0\12.5\12.5\0\12.7\+0.2\14.5\14.6\+0.1\14.4\-0.1\]
用千分尺對壓制機頭進行距離檢測。通過表2可以看出:本壓制機行進精度比傳統壓制機精度略高。
表2 距離測試結果分析
[千分尺測量(MM)\本壓制機測試值(MM)\測量誤差/(MM)\傳統壓制機(MM)\測量誤差(MM)\5.5\5.6\+0.1\5.4\-0.1\6.5\6.5\0\6.2\-0.3\7.5\7.6\+0.1\7.3\-0.2\8.5\8.4\-0.1\8.5\0\9.5\9.5\0\9.4\-0.1\10.5\10.6\+0.1\10.5\0\11.5\11.4\-0.1\11.8\+0.3\]
4 結束語
隨著經濟社會的不斷發展,汽車越來越普及,人們對汽車的生產工藝要求也越來越高,因此對儀表指針壓制系統的要求也越來越高。老式壓制機將漸漸被淘汰。本控制系統已在寧波某汽車裝配廠投入使用,并取得了良好的效果,實際應用表明,該儀表壓制系統大大提高了儀表壓制的效率與安全性,且操作簡單方便,測量數據準確,并能及時讓管理者了解生產數據,方便其統籌管理。但由于時間關系有一些問題還有待進一步深入研究,如:由于各工廠生產環境不同,還應通過增加外圍電路進一步提高系統的抗干擾能力,以適應不同的生產環境。
參考文獻:
[1] 尹成,黃永兵,胡耀文.Windows CE開發實戰詳解[M].人民郵電出版社,2012.
[2] 周立功.ARMWinCE 實驗與實踐[M].北京航空航天大學出版社,2007.
[3] 王浩.Windows CE嵌入式應用開發實訓教程[M].中國水利水電出版社,2010.
[4] 廖一鵬.嵌入式SQLite在溫濕度巡檢儀中的應用研究[J].光電技術應用,2010.5:61-64
[5] 戴昱.SQLite的SQL語句高速緩存技術[J].計算機系統應用,2012.1:183-186
[6] 汪兵.Windows CE嵌入式高級編程及其實例詳解[M].中國水利水電出版社,2008.
[7] 胡偉.SQLite在嵌入式系統上的實現研究[J].計算機與數字工程,2009.2:46-47