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

?

基于Delphi的上位機通信界面與數(shù)據(jù)庫管理系統(tǒng)設(shè)計

2018-08-08 06:28湯佳明安偉
電子設(shè)計工程 2018年14期
關(guān)鍵詞:用戶界面表格組件

湯佳明,安偉

(江南大學(xué)機械工程學(xué)院,江蘇無錫214122)

隨著電子技術(shù)的發(fā)展,現(xiàn)代汽車許多系統(tǒng)使用了大量傳感器和電子控制單元[1],相應(yīng)的軟件開發(fā)需求也不斷增加。同時,傳感器采集的數(shù)據(jù)不僅是一種巨大的經(jīng)濟資產(chǎn)[2],也是設(shè)計優(yōu)化與生產(chǎn)改良的重要來源。因此,針對當(dāng)前車輛系統(tǒng)軟件化程度不斷提升的趨勢與項目需求,開發(fā)相應(yīng)的上位機通信界面與數(shù)據(jù)庫管理軟件極為必要。

Delphi是一款可創(chuàng)建應(yīng)用服務(wù)器與客戶端應(yīng)用[3]的商業(yè)軟件。在使用由傳統(tǒng)面向過程的Pascal語言發(fā)展而來的Object Pascal語言[4]與數(shù)據(jù)庫語言的同時,包含面向?qū)ο蟮目梢暬_發(fā)模塊,可在Windows環(huán)境下開發(fā)各類應(yīng)用程序,在用戶界面與數(shù)據(jù)庫設(shè)計方面應(yīng)用廣泛。因此,考慮其簡易高效、成熟度高等特點[5],本文采用Delphi7.0開發(fā)上位機數(shù)據(jù)通信界面與數(shù)據(jù)庫管理軟件。

1 設(shè)計思路

本文設(shè)計的上位機數(shù)據(jù)通信界面也被稱為用戶界面,主要作用為使用戶能夠根據(jù)需求通過串口發(fā)送涉及汽車尾氣后處理過程的各類專用參數(shù)數(shù)據(jù),如發(fā)動機轉(zhuǎn)速、環(huán)境溫度壓力、進/排氣壓力等。

在設(shè)計用戶界面的同時,為方便對參數(shù)數(shù)據(jù)進行管理與編輯,將其統(tǒng)一置于數(shù)據(jù)庫文件中,并根據(jù)實際需求設(shè)計了相應(yīng)的簡易數(shù)據(jù)庫管理系統(tǒng)軟件。數(shù)據(jù)庫作為一類包含數(shù)據(jù)屬性描述的結(jié)構(gòu)化數(shù)據(jù)集合,具有數(shù)據(jù)采集、編輯、開發(fā)、共享等功能,是當(dāng)前大數(shù)據(jù)時代最基本的數(shù)據(jù)存儲單元之一,應(yīng)用前景廣闊。數(shù)據(jù)庫管理系統(tǒng)可對數(shù)據(jù)庫實施統(tǒng)一管控,根據(jù)使用的數(shù)據(jù)軟件類型分為大中型數(shù)據(jù)庫管理系統(tǒng)和小型數(shù)據(jù)庫管理系統(tǒng),前者基于Oracle、SQL Server、Sybase等軟件開發(fā),后者一般使用Access開發(fā)。本文在設(shè)計過程中采用MicrosoftAccess建立數(shù)據(jù)庫文件,這也是目前應(yīng)用最廣泛的桌面數(shù)據(jù)庫編輯系統(tǒng)[6],屬于小型數(shù)據(jù)庫管理系統(tǒng)。

2 上位機通信界面設(shè)計

