隨著工業液位測量系統的自動化程度不斷提高,大量的智能儀表得到廣泛應用,越來越多的工控設備具備了與計算機進行通信的功能。工控監測系統中存在多系統、多通信協議并存的喜愛你想,使得工控應用軟件的開發收到限制,每次開發新的應用程序時,都要深入理解現場設備的數據傳輸協議,重新編寫相應的驅動程序,耗費了巨大的人力、物力,開發過程也因此變得繁瑣、開飯拿度增大、周期邊長。OPC(OLE for Process Control,用于過程控制的OLE)規范的出線很好的解決了這一問題。OPC規范是一系列規范的集合,具有OPC DA規范、OPC A&E規范、OPC XML-DA規范等。在這些規范中,OPC DA規范是其它所有規范的基礎,也是應用泛的OPC服務器。OPC DA規范基于微軟的COM/DCOM技術,為工業控制軟件設計的一套標準的對象、接口和屬性集,通過這一套標準,可以實現數據交換方式的標準化。目前市場上的液位測量儀雖然都能夠實現基本的液位測量,但不具備專門的OPC接口對外發布數據,因此,本文提出一種基于OPC接口的磁致伸縮液位計液位測量監測系統。該系統通過OPC服務器實現了液位監測系統測量數據的對挖統一接口,真正消除了傳統液位測量儀彼此孤立、數據脫節的現象,應用軟件只需具備O P C 客戶端,就可以不用管設備上數據傳輸的格式、協議,即可正確獲取O P C 服務器上的數據。
1 磁致伸縮液位測量儀總體設計
磁致伸縮液位測量系統總體設計框圖。本系統采用 A R M Cortex-M 4 系列T M 4 C 1294N C P D T I 芯片作為主控制器,主系統頻率可達120M H z ,能夠提供足夠的時間分辨率捕獲回波信號,保證了液位測量數據的精度。激勵脈沖電路部分設計了三極管射極跟隨緩沖電路,定時產生幅值較大的脈沖電流信號,以驅動傳感器工作。信號處理電路部分對回波信號進行采集處理,過濾干擾信號,放大有用信號以供處理器捕獲。觸摸屏米用迪文公司的D G U S 屏,實現系統中參數的設定,數據標定等工作。數據外部存儲采用S D 卡,采用SPI方式進行數據的讀寫。同時設計了數據上下限報警功能,控制外部泵、閥開關。一個測量周期完成后,通過Modbus T C P 協議將數據發送至O P C 服務器上,O P C 服務器收到數據后,將以O P C D A 標準進行數據發布,以供其他帶有O P C 客戶端的應用程序直接訪問,獲取數據。
1 . 1 磁致伸縮位移傳感器測量原理
該傳感器利用波導絲的磁致伸縮效應開發而成,傳感器結構如圖2 所示,由電子倉、波導絲、探測桿、活動磁鐵、阻尼器等組成。當在電子倉內的感應線圈上施加電流激勵脈沖信號時,波導絲上產生瞬時電流,根據電磁感應原理,波導絲周圍瞬時產生磁場,該磁場與活動磁鐵周圍的磁場相遇,產生扭轉波,扭轉波迅速向兩端傳播,一端被阻尼器吸收,另一端被感應線圈檢測[4]。扭轉波傳播的速度已知,根據波導絲材質而定,一般為2800m / s [5]。傳播時間通過感應線圈采集信號的時間間隔得出。
1 . 2 信號處理電路
兩級信號放大電路。由于扭轉波經過感應線圈變換后的回波信號會發生衰減,幅值較小(約2m V ) 、頻率較高、并且極易被噪聲淹沒。選用M A X I M 公司的具有高輸入阻抗、高帶寬、穩定的放大倍數和帶寬增益積為200M H z 的雙通道運算放大器M A X 4453[6]。考慮到傳感器的工作環境比較惡劣,存在外部擾動、噪聲干擾、共模干擾等,因此采用雙端輸入,單端輸出的差動放大電路和同相放大電路對回波信號進行多級放大。差動放大電路放大差模信號,抑制共模信號,同相放大電路則繼續對回波信號的幅值進行放大。經過兩級放大后,又串接兩級同相放大電路,總閉環增益可達1100倍,回波信號的可檢測性大大提高,使得傳感器的穩定性也大大增強。

