您好, 歡迎來到包裝印刷網(wǎng)! 登錄| 免費(fèi)注冊| 產(chǎn)品展廳| 收藏商鋪|
當(dāng)前位置:上海亞津電子科技有限公司>>技術(shù)文章>>Windows下基于串口通信的汽車衡解決方案
先簡要說明了 Windows下的串口編程方法,以及在Delphi編程環(huán)境下的實(shí)現(xiàn)原理,然后闡述了通過這種方法 來實(shí)現(xiàn)它在地磅中的應(yīng)用.
地磅作為一種特殊的衡器,廣泛應(yīng)用于工農(nóng)業(yè)生產(chǎn)中,通常情況下,用戶一般采用的是某些廠家生產(chǎn)的地磅儀表,這些儀表雖然提供了一些諸如稱重、置零、去皮以及簡單的打印功能.但是在實(shí)際使用中,如果 只是僅僅使用這種儀表,還是顯得不夠方便、靈活.尤其是在需要對(duì)數(shù)據(jù)進(jìn)行查詢、統(tǒng)計(jì)、匯總,以及在管理 工作中需要對(duì)數(shù)據(jù)進(jìn)行其它處理等方面.本解決方案就是將地磅儀表通過串口與計(jì)算機(jī)相連,通過軟件擴(kuò)展 其功能,使其使用起來更加方便、靈活、實(shí)用.同時(shí)還可以實(shí)現(xiàn)較遠(yuǎn)距離的操作.
1.實(shí)現(xiàn)原理
1.1 Windows下串口編程方法
(1)串口基本接線方法目前較為常用的串口有9針串口(DB9)和25針串口(DB25),通信距離較近時(shí)(<12m), 可以用電纜線直接連接標(biāo)準(zhǔn)RS232端口(RS422,RS485較遠(yuǎn)),若距離較遠(yuǎn),需附加調(diào)制解調(diào)器(MODEM).zui為 簡單且常用的是三線制接法,即地、接收數(shù)據(jù)和發(fā)送數(shù)據(jù)三線對(duì)應(yīng)相連,表1中給出三線制接法各引腳的連接 法.本解決方案中采用的是計(jì)算機(jī)的9針串行通訊口與稱重儀表的25針串行通訊口相聯(lián).
(2)Windows下串口編程方法在Windows下,實(shí)現(xiàn)串口編程一般采用兩種方法,一是利用Windows本身提 供的通訊Api函數(shù),這種方法雖然使用面廣,功能強(qiáng)大,但由于編程復(fù)雜,使用起來具有一定的難度,一般用戶 不易使用.二是利用某種編程語言提供的通訊組件(控件)來實(shí)現(xiàn),這種方法使用起來簡單一些,一般為大多數(shù) 編程者使用.關(guān)于Windows下的串口編程編程方法,文獻(xiàn)給出了較為詳細(xì)的說明.
1.2硬件連接及數(shù)據(jù)通信的實(shí)現(xiàn)
(1)硬件連接在硬件連接的時(shí)候,可以根據(jù)在實(shí)際應(yīng)用中,通訊距離的遠(yuǎn)近,是否需要讓多個(gè)用戶、部門 使用數(shù)據(jù)等具體情況,靈活搭配.本解決方案的硬件連接示意圖如圖1。
重量傳感器與稱重儀表之間的連接,采用9芯(DB9)插座’稱重儀表與計(jì)算初之間的連接’采用25芯(DB25)插座, 需要注意的是,重量傳感器與稱重儀表之間的連接必須可靠,傳感器的屏蔽線必須可靠地接地,以免損壞儀表。
(2)數(shù)據(jù)通信的實(shí)現(xiàn)只有將數(shù)據(jù)采集到后,我們才能夠?qū)?shù)據(jù)進(jìn)行進(jìn)一步加工、處理.所以,數(shù)據(jù)通信的實(shí)現(xiàn), 是本解決方案的關(guān)鍵.而數(shù)據(jù)通信的核心、是如何實(shí)現(xiàn)串口編程,通過串口進(jìn)行數(shù)據(jù)通信,從而實(shí)現(xiàn)數(shù)據(jù)的采集.
在本解決方案中,我們采用的是Delphi開發(fā)環(huán)境,借助于微軟的Mscomm控件.此控件件提供了標(biāo)準(zhǔn)的事件 處理函數(shù)和過程,通過方法來設(shè)置串行通信的參數(shù)(端口、波特率、校驗(yàn)等),從而比較容易實(shí)現(xiàn)串行通信.但 是Mscomm控件在Delphi中還不能只直接使用,必須先通過注冊,然后安裝.Mscomfn控件的主要屬性和方法可 以參閱文獻(xiàn)。本解決方案中對(duì)這一部分的處理,主要是通過如下來解決的.
創(chuàng)建窗體時(shí),創(chuàng)建通訊組件,然后設(shè)置參數(shù).主要語句如下: procedure tmainform.formcreate(sender:tobject);
Fccomm:=tmscomm.create(self); // 創(chuàng)建通訊組件
Fcomm.inbuffersize: 14 II設(shè)置輸入緩沖區(qū)數(shù)
Fcomm.outbuffersize;=6 //設(shè)置輸出緩沖區(qū)數(shù)
Fbaudrate:=iniFileReadInteger(,comm,,'Baudrate,2400) // 設(shè)置波特率
開始并測試通訊端口 主要語句如下:
If (Fcommonil) and not Fcomm portopen then begin
commok:=fa!se;
try
Focmm.portopen:=true;
except
end.
if fcomm.prtopen then begin
向通訊端口發(fā)指令
2.數(shù)據(jù)處理
數(shù)據(jù)通信完成以后,我們就可以處理從稱重儀表中采集來的數(shù)據(jù)了.對(duì)于數(shù)據(jù)處理這一部分來說,實(shí)現(xiàn)起 來比較容易,通過一般的數(shù)據(jù)庫編程就可以達(dá)用戶的要求.但是,在實(shí)際使用中,還應(yīng)該考慮到用戶對(duì)數(shù)據(jù)管 理的要求,比如數(shù)據(jù)的安全性、用戶的合法性及權(quán)限、是否允許多個(gè)用戶、部門查看、處理這些數(shù)據(jù)等.因此, 在對(duì)采集到的數(shù)據(jù)作相應(yīng)處理的時(shí)候,還應(yīng)該添加相應(yīng)的模塊以滿足用戶的要求.
3.結(jié)束語
我們采用這種方式成功地為四川達(dá)縣檳榔煤礦、柏林煤礦等開發(fā)出了用于實(shí)際的應(yīng)用系統(tǒng),并且在實(shí)際使 用中取得了良好的經(jīng)濟(jì)效益。
請(qǐng)輸入賬號(hào)
請(qǐng)輸入密碼
請(qǐng)輸驗(yàn)證碼
以上信息由企業(yè)自行提供,信息內(nèi)容的真實(shí)性、準(zhǔn)確性和合法性由相關(guān)企業(yè)負(fù)責(zé),包裝印刷網(wǎng)對(duì)此不承擔(dān)任何保證責(zé)任。
溫馨提示:為規(guī)避購買風(fēng)險(xiǎn),建議您在購買產(chǎn)品前務(wù)必確認(rèn)供應(yīng)商資質(zhì)及產(chǎn)品質(zhì)量。