DELPHI 語言在遠(yuǎn)程紅外測溫報(bào)警系統(tǒng)中的應(yīng)用
出處:hotpower 發(fā)布于:2010-12-01 19:21:03
摘要:本文主要介紹了DELPHI 串行通信,以及怎樣使用DELPHI 語言編程實(shí)現(xiàn)溫度的實(shí)時(shí)采集以及處理顯示。
0 引言
溫度是一個(gè)十分重要的物理量,對它的測量與控制有著十分重要的意義,在現(xiàn)代工業(yè)生產(chǎn)中溫度也是常見的工藝參數(shù)之一,任何物理變化和化學(xué)反應(yīng)過程都與溫度密切相關(guān),隨著時(shí)代的不斷發(fā)展,現(xiàn)代工農(nóng)業(yè)技術(shù)的不斷進(jìn)步, 人們對生活環(huán)境要求的提高,使得對于溫度的測量和控制的要求越來越高, 迫切需要檢測與控制溫度。
1 系統(tǒng)總體介紹
本系統(tǒng)主要包括三個(gè)模塊:下位機(jī)硬件設(shè)計(jì)部分、下位機(jī)軟件設(shè)計(jì)部分和上位機(jī)軟件設(shè)計(jì)部分。本文涉及的主要是上位機(jī)軟件程序設(shè)計(jì)部分,使用語言Delphi 編制上位機(jī)監(jiān)控程序,并通過RS-232 串行通信口與下位機(jī)系統(tǒng)實(shí)現(xiàn)實(shí)時(shí)通信。同時(shí)為了操作方便,系統(tǒng)還附加了遙控器部分。其中系統(tǒng)的原理框圖如圖1 所示:

圖1 系統(tǒng)的原理框圖
2 主要控件介紹:
2.1 TComm 控件:
用Delphi 實(shí)現(xiàn)串口通訊,常用的幾種方法為:使用控件如TComm,使用API 函數(shù)或者在Delphi 中調(diào)用其它串口通訊程序。下面詳細(xì)介紹TComm 的使用。
a)TComm 的主要屬性
Name:對象的名稱,對象放置完成后,是個(gè)必須要設(shè)置的屬性。
CommPort:通信端口的選擇。
PortOpen:打開或關(guān)閉通信端口。
BaudRate:傳輸速度的選擇。
b)TComm 的主要事件
OnReceiveData:當(dāng)接收到數(shù)據(jù)時(shí)觸發(fā)。
OnReceiveError:當(dāng)接收數(shù)據(jù)錯(cuò)誤時(shí)觸發(fā)。
OnModemStateChange:當(dāng)引腳的電壓發(fā)生變化時(shí)觸發(fā)。
d)TComm 的主要方法
OutputString:輸出文字?jǐn)?shù)據(jù)到串行端口。
OutputByte:輸出字節(jié)數(shù)據(jù)到串行端口。
ReadInputByte:以字節(jié)方式讀取緩沖區(qū)內(nèi)的數(shù)據(jù)。
2.2 TChart 組件:
TChart 是Delphi 里面一個(gè)標(biāo)準(zhǔn)的圖形顯示控件。它可以靜態(tài)設(shè)計(jì)(at design time)也可以動(dòng)態(tài)生成。TChart 的實(shí)時(shí)繪制對機(jī)器性能要求比較高,因此在編程的時(shí)候要注意:
?。?)使用2d 圖形;⑵Chart 盡可能包含少的點(diǎn)。
a)TChart 組件的主要事件
OnPageChange:當(dāng)改變頁的時(shí)候,此事件發(fā)生。
OnMouseDown:當(dāng)鼠標(biāo)按下時(shí)產(chǎn)生。
OnAfterDraw 事件:該事件是在繪制所有的Series 時(shí)發(fā)生的。
OnClick 事件:該事件是在用戶單擊Series 點(diǎn)時(shí)發(fā)生的。
OnZoom 事件:該事件是在圖表放大時(shí)觸發(fā)。
b)TChart 組件的主要方法
ActiveSeriesLegend 函數(shù):該函數(shù)用于返回當(dāng)前活動(dòng)的Series,如果所有的Series 都是活動(dòng)的,需要為該函數(shù)確定要返回Series 的序號。
AddSeries 過程:該過程用于添加一個(gè)Series 對象。
3 系統(tǒng)各具體模塊設(shè)計(jì)
3. 1 系統(tǒng)主界面設(shè)計(jì)
用戶登錄到主界面之后,在主界面中,可以實(shí)現(xiàn)通過面板或者菜單來設(shè)置溫度的上下限,系統(tǒng)實(shí)時(shí)顯示測試時(shí)間,同時(shí)在面板上通過狀態(tài)燈顯示當(dāng)前系統(tǒng)的工作狀態(tài)。