2 O P C 服務器設計
O P C 通信采用客戶服務器模型,建立了一套在硬件供應商和軟件開發商之間數據交互遵循的標準。 基于O P C 客戶/服務器模型的磁致伸縮液位監測系統框圖。軟件開發商無需了解工業現場各個儀表傳輸數據遵循的協議,只要具備了O P C 客戶端接口,即可訪問到工業現場每個儀表的測量數據,進行相應的應用軟件的開發,使得用戶從開發底層中脫離出來,方便了開發過程,提高了開發效率。
O P C 服務器由三層邏輯對象構成: O P C 服務器對象、O P C 組對象和O P C 項對象。其中O P C 服務器對象和O P C 組對象是標準的C O M 對象,提供了一組標準的C O M 接口,O P C 客戶端就是通過這些接口與O P C 服務器取得通信[7]。O P C 項對象是客 戶端與服務器數據交互的基本單元。O P C 接口的開發方式主要有三種:(1)借助M F C 軟件對C O M 的支持進行開發;(2 ) 通過A T L的方式進行開發;(3 ) 通過第三方提供的開發包進行開發。通過比較分析,前兩種開發方式涉及許多底層的Windows A P I,開發難度較大,開發周期也較長,并且遵循的是O P C 服務器同意標準,在實現上有很多相似之處,這無疑是一種冗余勞動。因此本文采用第三種開發方式,即通過O P C 服務器開發工具進行O P C 服務器的開發。
本文米用FactorySoft公司提供的FSServer. dll開發包進行開發,在V C + + 6 . 0 環境下創建基于對話框的M F C 應用程序,在程序中調用FSServer. dll的函數來實現O P C 服務器的建立。服務器需手動注冊啟動,運行G U I D G E N . e x e程序產生一個G U I D賦值到程序中相應的位置,如下所示為生成的一個G U I D 。CLSID CLSID_OPCServer ={0xb61b9100, 0x3059, 0x11d 1 , { 0x8d , 0x5a ,0x2 6,0x5 1,0xe9 ,0x0 ,0x0 ,0x8 } };在工程文件函數初始化中,可判斷O P C 服務器是否完成啟動,其中部分初始化代碼如下所示:
AfxEnableControlContainer();
OleInitialize(N U L L ) ;
if ( ! StartFSServer ( m _ hInstance, & C L S I D _
OPCServer) )
return F A L S E ;
if( F A I L E D ( RegisterServer( ) ) )
AfxMessageBox ( _ T ( " RegisterServer
Failed" ) ) ;
SetCallbackObject( new ShellCallback ) ;
O P C 服務器啟動完成后,在callback. c p p 文件中繼續建立O P C 組對象、項對象。這些對象一旦在O P C 服務器中建立起來后,在O P C 客戶端啟動連接時,會自動按照O P C D A 數據傳輸方式生成對應數據項。再將傳輸協議中對應的數據放到相應的項中,就完成了 O P C 服務器對數據的獲取、發布。添加、建立O P C 服務器中的組、項的代碼如下:
// create a static tree of tags
Branch * pBranch = new Branch(" Data" ) ;
m _root. AddBranch( pBranch ) ;
ShellTag* pTag_Shift = new ShellTag(" Shift" ,
pBranch) ;
pTag_Shift - > m_nativeType = V T _ R 8 ;/
this tag returns a Short
pTag_Shift - > m_type = 2 0 ;
pBranch - > AddTag( pTag_Shift ) ;
3 M o d b u s T C P 設計
以太網通信技術現已發展成熟,由于其可靠的傳輸,方便的配置,高效的通信速度,使得該技術在工業測量控制領域被越來越多地采用,T C P / I P協議運用逐漸增多,方便了設備之間、設備與監控平臺之間的數據傳輸。T C P / I P 協議是Internet的基本協議,規定了設備接入Internet的方式和設備間傳輸數據的方式[8]。M o d b u s協議是工業上的事實標準,基于M o d b us協議的設備一般采用主從技術進行通信, 主機既能以單播的形式和網絡中的叢機單獨通信,也可以用廣播的形式和所有叢機通信[9]。當叢機收到主機的一份單播報文,并且設備地址與本機一致時,叢機根據功能碼返回一份相應的報文。
Modbus T C P 是M o d b u s協議和T C P / I P協議在工業應用中的結合,液位測量儀的網絡數據傳輸部分設計了 Modbus T C P 數據傳輸功能。T C P / I P協議是眾多網絡協議的組合,為了能夠滿足多種協議功能的需求致使T C P / I P 協議棧包含眾多的協議,規模龐大。由于本系統中并不需要使用所有的網絡通信功能,因此對T C P / I P 協議棧進行精簡,設計的滿足需要有節約資源的協議棧。鏈路層包含了設備驅動程序以及相應的網絡接口卡;網絡層包含了 A R P 、IP、I C M P 三種協議,其中A R P 用于I P 地址向M A C 的映射轉換,I P 是核心協議,實現了對網絡設備的統一編址,使不同的網絡和不同的設備能夠互聯,I C M P 為網絡控制報文協議,顯示目的主機、端口、網絡是否可達等情況,主要用于判斷網絡的狀態;運輸層主要為兩臺主機提供端到端的通信,這里設計了面向連接的可靠的T C P 數據傳輸協議,主要負責將一臺主機生成的字節流無差錯地發送到互聯網上的其他主機上;應用層負責處理特定的應用程序細節,實現M o d b u s協議的數據傳輸。
4 實驗驗證
O P C 客戶端成功訪問O P C 服務器后顯示的數據,O P C 服務器中建立了三個被訪問的數據項:位移(Shift) 、周期捕獲脈沖數(Count) 、環境溫度(T E M P ) 。O P C 服務器周期性訪問到工業現場的測量數據,并存放到建立的數據項中。O P C 客戶端成功連接后,當O P C 服務器項中數據有所變化,O P C 戶端中數據也即可作出相應的改變。實驗測量的為2m 的位移,實際測得的數據為1.991m ,在測量時間內,數據有1 3 7次變化,溫度有5 0 次的改變。從測量結果來看,能保證測量精度。同時應用程序的開發人員,也無需耗費較多的時間去編寫深入底層的數據獲取解析協議,通過O P C 客戶端即可訪問到工業現場的實時測量數據。
5 結束語
本文設計了一款基于O P C 服務器的磁致伸縮液位監測系統。采用A R M Cortex-M 4 系列T M 4 C 1294N C P D T I 芯片作為主控制器,實現了 M o d busTcp 網絡通信協議 ,并在 FactorySoft 公司推出的FSServer. dll開發包的基礎上完成了 O P C 服務器的設計。克服了傳統的液位測量儀表的缺陷,實現了儀表的智能化、網絡化和規范化,滿足了當前工業現場對液位測量的發展需要,具有較高的實用價值和推廣意義。