技術(shù)頻道

娓娓工業(yè)
您現(xiàn)在的位置: 中國傳動網(wǎng) > 技術(shù)頻道 > 應用方案 > HART協(xié)議智能儀表自動校驗系統(tǒng)的設(shè)計和實現(xiàn)

HART協(xié)議智能儀表自動校驗系統(tǒng)的設(shè)計和實現(xiàn)

時間:2008-04-15 10:42:00來源:ronggang

導語:?簡單介紹了HART協(xié)議智能儀表的自動校驗系統(tǒng)的設(shè)計思想和實現(xiàn)的方法, 提出了應用HART通信技術(shù)、計算機測控技術(shù)和數(shù)據(jù)庫技術(shù)來實現(xiàn)比較新型的自動校驗系統(tǒng)。系統(tǒng)已經(jīng)在現(xiàn)場得到應用
摘 要:簡單介紹了HART協(xié)議智能儀表的自動校驗系統(tǒng)的設(shè)計思想和實現(xiàn)的方法, 提出了應用HART通信技術(shù)、計算機測控技術(shù)和數(shù)據(jù)庫技術(shù)來實現(xiàn)比較新型的自動校驗系統(tǒng)。系統(tǒng)已經(jīng)在現(xiàn)場得到應用。 關(guān)鍵詞: HART協(xié)議,GPIB總線,多任務,SQL Server Abstract: The design and implementaion of auto calibration and measurement system for HART instrument is introduced, and the system integrated the HART communication technology, computer based measurement& control technology and database technology. The system have already been used in the factory. Keyword:HART Protocol, GPIBbus, multi-task, SQL Server 1、引言: HART (Highway Addressable Remote Transducer) 協(xié)議是最早由Rosemount公司開發(fā)并得到眾多儀表公司支持的通信協(xié)議,其實現(xiàn)了在現(xiàn)有模擬信號傳輸線上的數(shù)字通信。 在對HART協(xié)議智能儀表的校準和檢驗過程中,工作人員需要使用多種標準的儀器,HART協(xié)議手操器等設(shè)備來完成,其中操作過程比較復雜,對工作人員的要求比較高,效率難以滿足生產(chǎn)的需要,而且還有人為誤差,校準和檢驗的數(shù)據(jù)紀錄、存檔的不便等缺點。 所以,我們考慮如何利用HART通信技術(shù)、計算機測控技術(shù)和數(shù)據(jù)庫技術(shù)來實現(xiàn)HART協(xié)議智能儀表的自動校準、檢驗及數(shù)據(jù)管理為一體的系統(tǒng)。 2、系統(tǒng)分析 通過對系統(tǒng)的分析,確定了系統(tǒng)的總體要求以及所需要的硬件環(huán)境和支撐軟件,以及用戶對系統(tǒng)的功能、性能等方面的要求,簡單的概述為如下幾個方面: * 系統(tǒng)功能的要求:對HART協(xié)議智能變送器的校準,檢驗,出廠設(shè)置。 * 系統(tǒng)數(shù)據(jù)的要求:數(shù)據(jù)的自動采集、存儲和輸出。 * 系統(tǒng)運行的要求:需要構(gòu)建一個容易實現(xiàn)的軟、硬件平臺。 * 系統(tǒng)性能的要求:高精度,高可靠性,高效率,極易操作。 * 異常處理的要求:各種異常事件的處理,保護,自動診斷。 * 將來可能提出的要求:保留充分的可擴充性。 3、自動校驗系統(tǒng)的硬件集成 自動校驗系統(tǒng)的硬件集成主要考慮到較好的可擴充性、性能價格比和易于升級,為此我們采用一臺帶有ISA插槽的計算機作為主要控制的部分,如圖(1)所示:
  利用安裝在計算機內(nèi)部的一塊ISA總線的GPIB接口卡,就可以連接帶GPIB模塊的標準電壓/電流信號發(fā)生器、標準壓力信號發(fā)生器(壓力信號發(fā)生器可以通過級聯(lián)多臺設(shè)備的方法來滿足量程和精度的需求)、高精度數(shù)字萬用表等,就可以自動完成模擬信號發(fā)生和模擬信號的采集。   通過連接在計算機串行口上的HART信號的調(diào)制解調(diào)器,來取代HART手操器,可以實現(xiàn)由計算機自動完成與儀表間的Hart通信。 通過計算機控制的一塊 ISA接口I/O卡驅(qū)動一塊繼電器輸出卡,實現(xiàn)各接口之間的自動轉(zhuǎn)換和信號燈的控制等。同時I/O卡還負責接收校驗系統(tǒng)面板上用戶的開關(guān)輸入。 4、自動校驗系統(tǒng)的軟件設(shè)計 4.1 概述 自動校驗系統(tǒng)的軟件設(shè)計要除了要能夠?qū)崿F(xiàn)系統(tǒng)的各種功能的實現(xiàn),還有能夠有很良好的人機界面,可靠的性能等要求。為此,軟件的支撐和運行平臺選擇WindowsNT WorkStation4.0, Windows NT是一個32位,搶先式多任務的操作系統(tǒng),工作穩(wěn)定可靠,具有很強的防崩潰機制,通過多進程和多線程的新機制可以實現(xiàn)應用程序的并行處理,對實現(xiàn)通信應用程序的快速響應有很大的幫助。 軟件設(shè)計采用面向?qū)ο蟮姆椒ǎ?軟件開發(fā)的平臺采用Microsoft Visual C++6.0,主要是它有功能強大MFC類庫和Win32API的支持,使用也相當靈活,既容易開發(fā)出良好的 Windows圖形界面的應用程序,又可以支持底層的各種通訊協(xié)議的定義和封裝等,還提供多種對數(shù)據(jù)庫操作的方法等。 由于自動校驗系統(tǒng)還包含了產(chǎn)品的信息管理系統(tǒng), 我們采用Microsoft Sql Server2000構(gòu)建產(chǎn)品信息數(shù)據(jù)庫, SQL Server 是Microsoft公司推出的一個大型數(shù)據(jù)庫系統(tǒng),使用非常廣泛,與Windows NT達到了完美的組合,如果企業(yè)實現(xiàn)了ERP系統(tǒng),也可以很方便的利用這個數(shù)據(jù)庫。對數(shù)據(jù)庫存取使用Visual C++ 6.0 提供的ADO ( ActiveX Data Object) 方式, ADO定義了一組COM對象以操作不同數(shù)據(jù)源的數(shù)據(jù),為不同類型的數(shù)據(jù)提供了一個非常通用的接口,不管這些接口是在單機還是在分布式的網(wǎng)絡上,可以在花費較少的時間的前提下開發(fā)客戶/服務器應用系統(tǒng)。 4.2 模塊化的設(shè)計 根據(jù)自動校驗系統(tǒng)需要實現(xiàn)的功能和性能,在實現(xiàn)階段對其進行了模塊化的劃分,主要包括4個子系統(tǒng)和8個模塊(如圖2所示):