根據(jù)項目開發(fā)要求,上位機數(shù)據(jù)通信工作方式分為按照控制器局域網(wǎng)(Controller Area Network,CAN)標(biāo)準(zhǔn)協(xié)議單點數(shù)據(jù)發(fā)送與Excel表格數(shù)據(jù)發(fā)送兩種。單點數(shù)據(jù)發(fā)送即每次發(fā)送單個參數(shù)數(shù)據(jù);表格數(shù)據(jù)發(fā)送則是選擇一個或多個以表格形式存在的參數(shù)數(shù)據(jù)發(fā)送,發(fā)送數(shù)量較多。在明確設(shè)計要求的基礎(chǔ)上,將界面分為4個功能模塊:通訊設(shè)置模塊、工作方式模塊、單點發(fā)送模塊、表格發(fā)送模塊,前兩者作用為選擇發(fā)送端口和波特率、選擇發(fā)送模式,后兩者實現(xiàn)不同數(shù)據(jù)發(fā)送模式的切換,上位機用戶界面工作流程如圖1所示。

圖1 用戶界面工作流程

2.1 數(shù)據(jù)讀取實現(xiàn)

實現(xiàn)界面功能的首要環(huán)節(jié)是讀取數(shù)據(jù),數(shù)據(jù)的讀取按照工作方式也分為單點讀取和表格讀取兩類。

在單點數(shù)據(jù)發(fā)送過程中,每個CAN數(shù)據(jù)前均有信息識別碼,用于區(qū)分特定數(shù)據(jù),在此也為每個參數(shù)設(shè)置了單獨的兩字節(jié)CAN線識別碼,統(tǒng)一用a[1]、a[2]表示,用于識別并讀取單點參數(shù),以“發(fā)送機轉(zhuǎn)速”參數(shù)為例,其CAN線識別碼為:a[1]=1,a[2]=0。

在表格數(shù)據(jù)發(fā)送過程中,由于數(shù)據(jù)以Excel文件形式編輯,故需準(zhǔn)確定位與引用文件,這涉及到了文件資源的分配操作。在Delphi7.0中,通常使用try…finally語句保證文件的讀取和釋放,實現(xiàn)讀取表格文件功能的部分代碼如下:

2.2 數(shù)據(jù)處理實現(xiàn)

數(shù)據(jù)處理過程分為解析和發(fā)送兩步,即將數(shù)據(jù)解析為規(guī)定格式后發(fā)送。在汽車電子系統(tǒng)的開發(fā)過程中,涉及電控系統(tǒng)—尤其是數(shù)據(jù)傳輸處理模塊—的開發(fā)時,通常根據(jù)CAN總線協(xié)議設(shè)計。作為由德國Bosch公司推出的一種現(xiàn)場總線技術(shù),其被廣泛應(yīng)用于車輛內(nèi)部的數(shù)據(jù)通信領(lǐng)域[7],我國也根據(jù)CAN標(biāo)準(zhǔn)制定了適用于國內(nèi)汽車開發(fā)領(lǐng)域的《商用車控制系統(tǒng)局域網(wǎng)絡(luò)(CAN)通信協(xié)議》(本文在此簡稱《協(xié)議》),《協(xié)議》規(guī)定了汽車電子系統(tǒng)開發(fā)過程中所涉及參數(shù)的數(shù)據(jù)范圍、分辨率、數(shù)據(jù)長度、類型等屬性,設(shè)計過程中根據(jù)其標(biāo)準(zhǔn)解析數(shù)據(jù)格式。在車輛發(fā)動機測試過程中,也有使用Delphi開發(fā)發(fā)動機電子測試系統(tǒng)的實例[8],在此可以作為參考。

以“發(fā)動機轉(zhuǎn)速”參數(shù)為例:《協(xié)議》中規(guī)定其數(shù)據(jù)長度為兩個字節(jié),數(shù)據(jù)范圍為0-8031.875rpm(轉(zhuǎn)/分鐘),分辨率為0.125rpm/位遞增,類型為測量值,故在此將轉(zhuǎn)速分為高位和低位兩個字節(jié),每個字節(jié)分兩部分發(fā)送,解析代碼如下:

由于轉(zhuǎn)速分辨率為0.125=1/8,所以將緩沖量放大8倍后進行解析運算,解析完成后通過串口端發(fā)送數(shù)據(jù)。a[5]、a[6]組成發(fā)動機轉(zhuǎn)速低位字節(jié),a[7]、a[8]組成轉(zhuǎn)速高位字節(jié)。同時,由于串口只能發(fā)送字符型變量,故在發(fā)送前需將解析數(shù)據(jù)轉(zhuǎn)換為字符型數(shù)據(jù),在此使用轉(zhuǎn)換字符char()將解析數(shù)據(jù)轉(zhuǎn)換為字符型量后經(jīng)串口發(fā)送,轉(zhuǎn)化語句如下:

