《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 測試測量 > 設(shè)計(jì)應(yīng)用 > 基于虛擬儀器的濁度測試系統(tǒng)的設(shè)計(jì)
基于虛擬儀器的濁度測試系統(tǒng)的設(shè)計(jì)
摘要: 本文使用了C8051F單片機(jī)進(jìn)行前端的數(shù)據(jù)采集,通過RS 232串口實(shí)現(xiàn)與LabVIEW的強(qiáng)大的信號分析處理功能實(shí)現(xiàn)了濁度的歷史數(shù)據(jù)、實(shí)時(shí)數(shù)據(jù)的查詢和分析,同時(shí)設(shè)計(jì)了實(shí)時(shí)報(bào)警,當(dāng)濁度超過某個(gè)值時(shí)迅速報(bào)警。實(shí)踐證明,采用虛擬儀器不論是在技術(shù)上或是在經(jīng)濟(jì)上都能夠取得良好的效果。
關(guān)鍵詞: 虛擬儀器 濁度測試 C8051 LabView
Abstract:
Key words :

  0 引 言

  濁度是工業(yè)水處理(除鹽水)檢驗(yàn)水質(zhì)要求的一個(gè)重要參數(shù),對除鹽水的水質(zhì)要求較高。目前,濁度的測定大部分都是停留在傳統(tǒng)儀器的模式下,沒有擺脫獨(dú)立使用,手動(dòng)操作的模式。隨著科技的迅猛發(fā)展,計(jì)算機(jī)強(qiáng)大的處理能力,虛擬儀器在測定系統(tǒng)中正被廣泛采用,它可以利用虛擬儀器的多面板能滿足多功能的測量要求,同時(shí)提高檢測的精度和可靠性;利用虛擬儀器良好的人機(jī)交互性和在線幫助功能使測量具有很大的靈活性,操作簡便。將測試結(jié)果圖形化形式顯示出來,使測試的結(jié)果更加直觀明了;隨著計(jì)算機(jī)網(wǎng)絡(luò)的發(fā)展,虛擬儀器還能滿足今后更多功能的擴(kuò)展和網(wǎng)絡(luò)互聯(lián)的要求?;诖嗽O(shè)計(jì)了基于虛擬儀器的濁度測試系統(tǒng),利用 LabVIEW圖形化的編程語言和編程環(huán)境,實(shí)現(xiàn)了對濁度數(shù)據(jù)的顯示、標(biāo)定和報(bào)警等功能。

  1 系統(tǒng)的硬件設(shè)計(jì)

  1.1 測量電路的設(shè)計(jì)

  中央處理器采用C8051F020。C8051F單片機(jī)是完全集成的混合信號系統(tǒng)級芯片(SoC),具有與8051兼容的高速CIP-51內(nèi)核,與 MCS-51指令集完全兼容。片內(nèi)集成了數(shù)據(jù)采集和控制系統(tǒng)中常用的模擬、數(shù)字外設(shè)及其他功能部件,內(nèi)置FLASH程序存儲(chǔ)器、內(nèi)部RAM。C8051F 單片機(jī)還具有片內(nèi)調(diào)試電路,通過4腳的JTAG接口可以進(jìn)行非侵入式、全速的在線系統(tǒng)調(diào)試。放大后的信號由C8051F020內(nèi)的交叉開關(guān)選通,調(diào)節(jié)增益后送ADC0進(jìn)行A/D轉(zhuǎn)換并存儲(chǔ)。

  1.1.1 主控制板電路

  主控制板電路實(shí)現(xiàn)數(shù)據(jù)的采集、存儲(chǔ)、處理和輸出功能。它由C8051F020單片機(jī)處理電路、傳感和模擬信號處理電路、AT45DB081數(shù)據(jù)存儲(chǔ)電路、 DS18B20溫度監(jiān)控電路、RS 232通信電路、液晶顯示和鍵盤電路、報(bào)警電路、標(biāo)準(zhǔn)4~20 mA工業(yè)信號輸出電路幾部分構(gòu)成。濁度儀的核心控制器件是Cygnal公司新出產(chǎn)的混合信號系統(tǒng)級單片機(jī)C8051F020。在一個(gè)標(biāo)準(zhǔn)的8051中,除 MUL和DIV以外所有指令都需要12或24個(gè)系統(tǒng)時(shí)鐘周期,并且通常最大系統(tǒng)時(shí)鐘頻率為12 MHz。而對于CIP-51內(nèi)核,70%的指令執(zhí)行時(shí)間為1或2個(gè)系統(tǒng)時(shí)鐘周期,沒有執(zhí)行時(shí)間超過8個(gè)系統(tǒng)時(shí)鐘周期的指令??梢奀8051F020單片機(jī)的指令執(zhí)行速度是標(biāo)準(zhǔn)8051單片機(jī)的10倍,因此測量時(shí)間非常短,可以滿足在線實(shí)時(shí)測量的要求。該單片機(jī)片內(nèi)集成了Cygnal公司獨(dú)創(chuàng)的CIP-51 的CPU內(nèi)核,指令系統(tǒng)與MCS-51完全兼容。它具有如下特點(diǎn):集成度高、抗干擾能力強(qiáng)、速度高、可靠性高、擴(kuò)展功能強(qiáng)等。本儀器中選用 C8051F020單片機(jī),可以使電路在設(shè)計(jì)上結(jié)構(gòu)緊湊,并能夠提高儀器的抗干擾能力。C8051F020的原理圖如圖1所示。

