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

?

基于Delphi的第三方串行通訊組件實現(xiàn)TH2817數(shù)字電橋儀器擴展應(yīng)用

2012-01-29 07:19何江科羅友哲
電子設(shè)計工程 2012年12期
關(guān)鍵詞:串口通訊編程

何江科,羅友哲,劉 旸

(陜西省電子信息產(chǎn)品監(jiān)督檢驗院 陜西 西安 710004)

在測試儀器不斷日新月異的當今,工業(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ā)工具介紹

Delphi是Windows平臺下著名的快速應(yīng)用程序開發(fā)工具(Rapid Application Development,簡稱 RAD)。它的前身,即是DOS時代盛行一時的“Borland Turbo Pascal”,最早的版本由美國Borland(寶蘭)公司于1995年開發(fā)。主創(chuàng)者為Anders Hejlsberg。經(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ù)格式

為了簡化復雜的儀器操作,實現(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é)果的電子存檔?;诖薖C需要實現(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ā)則較為方便。而大多數(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事件打開串口通訊;

③使用組件的DisConnect事件來關(guān)閉串口。

然后,再根據(jù)用戶的操作習慣進行相關(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)后的界面

圖1 軟件實現(xiàn)后的界面Fig.1 Software realized interface

3 結(jié)束語

利用第3方控件進行串行通訊的PC軟件開發(fā),不僅縮短了編程人員的開發(fā)時間,而且也利于軟件的調(diào)試、維護,開發(fā)者僅需了解基本的通訊知識,通過簡單的代碼編程設(shè)置即可完成相關(guān)功能。同時,用戶通過軟件操作可以省去復雜的儀器設(shè)置操作,也為測試儀器的有效利用以及測量數(shù)據(jù)的電子化提供了便利。

[1]李存斌,汪冰.Delphi深度編程及其項目應(yīng)用開發(fā)[M].北京:中國水利水電出版社,2002.

[2]江義華.Delphi7完美經(jīng)典[M].北京:中國鐵道出版社,2003.

[3]張海卿,張占軍.Delphi7編程技巧與實例精解[M].北京:國防工業(yè)出版社,2003.

[4]Marco Cantù.Delphi 2010 Handbook[EB/OL].(2010).http://www.marcocantu.com/dh2010

[5]百度百科.Delphi[EB/OL].(2012).http://baike.baidu.com/view/3297.htm.

[6]Marco Cocco.ComDrv32.pas[EB/OL].Italy:(1997).http://www.mdlive.com/d3k.

[7]王錚一,鄭文杰.基于基因表達式編程的變壓器故障診斷[J].陜西電力,2012(04):82-85.WANG Zheng-yi,ZHENG Wen-jie.GEP-based transformer fault diagnosis[J].Shaanxi Electric Power,2012(04):82-85.

猜你喜歡
串口通訊編程
《茶葉通訊》簡介
《茶葉通訊》簡介
通訊報道
編程,是一種態(tài)度
元征X-431實測:奔馳發(fā)動機編程
淺談AB PLC串口跟RFID傳感器的通訊應(yīng)用
編程小能手
紡織機上誕生的編程
通訊簡史
數(shù)字電源內(nèi)部數(shù)據(jù)傳輸?shù)拇谕ㄐ欧椒▽崿F(xiàn)
延川县| 古田县| 潍坊市| 阳江市| 当涂县| 喀什市| 桃源县| 敖汉旗| 远安县| 温宿县| 扬州市| 高密市| 南华县| 泸定县| 巴塘县| 抚宁县| 城市| 墨江| 怀柔区| 新河县| 宁城县| 高平市| 紫云| 定州市| 城固县| 广水市| 北票市| 石河子市| 固阳县| 威信县| 海伦市| 合川市| 屏东县| 滕州市| 镇安县| 酉阳| 泰州市| 奉化市| 丹阳市| 文安县| 古浪县|