MSComm1.Output:=char(a[5]);

2.3 用戶界面顯示

編譯完成的用戶通信界面如圖2所示。界面分為四個功能區(qū),通訊設(shè)置完成后指示燈變?yōu)榧t色,選擇工作方式后即可在對應(yīng)模塊區(qū)域進行操作,如當(dāng)前確定單點發(fā)送后在對應(yīng)區(qū)域選擇參數(shù)發(fā)送即可。

圖2 用戶通信界面

3 數(shù)據(jù)庫管理系統(tǒng)設(shè)計

數(shù)據(jù)庫管理系統(tǒng)實現(xiàn)了對數(shù)據(jù)的編輯與管理功能,典型的數(shù)據(jù)庫管理系統(tǒng)通常分為三部分:用戶界面、數(shù)據(jù)訪問鏈路和數(shù)據(jù)庫文件,三者組成一個完整的數(shù)據(jù)庫體系結(jié)構(gòu)。在設(shè)計過程中,如何訪問和連接數(shù)據(jù)庫是關(guān)鍵。目前,Delphi提供并支持兩種數(shù)據(jù)庫訪問連接方式:數(shù)據(jù)引擎(Borland Database Engine,BDE)方式和動態(tài)數(shù)據(jù)對象(Active Data Objects,ADO)方式[9]。

BDE方式是Borland公司自身開發(fā)的專用數(shù)據(jù)庫連接方式,通過BDE組件連接。ADO全稱為動態(tài)數(shù)據(jù)對象,是由微軟公司開發(fā)的一種訪問數(shù)據(jù)庫的常用技術(shù),由一組組件模型構(gòu)成,簡潔易控、功能豐富[10]、占用內(nèi)存少[11]。兩者相比,ADO技術(shù)應(yīng)用廣泛,在工業(yè)生產(chǎn)[12-13]與軌道交通領(lǐng)域[14]均有應(yīng)用實例。Delphi中的ADO技術(shù)是Borland公司基于微軟ADO數(shù)據(jù)庫連接引擎開發(fā)的一種數(shù)據(jù)連接方法,其優(yōu)勢在于當(dāng)使用到該數(shù)據(jù)庫應(yīng)用系統(tǒng)時,不需要對數(shù)據(jù)庫驅(qū)動打包。同時,由于Delphi采用的是本地編譯器直接生成技術(shù)[15],在設(shè)計數(shù)據(jù)庫管理軟件時執(zhí)行效率較高,因此在此選擇ADO數(shù)據(jù)庫連接方式。

采用ADO組件的數(shù)據(jù)庫連接方式如圖3所示。Access數(shù)據(jù)庫需通過ADO連接方式對數(shù)據(jù)進行訪問[16],經(jīng)由數(shù)據(jù)控制組件訪問數(shù)據(jù)庫,通過顯示組件進行查詢編輯。

圖3 ADO連接方式

數(shù)據(jù)庫管理軟件包含3個主功能:數(shù)據(jù)修改、數(shù)據(jù)添加、數(shù)據(jù)刪除,同時,考慮到數(shù)據(jù)庫所含數(shù)據(jù)較多,所以在修改和刪除前添加數(shù)據(jù)查詢功能,以上均為目前項目開發(fā)過程中使用最頻繁的功能。因此,用戶界面也基于這一需求設(shè)計為修改數(shù)據(jù)、添加數(shù)據(jù)、刪除數(shù)據(jù)三大部分,數(shù)據(jù)庫管理系統(tǒng)工作流程如圖4所示。

圖4 數(shù)據(jù)庫管理系統(tǒng)工作流程

3.1 數(shù)據(jù)修改與刪除功能設(shè)計