C8051F020的原理圖

  1.1.2 傳感和模擬信號處理電路

  光電轉(zhuǎn)換元件采用的是TCZ 6×6型硅光電池,此種型號硅光電池的光電特性,其短路電流與入射光強(qiáng)有良好的線性關(guān)系。但是其轉(zhuǎn)換信號僅為10-7A數(shù)量級,必須進(jìn)行放大處理,因此,在電路設(shè)計(jì)中采用了輸入阻抗高的運(yùn)算放大器LF353來獲取電流信號,并進(jìn)行濾波放大處理。如圖2所示。

傳感和模擬信號處理電路

  1.2 C8051F020與虛擬儀器的實(shí)現(xiàn)

  串口通信雖然傳輸速度較慢,但是由于簡單易行,并且現(xiàn)有的微機(jī)都具備串行通信口,因而得到了廣泛的應(yīng)用。本文在濁度測試系統(tǒng)中利用串口實(shí)現(xiàn)了對單片機(jī)的通信控制。

  1.2.1 系統(tǒng)硬件配置

  本文通信系統(tǒng)采用C51F020作為下位機(jī),PC機(jī)作為上位機(jī),二者通過RS 232串口接收或發(fā)送數(shù)據(jù)和指令。傳輸介質(zhì)為二芯屏蔽電纜。RS 232信號和單片機(jī)串口信號的電平轉(zhuǎn)換采用MAX232,它是具有雙驅(qū)動(dòng)器、雙接收器的通信器接口電路,不需外接電容而進(jìn)行倍壓及電壓極性轉(zhuǎn)換,只需+5 V供電,電源電流為5 mA,傳輸率為200 Kb/s。串行接口電路原理見圖3。

串行接口電路原理

  系統(tǒng)中PC機(jī)承擔(dān)主控任務(wù),負(fù)責(zé)該測控系統(tǒng)的通信參數(shù)設(shè)定、數(shù)據(jù)的采集處理及對單片機(jī)運(yùn)行的控制,程序采用LabVIEW編寫。其通信協(xié)議為:采用RS 232異步通信方式,51單片機(jī)串行口共有4種工作方式,這里采用單片機(jī)串口通信的方式1,該方式為8位異步串行通信方式,其波特率是可變的,1位起始位,8位數(shù)據(jù)位,1位停止位,無奇偶校驗(yàn),若晶振頻率為11.059 2 MHz,取波特率為4 800 Kb/s。下位機(jī)按接收到的指令工作,若主控機(jī)發(fā)出無效或錯(cuò)誤指令,將不作任何控制。

   1.2.2 程序設(shè)計(jì)

  主機(jī)通信程序:在主機(jī)通信程序設(shè)計(jì)中,采用圖形化語言LabVIEW作為編程語言。它把高級語言中的函數(shù)封裝為圖形功能模塊,圖標(biāo)間的連線表示各個(gè)功能模塊之間的數(shù)據(jù)傳遞。編程方式簡單、直觀、便于使用。串口通信功能模塊包括串口初始化模塊、串口讀模塊以及串口寫模塊,通過這些模塊就可以實(shí)現(xiàn)對單片機(jī)的控制。

 

  LabVIEW串口子VI是通過RS 232實(shí)現(xiàn)數(shù)據(jù)通信的。LabVIEW串口子VI共有5個(gè)串行通信節(jié)點(diǎn),分別實(shí)現(xiàn)串口初始化、串口寫、串口讀、檢測串口緩存、中斷等功能。

  C8051F020單片機(jī)的程序采用匯編語言寫成。利用匯編語言直接對相關(guān)硬件進(jìn)行操作,具有開銷小、效率高的特點(diǎn)。在編寫單片機(jī)程序時(shí)應(yīng)當(dāng)注意的是必須保證PC機(jī)與單片機(jī)串口通信時(shí)的波特率一致。如果兩者不同的話,就無法進(jìn)行數(shù)據(jù)的傳輸而導(dǎo)致通信失敗。所以,在單片機(jī)程序中初始化時(shí)應(yīng)當(dāng)根據(jù)單片機(jī)晶振和串口通信方式對寄存器進(jìn)行設(shè)置。

  2 軟件開發(fā)

  該系統(tǒng)由C8051F單片機(jī)、ADC0809 A/D轉(zhuǎn)換器組成的小系統(tǒng)作為前端數(shù)據(jù)采集系統(tǒng),并通過RS 232串行總線將采集到的數(shù)據(jù)傳送到PC機(jī),用Lab-VIEW進(jìn)行數(shù)據(jù)的接受與處理。其結(jié)構(gòu)組成如圖4所示。

