本文介紹了高精度液位變送器測試系統(tǒng)的系統(tǒng)結(jié)構(gòu)和軟件設(shè)計,重點介紹了基于多線程的多串行通信協(xié)議的開發(fā)和過程流程,實現(xiàn)了正確性
液位變送器
傳感器參數(shù)的大量采集,提高了生產(chǎn)效率,為液位變送器的軟件補(bǔ)償和標(biāo)定提供了可靠的保證,提高了液位變送器的精度和可靠性。 隨著微處理器在工業(yè)測量控制中的廣泛應(yīng)用和性價比的降低,出現(xiàn)了以微處理器為核心的高精度智能液位變送器,對液位變送器的生產(chǎn)檢測提出了更高的要求。 為了提高精度,軟件與硬件相結(jié)合的方法需要大量檢查液位變送器和傳感器的參數(shù),形成軟件補(bǔ)償表,判斷變送器、傳感器的精度是否滿足要求。 本文為了滿足這一需求,構(gòu)建了以工業(yè)控制計算機(jī)為中心的寄存器測試系統(tǒng)。 1 .系統(tǒng)構(gòu)成變送器測試系統(tǒng)整體的構(gòu)成圖,主要是dracker公司的DPI520系列標(biāo)準(zhǔn)液面水平發(fā)生器3臺,吉時利公司的數(shù)字萬用表2700系列1臺,歐姆龍公司的可編程控制器( PLC)C2OO日1臺,智能住宅1臺,里 這些智能儀表帶有RS232通信端口,但由于通常的工業(yè)用控制計算機(jī)只有2個232通信端口,為了增加串行端口,采用了MOXA公司的C168日系列單拖存。
2 .系統(tǒng)的工作原理和功能測試系統(tǒng)整體的工作原理是,利用控制機(jī)的人機(jī)界面,設(shè)定要測量的發(fā)射器和傳感器群、液位大小的設(shè)定和溫度,將通過PLC選擇的發(fā)射器和傳感器按順序進(jìn)行測量即收集的內(nèi)容放入數(shù)據(jù)庫,進(jìn)行適當(dāng)?shù)挠嬎?通常,為了在使用液位傳感器之前執(zhí)行溫度漂移補(bǔ)償和非線性校正,常規(guī)方法通過基于經(jīng)驗值在一些溫度點處選擇用于補(bǔ)償?shù)碾娮杵鱽硖岣哐a(bǔ)償之后的精度。 為了在全溫度范圍內(nèi)獲得高精度補(bǔ)償效果,需要大量測量傳感器在各溫度下的參數(shù),通過公式計算補(bǔ)償電阻的大小,提高傳感器的精度和可靠性。 本測試系統(tǒng)的一個功能是一次測試64個傳感器,計算相應(yīng)的補(bǔ)償電阻值,同時計算傳感器的非線性、重現(xiàn)性、滯后性,得到其精度,判斷是否滿足要求。 隨著智能變送器的出現(xiàn),對變送器的溫度漂移補(bǔ)償和非線性校正方法也一直以來,單純的模擬電路調(diào)節(jié)以軟件調(diào)節(jié)為中心。 軟件調(diào)節(jié)的主要原理是在生產(chǎn)振蕩器時,計算振蕩器的溫度、標(biāo)準(zhǔn)水平上的輸出,形成補(bǔ)償參數(shù)并存儲在振蕩器的程序存儲器中,在生產(chǎn)現(xiàn)場實際應(yīng)用時,程序根據(jù)現(xiàn)場的溫度和水平自動調(diào)用補(bǔ)償參數(shù),完成補(bǔ)償過程。 系統(tǒng)的兩個功能是測試多個64個振蕩器,執(zhí)行相關(guān)處理以獲得補(bǔ)償參數(shù)。 使用本系統(tǒng),既能提高傳感器生產(chǎn)和檢測的生產(chǎn)效率,又能補(bǔ)償傳感器和變送器,大大提高其精度。 3、系統(tǒng)軟件設(shè)計選擇microsoft?visic ̄+6.0開發(fā)軟件系統(tǒng),以便系統(tǒng)要求大量交互接口,設(shè)置和監(jiān)控大量參數(shù),操作系統(tǒng)在Windows2000中 系統(tǒng)的軟件設(shè)計主要包括人機(jī)界面設(shè)置、多串行通信和數(shù)據(jù)庫處理等。 人機(jī)接口的設(shè)置主要利用VC十+的控件進(jìn)行編程,數(shù)據(jù)庫部分主要是計算與數(shù)據(jù)存儲相對應(yīng)的參數(shù),比較簡單,在此不作介紹。 在此著重介紹多串行通信的編程。 3.1封裝串行類visaicstory+的微軟基類( MFC )不能提供公共串行通信代碼,使用32位WindowsAPI函數(shù)操作串行很麻煩。 由于在系統(tǒng)內(nèi)的大量數(shù)據(jù)傳輸中采用串行端口,因此對串行端口的操作特別頻繁。 我們主要采用面向?qū)ο蟮脑O(shè)計方法,對VC6.O下常用串行操作實施串行系統(tǒng)CSerialP0rt相關(guān)屬性和方法,以提高串行操作的透明度,提高串行傳輸數(shù)據(jù)的可靠性,隱藏基本細(xì)節(jié),對串行操作進(jìn)行編程 您在串行端口. cpp源文件中定義了一系列函數(shù)以處理串行。 例如,初始化序列并設(shè)置序列屬性的InitP0r ( )函數(shù)。用于啟動和停止線程的StartMonitoring ( )、RestartMonitoring ( )函數(shù)。用于讀取和寫入序列的reet 3.2通信協(xié)議的實現(xiàn)系統(tǒng)采用的
智能流量計
另外,因為制造商使用的協(xié)議不同,所以給軟件設(shè)計帶來了一定的困難。 采用面向?qū)ο蟮姆椒ǎ瑥乃兄悄軆x表中提取共同的性質(zhì)(例如端口號、儀表號、下位設(shè)備地址、功能記述等),結(jié)合所概括的共同的性質(zhì)形成一個智能儀表基本類CC0mmen類,標(biāo)準(zhǔn)的儀表訪問和數(shù)據(jù)訪問接口 各智能儀表采用制造商提供的通信協(xié)議。 3.3實現(xiàn)多線程串行通信,要求控制臺與四個以上智能儀表通信,并長期動態(tài)穩(wěn)定運行,是液位變送器檢測系統(tǒng)整體的中樞,因其可靠性、魯棒性要求高,整個數(shù)據(jù)采集的驅(qū)動程序?qū)τ诟鞔凶x寫協(xié)調(diào)至關(guān)重要 在啟動串行數(shù)據(jù)采集驅(qū)動程序之前,根據(jù)實際計算機(jī)連接情況配置計算機(jī),設(shè)置并存儲各串行連接的計算機(jī)類型和個數(shù)、基本串行通信參數(shù)。 驅(qū)動程序主線程的作用是負(fù)責(zé)交互式接口操作和各串行操作線程的啟動和協(xié)調(diào),線程間的通信采用Windows的消息機(jī)制。
以上就是高精度液位變送器測量介紹文章的全部內(nèi)容