數(shù)據(jù)修改界面用于查詢并修改指定數(shù)據(jù)、數(shù)據(jù)刪除界面用于查詢并刪除用戶指定數(shù)據(jù),由于數(shù)據(jù)庫往往包含大量數(shù)據(jù),故實現(xiàn)數(shù)據(jù)的查詢功能是關(guān)鍵,兩者均遵循“先查詢后操作”的原則,界面布局也相同。在本文設(shè)計的數(shù)據(jù)庫中,單個數(shù)據(jù)通常包含編號、名稱、單位、數(shù)值等多個屬性,其中僅編號與名稱具有唯一性,故將二者作為查詢關(guān)鍵詞。以根據(jù)參數(shù)編號查詢參數(shù)為例,實現(xiàn)數(shù)據(jù)查詢功能的部分代碼如下:

3.2 數(shù)據(jù)添加功能設(shè)計

數(shù)據(jù)添加界面用于根據(jù)需求增加參數(shù),拓展數(shù)據(jù)范圍。此處輸入的增添數(shù)據(jù)與修改時有區(qū)別,主要在于編輯組件的不同。此處用到了控制組件中的TDBEdit組件,這是一類單行字段編輯框組件,可編輯修改數(shù)據(jù)集中一個特定字段的值。實現(xiàn)數(shù)據(jù)添加功能的部分代碼如下:

3.3 界面顯示

圖5 系統(tǒng)運行界面

數(shù)據(jù)庫管理系統(tǒng)運行顯示界面如圖5所示。3個功能頁面置于同一窗體中,點擊不同的頁面標(biāo)簽完成功能切換,頁面均包含左側(cè)的表格數(shù)據(jù)顯示與右側(cè)的屬性編輯界面,不同之處在于修改和刪除功能頁面增加了位于左下方的查詢功能。圖中,圖(a)為修改編號為10的參數(shù)數(shù)據(jù)界面,圖(b)增添了編號為157的參數(shù),圖(c)則通過刪除功能刪除了新增的157號參數(shù)。

4 結(jié)論

本文說明了基于CAN通信標(biāo)準(zhǔn)的上位機用戶數(shù)據(jù)通信界面和相應(yīng)數(shù)據(jù)庫系統(tǒng)管理軟件的設(shè)計過程。使用Delphi開發(fā)用戶界面和數(shù)據(jù)庫系統(tǒng)軟件,解決了汽車后處理系統(tǒng)開發(fā)過程中數(shù)據(jù)的通信與管理問題,在降低軟件成本的同時具有良好的擴展性。其中,用戶界面根據(jù)CAN通信協(xié)議標(biāo)準(zhǔn)設(shè)置數(shù)據(jù)發(fā)送格式,采用可視化模塊組件進行界面布局,簡潔方便;簡易數(shù)據(jù)庫管理系統(tǒng)通過ADO方式構(gòu)建訪問鏈路以連接數(shù)據(jù)庫與用戶界面,設(shè)置ADO表格連接組件與數(shù)據(jù)源模塊控制系統(tǒng)界面的數(shù)據(jù)顯示。

總體而言,上位機界面與數(shù)據(jù)庫管理系統(tǒng)達到了設(shè)計要求,能夠執(zhí)行特定的數(shù)據(jù)通信與編輯任務(wù),對依托更高級工具平臺的深入開發(fā)過程具有一定參考價值。但其仍存在不足之處,主要在于通信界面與數(shù)據(jù)庫系統(tǒng)功能較少,無法滿足較復(fù)雜的通信管理任務(wù),需進一步拓展功能。

猜你喜歡
用戶界面表格組件
《現(xiàn)代臨床醫(yī)學(xué)》來稿表格要求
無人機智能巡檢在光伏電站組件診斷中的應(yīng)用
《現(xiàn)代臨床醫(yī)學(xué)》來稿表格要求
基于CiteSpace的國外用戶界面體驗圖譜量化分析
新型碎邊剪刀盤組件
統(tǒng)計表格的要求
U盾外殼組件注塑模具設(shè)計
物聯(lián)網(wǎng)用戶界面如何工作
UI用戶界面色彩設(shè)計研究
風(fēng)起新一代光伏組件膜層:SSG納米自清潔膜層