您好, 歡迎來到儀表網(wǎng)! 登錄| 免費(fèi)注冊(cè)| 產(chǎn)品展廳| 收藏商鋪|
針對(duì)渦輪流量計(jì)高精度采集器,設(shè)計(jì)相應(yīng)的遠(yuǎn)程監(jiān)測(cè)軟件,以實(shí)現(xiàn)遠(yuǎn)程后臺(tái)自動(dòng)監(jiān)測(cè)流量的目的。系統(tǒng)將采集到的數(shù)據(jù)進(jìn)行分析、處理,從而實(shí)現(xiàn)實(shí)時(shí)監(jiān)測(cè)流體流速的功能,數(shù)據(jù)的傳輸通過RS485總線,將基于STC12C2052單片機(jī)設(shè)計(jì)的采集器傳送來的數(shù)據(jù)傳到后臺(tái)上位機(jī)上,在上位機(jī)通過C#寫的監(jiān)測(cè)程序進(jìn)行高精度較準(zhǔn)確的實(shí)時(shí)監(jiān)測(cè)待測(cè)流體流速,具有一定的實(shí)用性和創(chuàng)新性。
1 引言
在工農(nóng)業(yè)生產(chǎn)和科學(xué)研究試驗(yàn)中,要用氣體流量計(jì)對(duì)輸送管道流體進(jìn)行流量檢測(cè)。流量計(jì)分類廣泛,其中,渦輪流量計(jì)由于其測(cè)量精度高、穩(wěn)定性好、對(duì)流量變化反應(yīng)迅速,抗*力強(qiáng)等特點(diǎn)被廣泛運(yùn)用于測(cè)量精度要求高、流量變化快的場(chǎng)合,其輸出信號(hào)為正弦脈沖波信號(hào),便于遠(yuǎn)傳及與PC機(jī)相連,這樣在PC機(jī)上的用戶界面上便于數(shù)據(jù)采集及處理和分析。本文所研究的渦輪流量計(jì)實(shí)時(shí)監(jiān)測(cè)系統(tǒng),通過對(duì)渦輪流量計(jì)輸出電信號(hào)轉(zhuǎn)換成相同頻率的方波,對(duì)其脈寬進(jìn)行測(cè)量,將采集的數(shù)據(jù)進(jìn)行修正后現(xiàn)場(chǎng)液晶顯示,同時(shí)通過RS485串行通訊方式向上位機(jī)發(fā)送數(shù)據(jù),由上位機(jī)的監(jiān)測(cè)程序可以實(shí)時(shí)監(jiān)測(cè)渦輪流量計(jì)測(cè)得的流速。
2 系統(tǒng)設(shè)計(jì)思想
渦輪流量計(jì)流量積算儀的輸出是與流速成正比的類正弦波信號(hào),通過信號(hào)調(diào)理電路對(duì)此信號(hào)進(jìn)行濾波、放大、整形處理,輸入單片機(jī)采集信號(hào)的頻率,通過頻率計(jì)算渦輪流量計(jì)此刻測(cè)得的流速,將流速數(shù)據(jù)顯示在液晶屏上,同時(shí)單片機(jī)發(fā)出數(shù)據(jù),通過RS485總線傳輸?shù)娇刂茩C(jī)房中的上位機(jī)處,上位機(jī)的監(jiān)測(cè)程序?qū)崟r(shí)監(jiān)測(cè)渦輪流量計(jì)測(cè)得流速.
2.1 流速的處理
對(duì)于流速的處理,一種方法是將渦輪流量計(jì)輸出正弦波進(jìn)行信號(hào)調(diào)理放大整形成方波,輸入單片機(jī)進(jìn)行計(jì)數(shù),然后通過單位時(shí)間內(nèi)的脈沖數(shù)計(jì)算流速。
這種方法被廣泛應(yīng)用于當(dāng)前的渦輪流量計(jì)中,本系統(tǒng)原本的思想是測(cè)量半個(gè)波長的脈寬,以此來計(jì)算出一個(gè)波長,從而通過公式算出頻率,不過信號(hào)調(diào)理電路轉(zhuǎn)換出來的波形下脈沖要比上脈沖略寬(見圖2),目前是通過測(cè)量方波一個(gè)周期的寬度,來計(jì)算當(dāng)前的頻率,這使得數(shù)據(jù)相對(duì)于計(jì)數(shù)來平均計(jì)算更實(shí)時(shí),更。
2.2 通信協(xié)議
液位變送器在低速、短距離、無干擾的場(chǎng)合可以采用普通的雙絞線,反之,在高速、長線傳輸時(shí),則必須采用阻抗匹配(一般為120Ω)的RS485電纜。本系統(tǒng)由于現(xiàn)場(chǎng)環(huán)境復(fù)雜,干擾較強(qiáng),下位機(jī)采用RS485串口通信。PC機(jī)默認(rèn)的只帶有RS232接口,有兩種方法可以得到PC上位機(jī)的Rs485電路:(1)通過RS232/RS485轉(zhuǎn)換電路將PC機(jī)串口RS232信號(hào)轉(zhuǎn)換成RS485信號(hào),對(duì)于情況比較復(fù)雜的工業(yè)環(huán)境是選用防浪涌帶隔離珊的產(chǎn)品。(2)通過PCI多串口卡,可以直接選用輸出信號(hào)為RS485類型的擴(kuò)展卡。本系統(tǒng)與上位機(jī)進(jìn)行通信,是采用*種方法,即通過RS-232、RS-485轉(zhuǎn)換模塊連接到上位機(jī)的串口上。
通信協(xié)議是進(jìn)行串口通訊的基礎(chǔ),為了使下位機(jī)傳給上位機(jī)的數(shù)據(jù)能被上位機(jī)準(zhǔn)確識(shí)別并且進(jìn)行運(yùn)算,本設(shè)計(jì)針對(duì)系統(tǒng)的實(shí)際應(yīng)用情況,制定了特定的通信協(xié)議,下位機(jī)傳輸兩個(gè)數(shù)據(jù),一個(gè)是定時(shí)器測(cè)量的脈寬數(shù)據(jù),還有一個(gè)是測(cè)量時(shí)間的數(shù)據(jù),通過上傳這兩種數(shù)據(jù),便于上位機(jī)實(shí)時(shí)分析測(cè)試數(shù)據(jù)。。
3 系統(tǒng)硬件設(shè)計(jì)
3.1 下位機(jī)硬件框架圖
硬件框架圖,渦輪流量計(jì)輸出信號(hào)進(jìn)入信號(hào)調(diào)理模塊,經(jīng)過處理送入單片機(jī)P3.2口,經(jīng)過單片機(jī)處理后,顯示在顯示模塊上,通過設(shè)置按鍵,可以設(shè)置渦輪流量計(jì)的儀表系數(shù)K值,顯示當(dāng)前流速和累積流量,數(shù)據(jù)傳輸模塊主要是MAX485,
3.2 STC12CZO52單片機(jī)簡介
本系統(tǒng)下位機(jī)采用宏晶科技的STC12CZo52單片機(jī),STC12CZO52是宏晶科技推出的STC12系列增強(qiáng)型8051單片機(jī),速度比普通的8051快12倍,具有較寬的操作電壓范圍。其片上集成:256字節(jié)的RAM;15個(gè)通用可編程1/0口,可以設(shè)置成準(zhǔn)雙向口/弱上拉、推挽/強(qiáng)上拉、僅為輸入/高阻、開漏(復(fù)位后為準(zhǔn)雙向口/弱上拉模式)4種模式;EEpROM功能;2個(gè)16位定時(shí)器/計(jì)數(shù)器;獨(dú)立的片內(nèi)看門狗定時(shí)器;全雙工異步串行口(L!ART)兼容普通的8051串口;指令兼容C8051,執(zhí)行的時(shí)間效率大幅提升。
單片機(jī)接口如圖4。其中,RXD、TxD、CS端連接MAX485作為數(shù)據(jù)傳輸模塊,XTAL1、XTAL2連接一個(gè)11.0592MHZ的時(shí)鐘晶振,為單片機(jī)提供外部時(shí)鐘。OUT端是信號(hào)調(diào)理后的方波輸入端。
3.3 信號(hào)調(diào)理模塊
信號(hào)調(diào)理電路主要任務(wù),是將渦輪流量計(jì)傳感器部分傳送過來的信號(hào)輸入,通過LM324四運(yùn)放集成電路調(diào)理整形放大,輸出為0-3V的方波,方便單片機(jī)處理。
4 系統(tǒng)軟件設(shè)計(jì)
4.1 下位機(jī)(單片機(jī)程序設(shè)計(jì))
下位機(jī)程序采用匯編語言編寫,測(cè)量語句盡量精簡,以減少指令執(zhí)行周期造成的誤差,用TO做計(jì)數(shù)器,記錄一個(gè)周期的脈沖寬度,T1做波特率發(fā)生器。
STC12C2052系列是1T的8051單片機(jī),為了兼容傳統(tǒng)8051,定時(shí)器0和定時(shí)器1復(fù)位后是傳統(tǒng)8051的速度,即12分頻,這是為了兼容傳統(tǒng)8051。但也可不進(jìn)行12分頻,實(shí)現(xiàn)真正的1T??梢酝ㄟ^設(shè)置一個(gè)特殊寄存器來提高單片機(jī)的速度。
T0x12:設(shè)置為0時(shí),定時(shí)器0是傳統(tǒng)8051速度,12分頻;設(shè)置為1時(shí),定時(shí)器0的速度是傳統(tǒng)8051的12倍,不分頻。
T1x12:設(shè)置為O時(shí),定時(shí)器1是傳統(tǒng)8051速度,12分頻;設(shè)置為1時(shí),定時(shí)器1的速度是傳統(tǒng)8051的12倍,不分頻。
串口UART用定時(shí)器1做波特率發(fā)生器時(shí),UART的速度由T1的溢出率決定。
由上可知,將T0x12和T1x12都設(shè)置為1,即可實(shí)現(xiàn)采集時(shí)間的速度比傳統(tǒng)8051系列單片機(jī)快12倍,系統(tǒng)使用的外部時(shí)鐘晶振頻率為11.0592MHz,由此可算出小計(jì)時(shí)單位為0.09uS,這使得采集時(shí)間比同種渦輪流量計(jì)顯示儀表的設(shè)計(jì)更。并且串口通訊速度也比傳統(tǒng)8051系列單片機(jī)速度快。
4.2 上位機(jī)程序設(shè)計(jì)
上位機(jī)軟件采用C浮語言進(jìn)行編寫。軟件的主要功能如下:對(duì)端口的參數(shù)(如端口設(shè)置、波特率、數(shù)據(jù)位、奇偶校驗(yàn)等)進(jìn)行設(shè)置;通過設(shè)置“數(shù)據(jù)顯示”按鈕或者“曲線顯示”按鈕,對(duì)下位機(jī)傳輸上來的測(cè)量數(shù)據(jù)進(jìn)行提取計(jì)算,將計(jì)算出的渦輪流量計(jì)輸出的信號(hào)頻率動(dòng)態(tài)的數(shù)據(jù)顯示或者曲線顯示在RichTextBox控件中;可以保存數(shù)據(jù)為excel格式,便于將采集到的數(shù)據(jù)進(jìn)行比對(duì)分析;當(dāng)顯示數(shù)據(jù)控件中的數(shù)據(jù)過多,可以點(diǎn)擊“清除窗口”按鈕進(jìn)行控件清零。由于不同的渦輪流量計(jì)參數(shù)K值的不同,本軟件只是顯示頻率,而流速則根據(jù)輸入K值來計(jì)算。
4.2.1 上位機(jī)與下位機(jī)的通訊程序
由于下位機(jī)傳輸?shù)臄?shù)據(jù)終是RS485轉(zhuǎn)RS232串口傳到上位機(jī)上,在C#中要接收串口通信,需要在Form窗體中添加SerialPort控件,程序所用到該控件的屬性和方法如表3。
表3 SerialPort串口通信控件的主要屬性與方法
打開串口和關(guān)閉串口用的是一個(gè)Buton按鈕,寫打開/關(guān)閉串口程序中,用到一個(gè)互鎖,即一開始判斷串口是否打開正(comm.Isopen),如果當(dāng)前串口是打開的,則關(guān)閉串口,如果當(dāng)前串口是關(guān)閉的,則打開串口,并設(shè)置相應(yīng)的配置,即程序窗體上的端口設(shè)置部分,將設(shè)置的相應(yīng)數(shù)據(jù)存到相應(yīng)屬性中。后用一句判斷串口是否打開的語句來顯示按鈕的Text屬性:
“Buton2.Text=comm..IsOpen?”“停止接收?”:“接收數(shù)據(jù)”;
4.2.2 數(shù)據(jù)處理
差壓變送器數(shù)據(jù)處理部分是該軟件的重點(diǎn)部分,下位機(jī)傳送上來的數(shù)據(jù)正是通過此進(jìn)行處理,并顯示在RichTextBox中。數(shù)據(jù)處理是在serialPort控件中的DataReceived屬性進(jìn)行,首先在窗體初始化Private void form 1-Load (object sender.EventArgs e)中,寫上代碼:
Comm.DataReceiVed+=DataReceived;添加事件注冊(cè),即打開串口后,接收到數(shù)據(jù)進(jìn)入緩沖區(qū),此事件就會(huì)自動(dòng)觸發(fā),進(jìn)行數(shù)據(jù)處理。
數(shù)據(jù)處理詳細(xì)過程:先聲明一個(gè)臨時(shí)數(shù)組buf來保存當(dāng)前來的串口數(shù)據(jù),用serialPort.Read(buf,0,n)將緩沖數(shù)據(jù)保存在buf數(shù)組中。然后進(jìn)行一系列判斷,首先判斷數(shù)據(jù)是否接收完整,接著判斷數(shù)據(jù)的幀頭是否為FF,06(前面有介紹傳輸數(shù)據(jù)的格式),當(dāng)數(shù)據(jù)接收完整后,提取數(shù)據(jù)部分,也就是第3字節(jié)到第8字節(jié)一共6個(gè)字節(jié)的數(shù)據(jù),將提取的數(shù)據(jù)分別進(jìn)行處理,處理代碼如下:
其中,data1為頻率,data2為采集間隔時(shí)間。處理好數(shù)據(jù)后,就可以將數(shù)據(jù)動(dòng)態(tài)顯示出來了。下面是將數(shù)據(jù)顯示在文本框中的代碼,運(yùn)用Invoke線程:
4.2.3 數(shù)據(jù)的保存
顯示控件中的數(shù)據(jù)保存需要在Form窗體中添加saveFileDialog控件。首先將saveFileDialog控件的Filter屬性設(shè)置為TxT文檔(*.txt)|*.txt|Excel文件(*.xls)|*.xls,這樣保存的文件類型可以選擇為txt文本文檔或是excel表格文檔,可以根據(jù)需要設(shè)置為其他類型的文件。然后再窗體中添加button控件,控件的Click時(shí)間添加處理程序button6_Click,程序代碼如下:
5 結(jié)論
本系統(tǒng)由于是運(yùn)用在工廠,對(duì)抗干擾要求比較高,在研究期間一直不斷改善硬件的抗干擾性及穩(wěn)定性,并且對(duì)程序的不斷修改優(yōu)化,不斷減少冗余語句以提高測(cè)量的精度,通過實(shí)驗(yàn)室測(cè)試以及工廠的現(xiàn)場(chǎng)測(cè)試可以得出本系統(tǒng)測(cè)量范圍在0.66Hz-7000Hz之間,而渦輪流量計(jì)輸出頻率高不會(huì)超過6000Hz,故系統(tǒng)滿足要求。下位機(jī)程序中定時(shí)器運(yùn)用溢出中斷方式比循環(huán)等待方式測(cè)量得出數(shù)據(jù)精度高1%-2%。現(xiàn)在穩(wěn)定的程序的精度普遍在0007%-0.1%之間
本系統(tǒng)利用STC12CZO52系列單片機(jī)的不分頻設(shè)置,提高了計(jì)時(shí)速率和串口通訊的速率,實(shí)現(xiàn)了對(duì)渦輪流量計(jì)測(cè)量流速的實(shí)時(shí)監(jiān)測(cè),并且能夠方便分析數(shù)據(jù),以進(jìn)一步研究更為的測(cè)量方式,在技術(shù)不斷更新的今天,本系統(tǒng)有繼續(xù)研究下去的意義。
請(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ì)量。