一、概述
從上個世紀九十年代開始,不同工業控制領域現場總線技術競爭加劇,形成了當今不同總線標準并存的局面。由于不同總線技術共生存、同發展的現狀,造成了在控制系統的構建過程中,很可能會出現在一個現場總線系統中需要實現跨總線的信息傳遞與共享的情況。因此,解決在不同種類現場總線協議間的互操作問題成了當務之急。網關就是解決這一問題的一個直接而重要的手段。
網關除了將其兩側所連接的不同總線之間的電氣信號進行隔離和轉換之外,還為這兩種總線提供透明的數據傳輸服務,這些數據除了有現場控制數據之外,還包括組態數據和診斷數據。廣義的網關甚至還應提供不同總線協議之間應用層服務的翻譯功能,能徹底實現不同總線之間的互操作。本文以現場總線(FOUNDATION Fieldbus,簡稱FF)H1與PORFIBUS DP之間的網關為例,建立了網關模型,并對網關的測試提出了一些見解。
二、網關的原理與實現
網關為兩個網段之間提供了透明的數據傳輸服務,能實現一個網段的設備可以通過網關讀取另一個網段中的數據并完成控制計算的功能,即網關不僅提供了不同總線之間的信息資源的公享,同時也可以使不同總線之間的計算資源也得到公享。
1、協議簡介
FF的體系結構采用了OSI七層模型中的物理層,數據鏈路層和應用層,并且在應用層之上增加了用戶層。用戶層由預先定義的標準功能塊和用戶自定義的柔性功能塊(FlexibleFunction Block,簡稱FFB)構成。功能塊(Function Block)是一個以數據結構為核心的軟件邏輯處理單位,能完成一個獨立而完整的控制功能。一個FF控制系統在邏輯上可以視為由若干個功能塊組成。
一個典型的FF閉環控制系統結構如圖1所示:設備1中的AI(Analog Input)功能塊通過傳感器對現場數據采樣,然后由設備2中的PID(Proportional Integral Derivative)功能塊根據設定值和設備1發送來的采樣值進行控制計算,最后通過AO(Analog Output)功能塊將控制量發送到執行器完成控制。FF系統中的執行順序和總線傳輸由鏈路主設備(Link Active Scheduler,簡稱LAS)負責調度。LAS可以是一個計算機接口卡,也可以是一個現場設備。
PROFIBUS從體系結構上可分為FMS、DP和PA三種類型。FMS用于車間級的數據通信,DP型和PA型適用于現場級的數據傳輸,其中,PA型設備主要應用于有特殊要求的場合。從系統行為上,PROFIBUS可分為DP主站(一類,二類)、DP(PA)從站、FMS主站和FMS從站這幾種。DP主站(一類)根據用戶定義好的算法控制若干個DP從站,并負責與DP主站(二類)進行通訊;DP主站(二類)是一個管理設備,可以支持復雜的DP系統的管理與診斷;DP (PA)從站是一個I/O設備,負責與現場進行信息交換;FMS主站和從站主要進行大批量的數據傳輸,完成較復雜的通訊任務。
典型的PROFIBUS閉環控制系統可如圖2所示:DP從站1將現場采樣數據發送到DP主站,并在DP主站完成控制計算,然后由DP從站2將控制量發送到執行器完成閉環控制。整個通訊過程由DP主站進行調度,因此PROFIBUS是屬于分布式基礎上的集中控制模式。
2、網關結構
FF H1/PROFIBUS DP網關(以下簡稱網關)由FF H1設備模塊、PROFIBUS DP設備模塊和數據交換管理模塊這三部分組成,其拓撲結構如圖3所示。
FF H1設備模塊包含一個完整的FF邏輯設備,即具有由FF的物理層、通信協議棧和功能塊組成的用戶應用層,它負責與FF H1網段上的其他FF總線設備進行通信,使網關在FF H1網段上映射為一個FF總線設備。
PROFIBUS DP設備模塊由基于西門子公司的協議芯片SPC3之上開發的應用程序和相應硬件電路組成,它可以與PROFIBUS DP網段上其他設備進行數據交換,將網關映射成為PROFIBUS DP網段上的一個DP從站。
數據交換管理模塊管理兩個模塊之間的數據通道,主要負責兩網段間通信數據的映射、流量控制、兩種協議報文的轉換等工作,是網關的核心部分。
3、網關工作原理
當需要進行跨網段的信息訪問時,需要對FF設備和DP設備進行適當的組態。在組態過程中,網關的數據管理模塊根據用戶配置的組態信息建立一個反映兩網段中欲交換數據關系的映射表 (DataMapTable),從而保證數據的正確傳輸。
下面以FF設備從DP從站中讀取現場數據完成閉環控制為例來說明網關的工作原理。此時的控制結構如圖4所示:網關中的FF設備模塊映射成為FF H1總線上的一個設備,其中包含一個AI功能塊。
具體是實現過程是:DP從站1從傳感器讀取現場數據,并將得到的數據發送到DP一類主站。然后,DP主站直接將采樣數據發送到網關,網關中的DP模塊獲得數據之后,就通知數據管理模塊來讀取數據。數據管理模塊根據DataMapTable中的映射關系將數據放到相應的數據緩沖區,等待FF設備將數據取走。
FF設備中的AI功能塊得到調度后,就到數據緩沖區讀取數據。根據數據在緩沖區的位置不同就可以知道所讀取的數據所對應的功能塊輸入端,然后根據FF系統中的組態信息將數據發送到FF設備1中的PID功能塊進行控制計算得到控制量,并由AO功能塊將控制量發送到執行器完成閉環控制。
在對兩個網段進行組態的時候,應該注意調度周期的匹配。如果DP從站1采集數據的頻率比FF功能塊讀取數據的頻率高,會由于數據的覆蓋而造成數據丟失;相反如果DP從站1采集數據的頻率比FF功能塊讀取數據的頻率低,則有可能造成FF設備對同一數據的重復讀取。
當然,網關也可以進行反向的數據交換,即DP從站從FF設備中讀取現場數據并在DP主站中完成控制計算。此時的控制結構與圖4相似,只不過由FF設備1中的AI功能塊對傳感器進行采樣,由DP從站1將控制量發送到執行器完成控制,且網關中的FF設備模塊包含的是一個AO功能塊。
三、網關的測試
由于兩種總線的速度、設備調度機制及鏈路時間的計算有很大的差異,因此有必要對網關進行全面的測試,以排除網關使用中的隱患。
網關作為兩種設備的集合體,在不同的總線網段上分別表現為FF H1設備和PROFIBUS DP從站,而對于單獨的FF設備或DP設備而言,可以分別由各自的互操作測試系統來檢驗其互操作性。因此,網關測試的重點就在于對數據交換管理模塊的測試。
數據交換管理模塊最重要的一個任務就是根據組態信息通過建立交換數據的映射表(DataMapTable )來正確指導總線間的數據交換,因此,首先測試DataMapTable的正確性。為此,進行如圖5所示的組態,令FF設備中的8個AI功能塊在每個控制周期內分別從8個DP從站中讀取一個數據,目的是讓網關在最大的數據吞吐量下,檢測數據映射關系的正確性。通過監控軟件讀取8個AI功能塊的輸入,并與8個DP從站的數據進行對比,從而判斷各個AI功能塊與DP從站的對應關系是否正確。
數據交換管理模塊還負責對數據的有效性進行檢查,避免讀取到失效的數據而對控制產生影響。為了測試這一功能,在上述測試過程中,可以人為的將一個或多個DP從站設置為Offline狀態,即不為AI提供數據,使得數據管理模塊中與之相應的數據得不到更新。經過一段時間(時長可由用戶設定)后,數據管理模塊應該將沒有得到更新的數據狀態設置為Bad以提示當前數據不可用。當DP從站重新運行并提供數據后,數據管理模塊應該刷新該數據,并將數據狀態設置為Good,指示數據有效。
對于從FF H1網段向DP網段的數據傳輸測試也采用類似的測試結構,只不過在每個控制周期內是用FF的8個AO功能塊分別向8個DP從站傳遞一個數據來測試數據映射關系。同樣,也用相同的方法對數據有效性的監控進行測試。
四、結束語
目前實現的FF H1/PROFIBUS DP網關還存在一定的不足,有待進一步改進,例如不能發送報警事件等。另一方面,網關的測試在很大程度上都是由人工來進行分析和判定,無法做到自動測試,難以對大量數據流進行分析測試。
利用網關能夠兼容差異較大的總線協議的特性,解決了兩種總線之間點對點的互連與互操作的問題。在安裝新的現場總線設備時,可以利用網關和原有的總線設備連接,在在不影響原系統工作的情況下,充分利用了已有資源,減少了投資。
參考文獻
[1] Function Block Application Process Part1-4, Foundation Specification[z]. Austin, Texas,1997.
[2] PROFIBUS Specification EN50 170, Version 1.0, PROFIBUS International[z]. Karlsruhe, Germany, 1998.
[3] SPC3 Siemens PROFIBUS Controller User Description, Version 1.5[z], Siemens AG, 1996.
[4] 何巧麗,胡正國,吳健.現場總線中多總線兼容技術[J]. 計算機應用, 2002, Vol.22(7): 78-80.