圖(2)
1) 操作員子系統(tǒng)主要面向于使用校驗系統(tǒng)進行儀表校準檢驗的人員,他們將使用操作員賬號登陸系統(tǒng)的用戶,共有4個模塊。 a. 設(shè)備驅(qū)動及控制模塊主要向自動校驗系統(tǒng)軟件提供了所有設(shè)備的接口,屬于校驗系統(tǒng)軟件的最底層部分和支撐部分,主要描述和定義了系統(tǒng)各個設(shè)備的“語言”,正是由于設(shè)備比較多,不同廠家設(shè)備的通訊方式和指令格式相差也比較大,為了正確而又簡單的完成的與各個設(shè)備的對話,我們采用了C++語言以面向?qū)ο蟮姆椒▽PIB通訊,I/O控制, HART通訊,儀器控制和驅(qū)動等封裝成一個個類,將其所有數(shù)據(jù)成員私有化,把具體指令的數(shù)據(jù)結(jié)構(gòu)的實現(xiàn)等的細節(jié)放到類的內(nèi)部,對這些設(shè)備的讀寫等操作只要使用這些設(shè)備自身提供的方法,實現(xiàn)了數(shù)據(jù)的安全性和代碼的可重用性,而且非常的簡單方便。 對HART協(xié)議進行了封裝,定義了HART通訊所用到的數(shù)據(jù)類型和結(jié)構(gòu),如HART的浮點數(shù),ASCII碼的壓縮,長地址,短地址,以及通用的HART數(shù)據(jù)幀(包括前導符、分界符、地址、命令號、字節(jié)數(shù)、數(shù)據(jù)、校驗字節(jié)、響應碼等)的組裝、發(fā)送以及接收的方法, 這樣需要發(fā)某一條HART命令時, 只要根據(jù)HART協(xié)議查出這條命令需要的數(shù)據(jù),用HART數(shù)據(jù)幀組裝的方法填入數(shù)據(jù),再分別使用HART數(shù)據(jù)幀發(fā)送以及接收的方法就可以了。 對GPIB接口卡和I/O卡提供的DLL 函數(shù)進行了重新封裝,如在GPIB接口卡的類包含了PC需要的講、聽和控制的方法,對GPIB接口的標準的儀器進行的封裝,就可以繼承GPIB接口類,這樣定義儀器所支持讀、寫操作時,就可以使用GPIB接口卡提供的函數(shù)。 定義了對各種儀器及設(shè)備的讀/寫的操作和方法。包括對標準電壓/電流信號發(fā)生器,標準壓力信號發(fā)生器,頻率信號發(fā)生器,數(shù)字萬用表并口、串口通訊類封裝了打開端口,配置端口,以及讀,寫的操作的Windows API函數(shù), 需要配置的結(jié)構(gòu)有DCB, COMMTIMEOUTS等, 主要使用函數(shù)的有CreateFile, ReadFile, WriteFile等。 b. 數(shù)據(jù)發(fā)送和采集模塊主要是通過對設(shè)備驅(qū)動模塊的訪問,完成了所有需要的對數(shù)據(jù)發(fā)送和采集的的方法的封裝,這些方法基本上都是使用設(shè)備驅(qū)動模塊定義了的設(shè)備或儀表自身提供的方法,并將這些方法提供給變送器檢驗檢驗模塊。 * 定義及實現(xiàn)了對HART變送器進行電流微調(diào)的方法 如調(diào)整DAC零點,首先將發(fā)送HART 40號命令,參數(shù)為4.0,將輸出電流鎖定為當前零點 ,然后采集電流表的讀數(shù)并類型將其轉(zhuǎn)換成HART的浮點數(shù),再發(fā)送45號命令將電流表的讀數(shù)發(fā)送給HART變送器進行校準,然后再次采集電流表的讀數(shù),判斷實際電流輸出是否滿足精度要求,如果滿足精度要求,則發(fā)送40號命令,參數(shù)為0.0, 退出校準,否則重復上述步驟。 * 定義及實現(xiàn)了對HART變送器進行出廠校準的方法,如對于1151壓力/差壓變送器,通過發(fā)送特殊命令 132號命令設(shè)定的傳感器類型和量程范圍, 發(fā)送133號命令確定校驗點為0,進入出廠標定狀態(tài),然后進行零點標定(標定第1點),發(fā)送GPIB指令使得壓力信號發(fā)生器加零壓力,待壓力穩(wěn)定后(延時)發(fā)送命令133 設(shè)定校驗點為1,還有當前儀表工程量單位和零點的校驗值為0.0, 然后類似的進行60%,100%的點以及負區(qū)的標定。 * 定義及實現(xiàn)了對HART變送器進行出廠檢驗的方法,如對于熱電偶溫度變送器,需要輸入8個分度號,根據(jù)量程每個分度號取5個點的mV值,向電壓/電流信號發(fā)生器發(fā)送指令,讓其輸出指定的mV信號,然后用HART 1號命令讀取主變量的值,與標準值比較,得出HART的數(shù)字精度,同時讀取數(shù)字萬用表的測量值,與標準值比較,得出4—20 mA輸出的模擬精度。 * 定義及實現(xiàn)了對HART變送器進行各種信息設(shè)定的方法,寫組態(tài)信息,如用HART 18號指令寫入工位、描述、時間,17號命令寫入信息值, 19號命令寫入裝配號等。 c. 變送器校準檢驗模塊主要是為了完成對變送器校準檢驗的具體操作,包含了針對不同變送器校驗檢驗的步驟,并向數(shù)據(jù)打印及入庫模塊提供數(shù)據(jù)源。這個模塊還根據(jù)管理員子系統(tǒng)中功能設(shè)置模塊對系統(tǒng)需要自動完成的操作的定義,自動將數(shù)據(jù)采集和發(fā)送模塊的方法進行組裝,以實現(xiàn)對校驗系統(tǒng)的自定義功能。 d. 數(shù)據(jù)打印及入庫模塊主要是完成校驗結(jié)果的打印和進入數(shù)據(jù)庫,是操作員子系統(tǒng)的所要完成的最后一個功能,主要是將校驗過程中采集的數(shù)據(jù)、運算的結(jié)果、產(chǎn)品的出廠編號等信息以打印報表和進入數(shù)據(jù)庫的兩種方式進行處理。 打印報表可以利用對并口讀寫的封裝,直接將格式化的字符串輸出到連接在并口上的打印機就可以了。 與SQL Server數(shù)據(jù)庫的連接采用ADO的方式,這樣可以滿足本地和遠程訪問數(shù)據(jù)庫的需要,這里主要是將校驗得到的數(shù)據(jù)和產(chǎn)品信息等存儲到SQL Server的數(shù)據(jù)庫中去。 2) 管理員子系統(tǒng)主要面向校驗系統(tǒng)的管理員,他們使用管理員的賬號登陸系統(tǒng),管理員的權(quán)限大于操作員,可以完成系統(tǒng)功能設(shè)置和數(shù)據(jù)庫管理的功能。 功能設(shè)置模塊主要是通過彈出得對話框,使得系統(tǒng)的管理員可以定制系統(tǒng)的操作步驟、選擇需要完成的校驗內(nèi)容,以及可以自動寫入變送器的一些信息,功能設(shè)置完成后,在操作員模式,當系統(tǒng)檢測到有變送器接入時候,可以自動完成設(shè)置好檢驗項目等內(nèi)容。功能的可定制使得自動校驗系統(tǒng)能夠適應多種場合的需求。   數(shù)據(jù)庫管理模塊主要是完成對操作員子系統(tǒng)進入數(shù)據(jù)庫的數(shù)據(jù)進行管理,可以對產(chǎn)品的信息進行檢索,還可以方便對各個時期產(chǎn)品的性能指標進行評測比較,來研判企業(yè)的生產(chǎn)水平。 3) 人機界面子系統(tǒng)的功能主要完成系統(tǒng)和用戶的界面,由于適用了Visual C++作為開發(fā)工具,大量MFC類庫作為基礎(chǔ),所以比較容易開發(fā)出很友好的Windows圖形界面。 由于變送器的校驗過程要占用系統(tǒng)很多的時間,存在著比較多得延時,而用戶界面需要實時接受用戶的操作和實時顯示對用戶輸入面板的監(jiān)控,為此采用了多線程的技術(shù)解決了這一問題,主線程主要完成校驗功能的實現(xiàn),由輔助線程來實時更新用戶的界面,對I/O端口進行輪詢。 4) 異常處理子系統(tǒng)主要是為了解決系統(tǒng)中使用得設(shè)備比較多,由于每一個設(shè)備出現(xiàn)問題都會引起系統(tǒng)的異常問題。 為了保證校驗系統(tǒng)的可靠性,在對各種可能出現(xiàn)的人為的誤操作和各個設(shè)備可能出現(xiàn)的情況進行了分析以后,編寫了大量的異常處理的方法,使得這個模塊的內(nèi)容覆蓋了整個系統(tǒng),當系統(tǒng)使用過程中出現(xiàn)異常情況,會立即轉(zhuǎn)入到這個模塊進行處理, 使得校驗系統(tǒng)可以對異常情況進行保護和報錯,使得系統(tǒng)的智能化和可靠性得到很大的提高。 4.3 軟件的工作過程 軟件開始執(zhí)行后,首先初始化及系統(tǒng)自檢工作, 主要是初始化GPIB接口卡,并將GPIB接口卡上的設(shè)備設(shè)成遠程工作方式,初始化 48回路I/O卡,將I/O設(shè)置為40路輸出,8路輸入,打開并配置計算機串口和并口。 完成了系統(tǒng)自檢后, 將開啟一個輔助線程用于監(jiān)控I/O 操作,做為軟件工作過程的主要部分,下面將比較詳細的介紹一些這部分內(nèi)容。 為了實現(xiàn)多線程之間的同步控制關(guān)系,創(chuàng)建一個手工的事件對象(手工的事件對象顯式得使用ResetEvent來改變信號量的狀態(tài))。   m_hEvent=CreateEvent(NULL,TRUE,TRUE,NULL)   然后創(chuàng)建并開啟一個輔助線程,   m_pThread=AfxBeginThread(MyThreadFunction,GetSafeHwnd(), THREAD_PRIORITY_NORMAL,0, CREATE_SUSPENDED, NULL);   if(m_pThread!=NULL)  ?。?m_pThread->ResumeThread(); }   輔助線程是以函數(shù)的形式出現(xiàn)在程序中,它的代碼是整個進程代碼的一部分,并可以共享進程的全局變量等。   UINT MyThreadFunction( LPVOID pParam )  ?。?   while(1){   m_Test.SCANDin();/// 讀取I/O卡的狀態(tài)   WaitForSingleObject(m_hEvent,200);///等待并檢查事件對象的狀態(tài)   ResetEvent(m_Test.m_hEvent);   PostMessage((HWND)pParam, WM_MYMESSAGE,0, 0);   //發(fā)送自定義消息給主線程通報I/O狀態(tài)   continue;  ?。?   return 0;  ?。?   這樣就由輔助線程完成了讀取I/O口狀態(tài),判斷用戶在操作面板的動作,實現(xiàn)了對I/O端口的監(jiān)視,   在主線程中定義消息映射機制, 在頭文件中添加對自定義消息及消息處理函數(shù)的定義,   #define WM_MYMESSAGE (WM_USER+100)   afx_msg LONG OnMyMessage(WPARAM w,LPARAM l);   DECLARE_MESSAGE_MAP()   在CPP文件中添加消息處理函數(shù)的實現(xiàn)   BEGIN_MESSAGE_MAP( )   ….   ON_MESSAGE(WM_MYMESSAGE,OnMyMessage)   ….   END_MESSAGE_MAP()   LONG CMyApp::OnMyMessage(WPARAM w,LPARAM l)  ?。?   /////對輔助線程中檢測到的端口數(shù)據(jù)進行處理,判斷并進入變送器校驗操作。   SetEvent(m_hEvent);////通過設(shè)置事件信號,表示數(shù)據(jù)處理完畢,輔助線程得到事件信號的狀態(tài)后就可以繼續(xù)了   return 0l;  ?。?   通過事件對象對多線程的同步控制,就可以使得耗時的I/O操作與程序的主線程分開,既保證了I/O監(jiān)視的實時性,又可以使主線程可以自由的處理其他的事情,充分利用了CPU的處理能力,使得各操作可以并行進行。
5、結(jié)束語 HART協(xié)議在儀表中的應用為儀表的自動化校準檢驗及信息管理提供了基礎(chǔ),本文闡述了較為通用的HART智能變送器校驗檢驗系統(tǒng)的設(shè)計思想和實現(xiàn)方法,針對不同廠家的HART變送器,只要添加數(shù)據(jù)發(fā)送及采集模塊中關(guān)于變送器校準的HART協(xié)議的特殊指令,就可以完成,具有一定的通用性,較好的實現(xiàn)了HART協(xié)議智能變送器的出廠校準檢驗及產(chǎn)品信息管理。產(chǎn)品已經(jīng)在現(xiàn)場實際運行,使用效果良好。 參考文獻: ⒈The HART Protocol Reference Liabrary ⒉Microsoft. Designing and Implementing Databases with Microsoft SQL Server 2000. MS Press ⒊Microsoft. Distributed Applications With Microsoft Visual C++6.0 . MS Press.

標簽:

點贊

分享到:

上一篇:雙串口文本顯示器在電梯監(jiān)控...

下一篇:微能WIN-V63矢量控制變頻器在...

中國傳動網(wǎng)版權(quán)與免責聲明:凡本網(wǎng)注明[來源:中國傳動網(wǎng)]的所有文字、圖片、音視和視頻文件,版權(quán)均為中國傳動網(wǎng)(www.treenowplaneincome.com)獨家所有。如需轉(zhuǎn)載請與0755-82949061聯(lián)系。任何媒體、網(wǎng)站或個人轉(zhuǎn)載使用時須注明來源“中國傳動網(wǎng)”,違反者本網(wǎng)將追究其法律責任。

本網(wǎng)轉(zhuǎn)載并注明其他來源的稿件,均來自互聯(lián)網(wǎng)或業(yè)內(nèi)投稿人士,版權(quán)屬于原版權(quán)人。轉(zhuǎn)載請保留稿件來源及作者,禁止擅自篡改,違者自負版權(quán)法律責任。

網(wǎng)站簡介|會員服務|聯(lián)系方式|幫助信息|版權(quán)信息|網(wǎng)站地圖|友情鏈接|法律支持|意見反饋|sitemap

中國傳動網(wǎng)-工業(yè)自動化與智能制造的全媒體“互聯(lián)網(wǎng)+”創(chuàng)新服務平臺

網(wǎng)站客服服務咨詢采購咨詢媒體合作

Chuandong.com Copyright ?2005 - 2024 ,All Rights Reserved 版權(quán)所有 粵ICP備 14004826號 | 營業(yè)執(zhí)照證書 | 不良信息舉報中心 | 粵公網(wǎng)安備 44030402000946號