結(jié)構(gòu)組成

  2.1 菜單設(shè)計(jì)

  在整個(gè)程序設(shè)計(jì)中,首先完成了各子功能(子VI)的程序,將其做成單個(gè)模塊,每個(gè)單個(gè)模塊是由更小的模塊組成,每一級的模塊均刻以圖標(biāo)形式放置在程序流程圖中,這樣增加了程序的可維護(hù)性和可讀性,使流程圖更加清晰明了,同時(shí)避免了大量重復(fù)編程工作。系統(tǒng)的主界面設(shè)計(jì)中,利用LabVIEW中提供的 EDITMENU菜單,先將要實(shí)現(xiàn)的功能作為菜單選項(xiàng)的內(nèi)容,以便在運(yùn)行時(shí)調(diào)用,然后在框圖中對各項(xiàng)菜單的調(diào)用通過CASE循環(huán)進(jìn)行選擇,使各項(xiàng)菜單對應(yīng)于各項(xiàng)子VI,在各子VI中vi set up的execution options中選定show front panel when called選項(xiàng),這樣在運(yùn)行中,當(dāng)選擇了菜單中的某些內(nèi)容時(shí),該子VI就被選中調(diào)用。圖5為菜單后面板程序設(shè)計(jì)流程圖。菜單中包括文件操作(讀取、存儲(chǔ)、打印)通道顯示和信號分析以及幫助,程序分別調(diào)用相應(yīng)功能的子VI程序,完成相應(yīng)操作。下面簡要介紹本采集程序中采用的幾個(gè)典型模塊。