圖2 系統(tǒng)主界面
同時(shí)在主界面的菜單中,可以進(jìn)行通信端口的選擇、通信波特率的選擇、修改密碼、幫助以及退出系統(tǒng)。
3.2 修改密碼模塊設(shè)計(jì)
為了系統(tǒng)的安全,系統(tǒng)增加了修改密碼模塊。如果要修改密碼,首先要輸入原來的密碼,而后輸入新密碼,重新輸入新密碼并確定,如果輸入的兩次新密碼相同,則修改密碼成功,如果輸入的兩次新密碼不同,則修改密碼失敗,則重新輸入新密碼。
3.3 通信模塊的設(shè)計(jì)
本次設(shè)計(jì)使用RS232 轉(zhuǎn)RS485 轉(zhuǎn)換器實(shí)現(xiàn)遠(yuǎn)程監(jiān)控的,采用的是半雙工的數(shù)據(jù)傳輸方式和異步通信方式,串行口工作于模式1。
傳輸數(shù)據(jù)的格式如下:首先上位機(jī)發(fā)送FF 給下位機(jī),下位機(jī)檢測到時(shí),將溫度傳送給上位機(jī)。向單片機(jī)發(fā)送上限溫度命令,格式:FE,XX;向單片機(jī)發(fā)送下限溫度命令,格式:FD,XX;設(shè)置監(jiān)控,格式:FC;取消監(jiān)控,格式:FB;向單片機(jī)發(fā)送點(diǎn)擊上限按鈕,格式:FA;向單片機(jī)發(fā)送點(diǎn)擊下限按鈕,格式:F9。
a)接收數(shù)據(jù)
上位機(jī)采用事件驅(qū)動(dòng)方式接收數(shù)據(jù)。當(dāng)下位機(jī)傳送一幀數(shù)據(jù)上來輸入緩存時(shí),將觸發(fā)TCOMM 組件的OnReceiveData 事件,對數(shù)據(jù)進(jìn)行接收。然后對接收的數(shù)據(jù)進(jìn)行判斷,分別轉(zhuǎn)相應(yīng)的處理程序。下面是數(shù)據(jù)接收的程序段:
begin
try
count:=form1.Comm1.ReadInputByte(pt);
if ((count+1) mod 4<>0) then
begin
form1.Comm1.DataCount:=0;
exit;
end;
for i:=0 to 3 do
begin
re[i]:=pt^;
inc(pt);
end;
… //數(shù)據(jù)處理部分
b)發(fā)送數(shù)據(jù)
發(fā)送數(shù)據(jù)采用異步I/O 方式,即將要發(fā)送的數(shù)據(jù)用WriteCommData 方法發(fā)送到寫線程,然后立即返回。該方法所有的操作均在后臺進(jìn)行,如果發(fā)送成功,返回True, 發(fā)送失敗,返回False。下面是發(fā)送數(shù)據(jù)的主要程序段:
form1.Comm1.PortOpen:=true;
form1.Comm1.OutputByte(send);
timedelay(300);
3.4 系統(tǒng)初始化模塊設(shè)計(jì)
本系統(tǒng)初始化部分設(shè)計(jì)程序如下:
begin
Position:=poscreencenter;
form1.Comm1.DataCount:=0;
form1.Comm1.RThreshold:=1;
form1.Comm1.PortOpen:=true;//串行口初始化
form1.sys_ini();//系統(tǒng)參數(shù)初始化
…
3.5 參數(shù)設(shè)置模塊設(shè)計(jì)
為了系統(tǒng)的操作方便,在菜單中加入了參數(shù)的設(shè)置,可以選擇串行口,選擇通信的波特率等等。
4 結(jié)束語
系統(tǒng)經(jīng)過一個(gè)多月的觀察測試,該軟件系統(tǒng)運(yùn)行穩(wěn)定,使用操作方便,測量高。
版權(quán)與免責(zé)聲明
凡本網(wǎng)注明“出處:維庫電子市場網(wǎng)”的所有作品,版權(quán)均屬于維庫電子市場網(wǎng),轉(zhuǎn)載請必須注明維庫電子市場網(wǎng),http://m.58mhw.cn,違反者本網(wǎng)將追究相關(guān)法律責(zé)任。
本網(wǎng)轉(zhuǎn)載并注明自其它出處的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點(diǎn)或證實(shí)其內(nèi)容的真實(shí)性,不承擔(dān)此類作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。其他媒體、網(wǎng)站或個(gè)人從本網(wǎng)轉(zhuǎn)載時(shí),必須保留本網(wǎng)注明的作品出處,并自負(fù)版權(quán)等法律責(zé)任。
如涉及作品內(nèi)容、版權(quán)等問題,請?jiān)谧髌钒l(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。
- 壓力傳感器技術(shù)特性與選型運(yùn)維指南2026/1/5 10:23:00
- 工業(yè)級激光位移傳感器技術(shù)參數(shù)與選型運(yùn)維指南2025/12/26 10:25:33
- 工業(yè)級壓力傳感器技術(shù)參數(shù)與選型運(yùn)維指南2025/12/25 10:01:00
- 工業(yè)級溫濕度傳感器技術(shù)參數(shù)與選型運(yùn)維指南2025/12/25 9:52:01
- 工業(yè)傳感器選型與信號采集抗干擾技術(shù)全解析2025/12/18 10:43:18
- PCB電源完整性設(shè)計(jì)核心規(guī)范(PowerIntegrity)
- 工業(yè)電源與消費(fèi)級電源的差異
- 機(jī)器學(xué)習(xí)在濾波器設(shè)計(jì)中的應(yīng)用:自動(dòng)化優(yōu)化與性能預(yù)測
- 連接器失效的常見原因分析
- 過流、過壓保護(hù)在電源IC中的實(shí)現(xiàn)
- PCB電磁兼容(EMC)設(shè)計(jì)核心規(guī)范
- MOSFET短路失效案例分析
- IIR與FIR數(shù)字濾波器的核心差異、設(shè)計(jì)方法及應(yīng)用場景
- 防水連接器結(jié)構(gòu)與密封原理
- 電源IC散熱設(shè)計(jì)與熱管理









