摘要:文章簡(jiǎn)單介紹了hart協(xié)議智能儀表的自動(dòng)校驗(yàn)系統(tǒng)的設(shè)計(jì)思想和實(shí)現(xiàn)的方法,提出了應(yīng)用hart通信技術(shù)、計(jì)算機(jī)測(cè)控技術(shù)和數(shù)據(jù)庫技術(shù)來實(shí)現(xiàn)比較新型的自動(dòng)校驗(yàn)系統(tǒng)。系統(tǒng)已經(jīng)在現(xiàn)場(chǎng)得到應(yīng)用。
1、引言
hart(highwayaddressableremotetransducer)協(xié)議是zui早由rosemount公司開發(fā)并得到眾多儀表公司支持的通信協(xié)議,其實(shí)現(xiàn)了在現(xiàn)有模擬信號(hào)傳輸線上的數(shù)字通信。
在對(duì)hart協(xié)議智能儀表的校準(zhǔn)和檢驗(yàn)過程中,工作人員需要使用多種標(biāo)準(zhǔn)的儀器,hart協(xié)議手操器等設(shè)備來完成,其中操作過程比較復(fù)雜,對(duì)工作人員的要求比較高,效率難以滿足生產(chǎn)的需要,而且還有人為誤差,校準(zhǔn)和檢驗(yàn)的數(shù)據(jù)紀(jì)錄、存檔的不便等缺點(diǎn)。
所以,我們考慮如何利用hart通信技術(shù)、計(jì)算機(jī)測(cè)控技術(shù)和數(shù)據(jù)庫技術(shù)來實(shí)現(xiàn)hart協(xié)議智能儀表的自動(dòng)校準(zhǔn)、檢驗(yàn)及數(shù)據(jù)管理為一體的系統(tǒng)。
2、系統(tǒng)分析
通過對(duì)系統(tǒng)的分析,確定了系統(tǒng)的總體要求以及所需要的硬件環(huán)境和支撐軟件,以及用戶對(duì)系統(tǒng)的功能、性能等方面的要求,簡(jiǎn)單的概述為如下幾個(gè)方面:
*系統(tǒng)功能的要求:對(duì)hart協(xié)議智能變送器的校準(zhǔn),檢驗(yàn),出廠設(shè)置。
*系統(tǒng)數(shù)據(jù)的要求:數(shù)據(jù)的自動(dòng)采集、存儲(chǔ)和輸出。
*系統(tǒng)運(yùn)行的要求:需要構(gòu)建一個(gè)容易實(shí)現(xiàn)的軟、硬件平臺(tái)。
*系統(tǒng)性能的要求:高精度,高可靠性,率,極易操作。
*異常處理的要求:各種異常事件的處理,保護(hù),自動(dòng)診斷。
*將來可能提出的要求:保留充分的可擴(kuò)充性。
3、自動(dòng)校驗(yàn)系統(tǒng)的硬件集成
自動(dòng)校驗(yàn)系統(tǒng)的硬件集成主要考慮到較好的可擴(kuò)充性、性能價(jià)格比和易于升級(jí),為此我們采用一臺(tái)帶有isa插槽的計(jì)算機(jī)作為主要控制的部分,如圖(1)所示:
利用安裝在計(jì)算機(jī)內(nèi)部的一塊isa總線的gpib接口卡,就可以連接帶gpib模塊的標(biāo)準(zhǔn)電壓/電流信號(hào)發(fā)生器、標(biāo)準(zhǔn)壓力信號(hào)發(fā)生器(壓力信號(hào)發(fā)生器可以通過級(jí)聯(lián)多臺(tái)設(shè)備的方法來滿足量程和精度的需求)、高精度數(shù)字萬用表等,就可以自動(dòng)完成模擬信號(hào)發(fā)生和模擬信號(hào)的采集。
通過連接在計(jì)算機(jī)串行口上的hart信號(hào)的調(diào)制解調(diào)器,來取代hart手操器,可以實(shí)現(xiàn)由計(jì)算機(jī)自動(dòng)完成與儀表間的hart通信。
通過計(jì)算機(jī)控制的一塊isa接口i/o卡驅(qū)動(dòng)一塊繼電器輸出卡,實(shí)現(xiàn)各接口之間的自動(dòng)轉(zhuǎn)換和信號(hào)燈的控制等。同時(shí)i/o卡還負(fù)責(zé)接收校驗(yàn)系統(tǒng)面板上用戶的開關(guān)輸入。
4、自動(dòng)校驗(yàn)系統(tǒng)的軟件設(shè)計(jì)
4.1概述
自動(dòng)校驗(yàn)系統(tǒng)的軟件設(shè)計(jì)要除了要能夠?qū)崿F(xiàn)系統(tǒng)的各種功能的實(shí)現(xiàn),還有能夠有很良好的人機(jī)界面,可靠的性能等要求。為此,軟件的支撐和運(yùn)行平臺(tái)選擇windowsntworkstation4.0,windowsnt是一個(gè)32位,搶先式多任務(wù)的操作系統(tǒng),工作穩(wěn)定可靠,具有很強(qiáng)的防崩潰機(jī)制,通過多進(jìn)程和多線程的新機(jī)制可以實(shí)現(xiàn)應(yīng)用程序的并行處理,對(duì)實(shí)現(xiàn)通信應(yīng)用程序的快速響應(yīng)有很大的幫助。
軟件設(shè)計(jì)采用面向?qū)ο蟮姆椒?,軟件開發(fā)的平臺(tái)采用microsoftvisualc++6.0,主要是它有功能強(qiáng)大mfc類庫和win32api的支持,使用也相當(dāng)靈活,既容易開發(fā)出良好的windows圖形界面的應(yīng)用程序,又可以支持底層的各種通訊協(xié)議的定義和封裝等,還提供多種對(duì)數(shù)據(jù)庫操作的方法等。
由于自動(dòng)校驗(yàn)系統(tǒng)還包含了產(chǎn)品的信息管理系統(tǒng),我們采用microsoftsqlserver2000構(gòu)建產(chǎn)品信息數(shù)據(jù)庫,sqlserver是microsoft公司推出的一個(gè)大型數(shù)據(jù)庫系統(tǒng),使用非常廣泛,與windowsnt達(dá)到了的組合,如果企業(yè)實(shí)現(xiàn)了erp系統(tǒng),也可以很方便的利用這個(gè)數(shù)據(jù)庫。對(duì)數(shù)據(jù)庫存取使用visualc++6.0提供的ado(activexdataobject)方式,ado定義了一組com對(duì)象以操作不同數(shù)據(jù)源的數(shù)據(jù),為不同類型的數(shù)據(jù)提供了一個(gè)非常通用的接口,不管這些接口是在單機(jī)還是在分布式的網(wǎng)絡(luò)上,可以在花費(fèi)較少的時(shí)間的前提下開發(fā)客戶/服務(wù)器應(yīng)用系統(tǒng)。
4.2模塊化的設(shè)計(jì)
根據(jù)自動(dòng)校驗(yàn)系統(tǒng)需要實(shí)現(xiàn)的功能和性能,在實(shí)現(xiàn)階段對(duì)其進(jìn)行了模塊化的劃分,主要包括4個(gè)子系統(tǒng)和8個(gè)模塊(如圖2所示):
圖(2)
1)操作員子系統(tǒng)主要面向于使用校驗(yàn)系統(tǒng)進(jìn)行儀表校準(zhǔn)檢驗(yàn)的人員,他們將使用操作員賬號(hào)登陸系統(tǒng)的用戶,共有4個(gè)模塊。
a.設(shè)備驅(qū)動(dòng)及控制模塊主要向自動(dòng)校驗(yàn)系統(tǒng)軟件提供了所有設(shè)備的接口,屬于校驗(yàn)系統(tǒng)軟件的zui底層部分和支撐部分,主要描述和定義了系統(tǒng)各個(gè)設(shè)備的“語言”,正是由于設(shè)備比較多,不同廠家設(shè)備的通訊方式和指令格式相差也比較大,為了正確而又簡(jiǎn)單的完成的與各個(gè)設(shè)備的對(duì)話,我們采用了c++語言以面向?qū)ο蟮姆椒▽pib通訊,i/o控制,hart通訊,儀器控制和驅(qū)動(dòng)等封裝成一個(gè)個(gè)類,將其所有數(shù)據(jù)成員私有化,把具體指令的數(shù)據(jù)結(jié)構(gòu)的實(shí)現(xiàn)等的細(xì)節(jié)放到類的內(nèi)部,對(duì)這些設(shè)備的讀寫等操作只要使用這些設(shè)備自身提供的方法,實(shí)現(xiàn)了數(shù)據(jù)的安全性和代碼的可重用性,而且非常的簡(jiǎn)單方便。
對(duì)hart協(xié)議進(jìn)行了封裝,定義了hart通訊所用到的數(shù)據(jù)類型和結(jié)構(gòu),如hart的浮點(diǎn)數(shù),ascii碼的壓縮,長(zhǎng)地址,短地址,以及通用的hart數(shù)據(jù)幀(包括前導(dǎo)符、分界符、地址、命令號(hào)、字節(jié)數(shù)、數(shù)據(jù)、校驗(yàn)字節(jié)、響應(yīng)碼等)的組裝、發(fā)送以及接收的方法,這樣需要發(fā)某一條hart命令時(shí),只要根據(jù)hart協(xié)議查出這條命令需要的數(shù)據(jù),用hart數(shù)據(jù)幀組裝的方法填入數(shù)據(jù),再分別使用hart數(shù)據(jù)幀發(fā)送以及接收的方法就可以了。
對(duì)gpib接口卡和i/o卡提供的dll函數(shù)進(jìn)行了重新封裝,如在gpib接口卡的類包含了pc需要的講、聽和控制的方法,對(duì)gpib接口的標(biāo)準(zhǔn)的儀器進(jìn)行的封裝,就可以繼承g(shù)pib接口類,這樣定義儀器所支持讀、寫操作時(shí),就可以使用gpib接口卡提供的函數(shù)。
定義了對(duì)各種儀器及設(shè)備的讀/寫的操作和方法。包括對(duì)標(biāo)準(zhǔn)電壓/電流信號(hào)發(fā)生器,標(biāo)準(zhǔn)壓力信號(hào)發(fā)生器,頻率信號(hào)發(fā)生器,數(shù)字萬用表并口、串口通訊類封裝了打開端口,配置端口,以及讀,寫的操作的windowsapi函數(shù),需要配置的結(jié)構(gòu)有dcb,commtimeouts等,主要使用函數(shù)的有createfile,readfile,writefile等。
b.數(shù)據(jù)發(fā)送和采集模塊主要是通過對(duì)設(shè)備驅(qū)動(dòng)模塊的訪問,完成了所有需要的對(duì)數(shù)據(jù)發(fā)送和采集的的方法的封裝,這些方法基本上都是使用設(shè)備驅(qū)動(dòng)模塊定義了的設(shè)備或儀表自身提供的方法,并將這些方法提供給變送器檢驗(yàn)檢驗(yàn)?zāi)K。
*定義及實(shí)現(xiàn)了對(duì)hart變送器進(jìn)行電流微調(diào)的方法如調(diào)整dac零點(diǎn),首先將發(fā)送hart40號(hào)命令,參數(shù)為4.0,將輸出電流鎖定為當(dāng)前零點(diǎn),然后采集電流表的讀數(shù)并類型將其轉(zhuǎn)換成hart的浮點(diǎn)數(shù),再發(fā)送45號(hào)命令將電流表的讀數(shù)發(fā)送給hart變送器進(jìn)行校準(zhǔn),然后再次采集電流表的讀數(shù),判斷實(shí)際電流輸出是否滿足精度要求,如果滿足精度要求,則發(fā)送40號(hào)命令,參數(shù)為0.0,退出校準(zhǔn),否則重復(fù)上述步驟。
*定義及實(shí)現(xiàn)了對(duì)hart變送器進(jìn)行出廠校準(zhǔn)的方法,如對(duì)于1151壓力/差壓變送器,通過發(fā)送特殊命令132號(hào)命令設(shè)定的傳感器類型和量程范圍,發(fā)送133號(hào)命令確定校驗(yàn)點(diǎn)為0,進(jìn)入出廠標(biāo)定狀態(tài),然后進(jìn)行零點(diǎn)標(biāo)定(標(biāo)定第1點(diǎn)),發(fā)送gpib指令使得壓力信號(hào)發(fā)生器加零壓力,待壓力穩(wěn)定后(延時(shí))發(fā)送命令133設(shè)定校驗(yàn)點(diǎn)為1,還有當(dāng)前儀表工程量單位和零點(diǎn)的校驗(yàn)值為0.0,然后類似的進(jìn)行60%,的點(diǎn)以及負(fù)區(qū)的標(biāo)定。
*定義及實(shí)現(xiàn)了對(duì)hart變送器進(jìn)行出廠檢驗(yàn)的方法,如對(duì)于熱電偶溫度變送器,需要輸入8個(gè)分度號(hào),根據(jù)量程每個(gè)分度號(hào)取5個(gè)點(diǎn)的mv值,向電壓/電流信號(hào)發(fā)生器發(fā)送指令,讓其輸出的m號(hào),然后用hart1號(hào)命令讀取主變量的值,與標(biāo)準(zhǔn)值比較,得出hart的數(shù)字精度,同時(shí)讀取數(shù)字萬用表的測(cè)量值,與標(biāo)準(zhǔn)值比較,得出4—20ma輸出的模擬精度。
*定義及實(shí)現(xiàn)了對(duì)hart變送器進(jìn)行各種信息設(shè)定的方法,寫組態(tài)信息,如用hart18號(hào)指令寫入工位、描述、時(shí)間,17號(hào)命令寫入信息值,19號(hào)命令寫入裝配號(hào)等。
c.變送器校準(zhǔn)檢驗(yàn)?zāi)K主要是為了完成對(duì)變送器校準(zhǔn)檢驗(yàn)的具體操作,包含了針對(duì)不同變送器校驗(yàn)檢驗(yàn)的步驟,并向數(shù)據(jù)打印及入庫模塊提供數(shù)據(jù)源。這個(gè)模塊還根據(jù)管理員子系統(tǒng)中功能設(shè)置模塊對(duì)系統(tǒng)需要自動(dòng)完成的操作的定義,自動(dòng)將數(shù)據(jù)采集和發(fā)送模塊的方法進(jìn)行組裝,以實(shí)現(xiàn)對(duì)校驗(yàn)系統(tǒng)的自定義功能。
d.數(shù)據(jù)打印及入庫模塊主要是完成校驗(yàn)結(jié)果的打印和進(jìn)入數(shù)據(jù)庫,是操作員子系統(tǒng)的所要完成的zui后一個(gè)功能,主要是將校驗(yàn)過程中采集的數(shù)據(jù)、運(yùn)算的結(jié)果、產(chǎn)品的出廠編號(hào)等信息以打印報(bào)表和進(jìn)入數(shù)據(jù)庫的兩種方式進(jìn)行處理。
打印報(bào)表可以利用對(duì)并口讀寫的封裝,直接將格式化的字符串輸出到連接在并口上的打印機(jī)就可以了。
與sqlserver數(shù)據(jù)庫的連接采用ado的方式,這樣可以滿足本地和遠(yuǎn)程訪問數(shù)據(jù)庫的需要,這里主要是將校驗(yàn)得到的數(shù)據(jù)和產(chǎn)品信息等存儲(chǔ)到sqlserver的數(shù)據(jù)庫中去。
2)管理員子系統(tǒng)主要面向校驗(yàn)系統(tǒng)的管理員,他們使用管理員的賬號(hào)登陸系統(tǒng),管理員的權(quán)限大于操作員,可以完成系統(tǒng)功能設(shè)置和數(shù)據(jù)庫管理的功能。
功能設(shè)置模塊主要是通過彈出得對(duì)話框,使得系統(tǒng)的管理員可以定制系統(tǒng)的操作步驟、選擇需要完成的校驗(yàn)內(nèi)容,以及可以自動(dòng)寫入變送器的一些信息,功能設(shè)置完成后,在操作員模式,當(dāng)系統(tǒng)檢測(cè)到有變送器接入時(shí)候,可以自動(dòng)完成設(shè)置好檢驗(yàn)項(xiàng)目等內(nèi)容。功能的可定制使得自動(dòng)校驗(yàn)系統(tǒng)能夠適應(yīng)多種場(chǎng)合的需求。