菜單后面板程序設(shè)計(jì)流程圖

  2.2 數(shù)據(jù)采集模塊設(shè)計(jì)

  本設(shè)計(jì)采用VISA編寫儀器控制程序,程序在運(yùn)行時(shí)VISA就會(huì)根據(jù)實(shí)際接口類型自動(dòng)調(diào)用相應(yīng)的接口驅(qū)動(dòng)程序例程,完成通信操作。串口通信模塊包括串口初始化模塊、串口寫模塊、串口讀模塊,通過這些模塊就可以實(shí)現(xiàn)對單片機(jī)的控制。圖5為串口設(shè)置后面板程序框圖。如圖5所示,主程序運(yùn)行后,設(shè)置串口波特率為 9 600,通道選著串口1,采用默認(rèn)通信協(xié)議(1位起始位、8位數(shù)據(jù)位、1位停止位),串口緩存大小設(shè)置為16 368 B。

  2.3 保存模塊設(shè)計(jì)

  本設(shè)計(jì)采用Access數(shù)據(jù)庫對采集的數(shù)據(jù)進(jìn)行分析及對歷史數(shù)據(jù)查詢回放,其特點(diǎn)表現(xiàn)在:關(guān)系數(shù)據(jù)庫的SQL語言是非過程性語言,對數(shù)據(jù)的查詢或操作簡單;利用數(shù)據(jù)庫管理數(shù)據(jù),數(shù)據(jù)的獨(dú)立性好;Access數(shù)據(jù)庫使用方便,操作簡單,能夠滿足數(shù)據(jù)庫管理的需要。利用LV的ActiveX功能,調(diào)用 Microsoft ADO控件,既可以利用SQL語言又可以利用ADO提供的各種方法和屬性,方便靈活地實(shí)現(xiàn)對Access數(shù)據(jù)庫訪問。在LV功能模塊中含有ActiveX 子模板,子模板中包含用作與ActiveX服務(wù)器相連接的自動(dòng)化節(jié)點(diǎn)函數(shù),實(shí)現(xiàn)對數(shù)據(jù)庫的操縱。ADO主要有三個(gè)主體對象,分別為 Connection,Command和RecordSet對象。訪問數(shù)據(jù)庫步驟為:連接到數(shù)據(jù)源一指定訪問數(shù)據(jù)源的命令一執(zhí)行命令。本設(shè)計(jì)建立兩個(gè)數(shù)據(jù)源分別用來存放歷史數(shù)據(jù)、報(bào)警數(shù)據(jù)及相對應(yīng)的時(shí)間。

  3 軟件實(shí)現(xiàn)功能

  利用LabVIEW這種圖形化的編程語言和編程環(huán)境,實(shí)現(xiàn)了對濁度數(shù)據(jù)的顯示、標(biāo)定和報(bào)警等功能。濁度實(shí)時(shí)數(shù)據(jù)趨勢圖、歷史數(shù)據(jù)趨勢圖、歷史數(shù)據(jù)查詢和報(bào)警歷史記錄分別如圖6所示。

 歷史記錄

  實(shí)時(shí)曲線是通過調(diào)用LV軟件中Chart子模板來實(shí)現(xiàn)的。它將數(shù)據(jù)在坐標(biāo)系中實(shí)時(shí)、逐點(diǎn)(或一次多個(gè)點(diǎn))地顯示出來,可以反映被測物理量的變化趨勢,與傳統(tǒng)的模擬示波器、波形記錄儀的顯示方式相仿。在實(shí)時(shí)曲線界面中,有單片機(jī)采集數(shù)據(jù)及向LV發(fā)送數(shù)據(jù)的控制按鈕,可以方便地實(shí)現(xiàn)對下位機(jī)數(shù)據(jù)的采集控制。另外,該模版具有上限、下限報(bào)警監(jiān)視、報(bào)警限設(shè)定功能,當(dāng)數(shù)據(jù)發(fā)生報(bào)警后,實(shí)時(shí)值字體顯示顏色立即發(fā)生改變,可以方便用戶對數(shù)據(jù)進(jìn)行監(jiān)視。

  歷史曲線是通過調(diào)用LV軟件中Graph子模板來實(shí)現(xiàn)的。用戶可以調(diào)整X Scale及Y Scale顯示方式,如顯示時(shí)間刻度、數(shù)據(jù)顯示格式、顯示刻度是否自動(dòng)縮放、曲線顏色等。通過游標(biāo)(如圖6(b),Cursor),可以讀取波形上某一點(diǎn)的確切坐標(biāo)值。歷史曲線界面還具有歷史曲線查詢及歷史趨勢刷新功能。點(diǎn)擊“歷史曲線查詢按鈕”,可以彈出“歷史趨勢查詢”子VI模板,用戶根據(jù)需要設(shè)定查詢時(shí)間,便可得到需要的數(shù)據(jù)以便分析。點(diǎn)擊“歷史趨勢刷新”按鈕可以直接顯示當(dāng)前歷史趨勢。

  歷史報(bào)警表調(diào)用LV中Table控件進(jìn)行顯示。表中有報(bào)警序號、報(bào)警名稱、報(bào)警值、報(bào)警進(jìn)入時(shí)間以及狀態(tài)顯示項(xiàng)目。該表記錄了高限、低限時(shí)報(bào)警值及恢復(fù)正常值的時(shí)間及報(bào)警值,通過滾動(dòng)條用戶可以方便查詢報(bào)警歷史數(shù)據(jù)。

 

  4 結(jié) 語

  本文使用了C8051F單片機(jī)進(jìn)行前端的數(shù)據(jù)采集,通過RS 232串口實(shí)現(xiàn)與LabVIEW的強(qiáng)大的信號分析處理功能實(shí)現(xiàn)了濁度的歷史數(shù)據(jù)、實(shí)時(shí)數(shù)據(jù)的查詢和分析,同時(shí)設(shè)計(jì)了實(shí)時(shí)報(bào)警,當(dāng)濁度超過某個(gè)值時(shí)迅速報(bào)警。實(shí)踐證明,采用虛擬儀器不論是在技術(shù)上或是在經(jīng)濟(jì)上都能夠取得良好的效果。

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。