摘 要: 針對測控系統中測試儀器接口的差異性,利用面向對象的程序設計的封裝,繼承和多態思想,設計了一個具有較強通用性的通訊類。在此給出了該類族的UML圖例,在具體的設計應用中,各個層次的分工明確清晰,從而提高設計的效率,使得采用該設計思想的系統具有較強的魯棒性。之后,給出了應用于GPIB接口儀器的設計用例,系統具有很好的適應性和可擴展性,要增加不同儀器時,針對不同接口很容易添加每個接口類的設計代碼。
關鍵詞: 測控系統; 接口; GPIB; OOP
中圖分類號: TP311.52 文獻標識碼: A 文章編號: 1004?373X(2013)12?0148?03
0 引 言
隨著電子技術的發展,嵌入式控制系統進入了各個行業,而友善的人機交互決定了臺式機和控制系統的結合不可避免。同時,隨著虛擬儀器技術的發展,硬件軟件化的趨勢愈加明顯,在測控系統中,一般的系統構架都采用前端是數據采集系統,然后將采集到的數據通過傳輸協議傳輸到后臺臺式機中進行更加靈活的處理和顯示,比方說現在TI的CVS或者LabVIEW就是專門用于方便地設計虛擬儀器的開發工具[1?2]。這個一方面是降低成本的方式;另一方面,系統的構架上靈活,適應性得到了加強。
1 硬件構架
嵌入式的測控系統,結合臺式機靈活的軟件設計,可以提供給用戶多樣的虛擬儀器的人機交互界面,以及復雜的數據管理功能。圖1就是一個典型的測控系統的基于虛擬儀器構架的抽象系統框圖。
整個系統,分成了3個邏輯部分:第一部分就是待測控的系統,可能是某個系統的溫度,或者是某個工業控制過程的流量等;第2部分是數據采集和控制執行單元,這個部分負責了數據的采樣和來自工控機的命令的執行,關于數據采集單元,可以簡單的由傳感器加A/D轉換電路組成,也可以是諸如頻譜儀等專門的測量儀器。由于有些系統是開環系統,所以未必有控制執行單元,所以這個單元在圖中用了虛線的方式表示,負責工控機經過某些算法運算之后,執行控制命令;第3部分就是工控機所在的儀器界面的部分,這個部分可以使對原始數據的形象圖形化表示(即虛擬儀器,完成人機交互),也可以負責執行諸如一些特殊的信號處理功能,然后將處理結構進行顯示或者將處理結果作為算法控制的輸入,進行產生控制信號,一邊對被控對象進行及時的控制。
系統的工作過程,首先是由被測控系統的需要檢測的數據決定了所需要的數據采用硬件進行采用原始的數據,然后又采用系統將數據直接轉換為原始數據信號,如果采樣后需要立即進行必要的數據處理,就可以使用DSP對數據進行一次加工,然后作為初始數據,通過標準的傳輸協議(如串口,網口,藍牙[3],或者USB[4]等),將數據傳輸給工控PC,然后通過編寫工控軟件,將數據進一步進行深層次的處理,顯示,存儲,如果需要對系統進行控制,就可以在工控機上對信號使用如濾波,變換或者控制PID等的各種算法,然后通過標準協議,將處理的控制信號傳輸到控制執行單元,對測控系統中所關心的參數進行控制。
本文關注的就是各種傳輸協議在工控PC上的編程時代碼的適應性,擴展性以及代碼的復用性。
2 接口類的設計
2.1 基于面向對象的接口類的設計
對于具體的通訊協議接口,比如串口、網口或者GPIB,甚至其他的芯片的接口[8?9]等,都是繼承自通訊類COM的,在COM類中,各個接口方法可以定義成虛方法,這樣,有利于在具體的派生類中對其進行重載,從而有利于動態多態機制的實現,而具體的差異統統放到每個具體類的擴展部分。例如,對于串口,關注的是串口名稱,串口數據傳輸速率,有無校驗,數據位數以及停止位等信息[4],而網卡則關注的IP地址和端口號,這些信息可以利用封裝機制,封裝到每個具體的接口類中,他們代表著不同類之間的差異與個性,這些差異信息完全由具體類自己控制操作。通過重載父類COM類的公有方法,就提供了通用的接口。
2.2 該構架的使用模型
在具體的使用過程中,如果是用測量儀器進行來承擔原始數據的采集的,那么用戶一定是明了儀器所使用的與控制機進行聯機的接口類型的,或者是串口,或者是網口,或者是其他的新標準的工業控制接口,在應用編程時,就需要先創建一個這樣的通訊口的對象,然后把這個對象的引用傳遞給儀器類,產生一個儀器對象出來,由于儀器是繼承Device抽象類的,所以在產生出具體儀器類之后,利用面向對象的多態技術,可以將這個儀器對象傳給一個上層應用的Device指針,上層應用就可以通過Device類提供的通用接口,來對設備進行打開,讀寫等操作,在應用層,用戶可以利用線程技術,來提高系統的整體性能。
3 結 語
基于這樣的面向對象的思想設計出來的測控系統的通訊接口類,在某個銀行終端的模擬測試中,可以很好地適應串口和網口的測試,代碼思路清晰,非常有利于擴展和維護。
參考文獻
[1] 雷振山,肖成勇,魏麗,等.LabVIEW高級編程與虛擬儀器工程應用[M].2版.北京:中國鐵道出版社,2012.
[2] 白云,高育鵬,胡小江.基于LabVIEW的數據采集與處理技術[M].西安:西安電子科技大學出版社,2009.
[3] HUANG A S, RUDOLPH L. Bluetooth essentials for programmers [M]. New York: Cambridge University Press, 2007.
[4] 薛園園,趙建領.USB應用開發實例詳解[M].北京:人民郵電出版社,2009.
[5] LIPPMAN S B, LAJOIE J, MOO B E. C++ primer [M]. 4th ed. Boston: Addison?Wesley, 2006.
[6] 朱海濱,周孟初.C++面向對象程序設計:基于設計項目的方法(英文影印版)[M].北京:清華大學出版社,2006.
[7] FOWLER Martin. UML精粹:標準對象建模語言簡明指南(英文影印版)[M].3版.北京:清華大學出版社,2006.
[8] 陳江偉.工控領域中通用GPRS通訊接口的研究[J].微計算機信息,2008(6):135?136.
[9] 龔建偉,熊光明.Visual C++/Turbo C串口通信編程實踐[M].2版.北京:電子工業出版社,2007.
[10] NI Corp. NI?488.2 user manual for Windows [M]. Texas, USA: NT Corp, 2000.