基于Delphi的第三方串行通訊組件實現(xiàn)TH2817數(shù)字電橋儀器擴展應(yīng)用
摘要:串行通訊是測試儀器必備的工業(yè)口,為了能更好的利用測試儀器的擴展功能,通過使用Delphi的第三方串行通訊組件,來實現(xiàn)PC機軟件與測試儀器的串行通訊,進而對測試儀器的擴展功能得以利用,使測試人員通過簡單的界面操作和數(shù)據(jù)設(shè)置就能對測試儀器進行操作,免去了解儀器復(fù)雜操作的環(huán)節(jié),同時也能實現(xiàn)對相關(guān)測試數(shù)據(jù)的電子處理和保存。
關(guān)鍵詞:Delphi;串行通訊;數(shù)字電橋儀器;CommDriver組件
在測試儀器不斷日新月異的當(dāng)今,工業(yè)接口(串行口)卻是測試儀器必備的,利用工業(yè)接口快速開發(fā)出適合自己的PC上位機軟件,對于開發(fā)測試儀器的擴展功能、實現(xiàn)儀器的智能控制和數(shù)據(jù)電子化有明顯的實際應(yīng)用意義。
1 數(shù)字電橋儀器與軟件開發(fā)工具
1.1 數(shù)字電橋簡介
TH2817數(shù)字電橋儀器介紹是一種高精度、寬測試范圍的阻抗測量儀器,可通過RS232C接口為儀器與計算機聯(lián)網(wǎng)通訊。
1.2 開發(fā)工具介紹
DelDhi是Windows平臺下著名的快速應(yīng)用程序開發(fā)工具(Rapid Application Development,簡稱RAD)。它的前身,即是DOS時代盛行一時的“Borland Turbo Pascal”,最早的版本由美國Borlancl(寶蘭)公司于1995年開發(fā)。主創(chuàng)者為AndersHejlsberg。經(jīng)過數(shù)年的發(fā)展,此產(chǎn)品也轉(zhuǎn)移至Embarcadero公司旗下。Delphi是一個集成開發(fā)環(huán)境(IDE),使用的核心是由傳統(tǒng)Pascal語言發(fā)展而來的Object Pascal,以圖形用戶界面為開發(fā)環(huán)境,透過IDE、VCL工具與編譯器,配合連結(jié)數(shù)據(jù)庫的功能,構(gòu)成一個以面向?qū)ο蟪绦蛟O(shè)計為中心的應(yīng)用程序開發(fā)工具。對于工業(yè)口的開發(fā)可以利用其封裝好的控制組件來完成,不僅節(jié)省了開發(fā)時間,也能很好的得到支持服務(wù),而其成熟的IDE對于界面化的開發(fā)也能起到加速作用。
2 軟件開發(fā)
2.1 軟件實現(xiàn)功能及數(shù)字電橋儀器串行數(shù)據(jù)格式
為了簡化復(fù)雜的儀器操作,實現(xiàn)儀器測試信息的集中自動化管理,利用PC上位機通用、高速的軟件編程能力來實現(xiàn)。通過RS232C可實現(xiàn)對儀器的測試設(shè)置,顯示設(shè)置,打印設(shè)置,并能接收來自儀器的測試信息,擴展儀器功能。
數(shù)字電橋儀器的串行通訊數(shù)據(jù)格式:發(fā)送數(shù)據(jù)格式包括了43個字節(jié)的信息,其中1-2字節(jié)為起始識別信息,中間字節(jié)信息均為儀器的測量數(shù)據(jù)信息,第43個字節(jié)為結(jié)束字符,也即在PC端接收數(shù)據(jù)時,每幀數(shù)據(jù)包括43個字節(jié)。接收數(shù)據(jù)格式包括了2個起始字符1個接收字符及2-9個字符的設(shè)置命令。
2.2 PC軟件設(shè)計
PC軟件設(shè)計的初衷就是為了簡單快捷的通過PC機實現(xiàn)對數(shù)字電橋儀器的控制,并能實現(xiàn)其結(jié)果的電子存檔。基于此PC需要實現(xiàn)接收數(shù)字電橋的串行口數(shù)據(jù),并能向串行口發(fā)送控制命令(數(shù)據(jù)),并能實現(xiàn)將數(shù)字電橋儀器的串行數(shù)據(jù)結(jié)果進行保存的打印。所以整個軟件的核心在于其串行數(shù)據(jù)的接收及發(fā)送。
2.2.1 Windows硬件訪問機制
Windows操作系統(tǒng)的機制禁止應(yīng)用程序直接訪問硬件,但它提供了豐富的API函數(shù),可以支持大多數(shù)的硬件和協(xié)議,并隱藏了許多底層的處理,為編程人員編制程序提供了方便,免除了編程人員對有關(guān)硬件的調(diào)試麻煩。但是利用API進行串口通訊編程較為復(fù)雜,需要掌握大量的通訊知識,相比較下利用組件進行程序開發(fā)則較為方便。而大多數(shù)開發(fā)語言的編程環(huán)境均支持組件,Delphi亦是如此。
Delphi的串口通訊需要利用第三方開發(fā)的組件,使用免費的組件CommDriver,其包含了串口通訊需求的基本操作。
2.2.2 開發(fā)步驟
1)需要利用組件對串行口的基本參數(shù)進行設(shè)置,這些參數(shù)的設(shè)置均可以通過組件的屬性進行設(shè)置:ComPort為串口號設(shè)置,此組件僅支持4個串口號的設(shè)置,而這在一般的應(yīng)用中足夠了,這一屬性設(shè)置可以通過選擇列表進行設(shè)置;ComPortDataBit用于設(shè)置數(shù)據(jù)位數(shù),根據(jù)測試儀器的通訊設(shè)置進行選擇,一般應(yīng)用中使用8 bit;ComPortSpeed用于設(shè)置波特率;ComPortParity用于設(shè)置校驗位;ComPortStopBit用于設(shè)置停止位。這些參數(shù)需要根據(jù)測試儀器情況,設(shè)置成與之相對應(yīng)的數(shù)據(jù),而其他參數(shù)可以使用默認設(shè)置等。由于開發(fā)的針對性以及儀器本身設(shè)置的固有屬性,所以這些基本參數(shù)無需作為軟件使用用戶的設(shè)置項出現(xiàn),可直接設(shè)定好固化在軟件中。
2)采用如下步驟進行串口數(shù)據(jù)的接收和發(fā)送:
①利用組件的Connect事件打開串口通訊;
②進行數(shù)據(jù)的接收和發(fā)送,CommDriver接收數(shù)據(jù)是通過ReceiveData事件執(zhí)行的,當(dāng)接收到數(shù)據(jù)后需要將其進行緩存,通過對緩存的數(shù)據(jù)進行分析處理來實現(xiàn)對儀器的數(shù)據(jù)解析,發(fā)送數(shù)據(jù)通過SendData事件來完成;
③使用組件的DisConnect事件來關(guān)閉串口。
然后,再根據(jù)用戶的操作習(xí)慣進行相關(guān)的界面的編程即可實現(xiàn)對測試儀器的訪問。
2.3 程序主要源代碼
接收串行數(shù)據(jù)源碼:利用串行組件的接收事件(Receive Data)來處理串行口的數(shù)據(jù)接收。
串行口接收數(shù)據(jù)處理源碼(部分):
為了保證儀器串口發(fā)送的數(shù)據(jù)能及時得到PC的響應(yīng)處理,將通過組件接收的存放在緩沖區(qū)中的數(shù)據(jù),按照測試儀器的發(fā)送時間要求,將其在定時器事件中進行處理。
儀器參數(shù)設(shè)置源碼(部分):這部分代碼是向儀器寫控制參數(shù),可以通過菜單或者按鈕來實現(xiàn)。
2.4 軟件實現(xiàn)后的界面
3 結(jié)束語
利用第3方控件進行串行通訊的PC軟件開發(fā),不僅縮短了編程人員的開發(fā)時間,而且也利于軟件的調(diào)試、維護,開發(fā)者僅需了解基本的通訊知識,通過簡單的代碼編程設(shè)囂即可完成相關(guān)功能。同時,用戶通過軟件操作可以省去復(fù)雜的儀器設(shè)置操作,也為測試儀器的有效利用以及測量數(shù)據(jù)的電子化提供了便利。