2010/09/29

PROFIBUS-DP接口開發技術研究和應用

1 引言
現場總線被譽為自動化領域的計算機局域網,是自動化領域的研究熱點[1]。 PROFIBUS-DP是應用在現場自動化儀表和設備領域的一種主要的現場總線並且已經成為國際電工委員會制定的國際標準之一(IEC61158 TYPE3)和中國國家標準(GB/T 20540-2006)。現場總線技術是電子技術,通信技術,智能儀表技術和自動控制技術相互結合的產物[2]。
PROFIBUS-DP接口的開發包括硬件部分、軟件部分和電子設備數據GSD文件部分。

2 基於 PROFIBUS-DP的自動化系統的構建
因為是開發PROFIBUS-DP接口,所以總體結構較為簡單和實用。總體體系結構如圖 1所示。主站和從站通過PROFIBUS專用網線組成一個單主站PROFIBUS系統。主站由計算機和SST公司的總線卡5136-PFB-PCI組成;現場設備(圖中是智能控制器)和本文開發的從站總線接口卡組成PROFIBUS-DP現場智能設備,作為PROFIBUS-DP從站。圖中的智能控制器、變頻器和泵共同構成閉環系統。本文重點介紹總線接口卡的開發。

3 PROFIBUS-DP接口開發重點和難點在於:實現狀態機和服務訪問點。
3.1開發方案分析、比較和和選擇利用單片機的方案需要理解協議的大部分細節,實現的PROFIBUS-DP站的傳輸速率受單片機晶振的限制,根本無法達到最大傳輸速率12Mbit/s。
通信專用芯片集成了PROFIBUS-DP協議和狀態機,並且給出了具體的服務訪問點;使用專用芯片開發PROFIBUS-DP總線接口卡,不再需要考慮的協議大部分細節,重點是熟練使用專用芯片。
與利用單片機的實現方案比較,使用專用芯片可大量地節約開發時間和成本,傳輸速率可以達到12Mbit/s。因此,本文使用專用芯片SPC3進行總線接口卡的開發。
3.2 SPC3功能介紹[4]SPC3基本上集成了完整的PROFIBUS-DP協議。 SPC3集成有1.5K字節的RAM,方式寄存器,狀態寄存器,中斷控制器,看門狗定時器(保護監控定時器)和各種緩衝區;能夠自動地識別9.6K到 12M的波特率。微順序控制器控制著SPC3整個處理過程。總線定時器直接控制串行總線上的總線時間。
SPC3包括如下的服務訪問點(服務):缺省SAP(讀寫數據交換),SAP55(改變站地址),SAP56(讀輸入),SAP57(讀輸出),SAP58(向DP從站發控制命令) ,SAP59(讀組態數據),SAP60(讀從站診斷信息),SAP61(發送參數設置數據),SAP62(校驗組態數據)。
3.3硬件設計主要是選用RS485芯片和光耦芯片,如果從站對傳輸速率的要求可以低於12M波特率,那麼有性能指標稍低的RS485芯片和光耦芯片。另外本文開發的總線接口卡設計為可以選擇雙口RAM或者RS232接口將總線接口卡與現場設備連接。
3.4軟件設計
3.4.1 PROFIBUS-DP狀態機的實現
軟件設計依據是SPC3中集成的PROFIBUS-DP狀態機[4],狀態機用來描述PROFIBUS-DP站在每種情況下的行為;如圖2所示。
整個程序採用了結構化、模塊化的方法,依據PROFIBUS-DP狀態機提供的流程進行編寫。按照對實時性的不同要求,各個服務訪問點分別採用查詢或者中斷方式來實現。主函數主要是完成必要的初始化工作和用查詢方式實現服務訪問點。中斷函數,主要是用中斷方式實現服務訪問點。
3.4.2 PROFIBUS-DP系統主-從通訊中的實時性和時間確定性
令牌是在主站之間傳遞總線控制權的一種特殊報文。當某個主站得到令牌時,它將在一個規定的時間段內獲得總線控制權,在這段時間內該主站可依照與主站或從站的關係表和所有的主站或從站發送所需要發送的幀,當該主站的控制時間結束時,它就將令牌傳遞給下一個主站[3]。
在PROFIBUS-DP主-從通訊中,如果在從站中有新的診斷信息,則在數據交換模式下,DP從站將以高優先級的報文對主站響應,以此來通知主站;在其他情況下,從站都是以低優先級的報文回答主站的。可見,從站用診斷報文的方式發送數據相比其他情況,實時性要更好。

如果主站的令牌持有時間為零或負(即主站沒有時間處理從站的信息),則DP從站在主-從通訊中仍然可以用診斷報文的方式發送一個高優先級信息;這樣,在任何情況下都可以保證來自DP從站的數據至少可以以一個診斷報文的方式得以發送。這種機制保證了PROFIBUS-DP主-從通訊有很好的時間確定性。
3.4.3 服務訪問點以及對應的PROFIBUS-DP服務的實現舉例
服務訪問點實現也就是對應的PROFIBUS-DP服務的實現。只要是熟練使用專用芯片並熟練掌握PROFIBUS-DP的一些必要的知識,就可以實現所有的服務訪問點。鑑於“讀從站診斷信息”這項服務對於實時性和時間確定性的重要性,下面以服務訪問點60即服務“讀從站診斷信息”的實現來舉例說明。
在使用專用芯片SPC3實現服務訪問點60的時候,以下問題需要重點考慮:
(1) 診斷緩衝區的結構 [3]
程序開發者向SPC3傳遞診斷緩衝區的數據。在診斷緩衝區中,由程序開發者在第1個字節(字節0)中的位0、位1和位2這三個位的位置分別儲存“外部診斷”位、“靜態診斷”位和“外部診斷溢出”位。診斷緩衝區的前6個字節中除了上述3個位,其它都是固定空間;當發送診斷緩衝區的數據時,SPC3按照PROFIBUS-DP標準預處理前6個字節。字節6-243是程序開發者輸入的外部診斷數據。
(2) 診斷處理流程 [3]
當兩個緩衝區被交換時,內部04H單元的“診斷標誌”被置位,這時稱“診斷標誌”被激活。對於一個激活的“診斷標誌”,SPC3在下一個“讀寫數據報文”期間,用高優先級響應數據來響應,通知相關的主站現在從站有新的診斷數據。在主站用 “讀從站診斷信息”報文取得新的診斷數據以後,“診斷標誌” 被復位。接著程序可以查詢狀態寄存器中的“診斷標誌”,以便發現在原有的診斷數據被交換為新的診斷數據以前,主站是否已經取得原有的診斷數據。
(3) 本文中針對現場智能設備通信軟件中相應的程序設計

將“外部診斷”位設置為“0”,從系統的觀點看,就可以將數據理解為狀態信息。當現場智能設備中的測量參數達到某值時,將此值作為一個狀態信息送往診斷緩衝區中的字節6-243,當上升一個百分比時,再送出狀態信息,供系統遠程監控。所以,現場智能設備通信軟件設計為測量參數的狀態信息可遠程監控。相應的外部診斷處理程序程序框圖見圖3。
即使主站沒有時間處理從站的信息,程序仍然可以在重要的參數超過某個值時,用診斷報文的方式發送一個高優先級信息給主站。
3.5 GSD文件編制以及與軟件開發的關係
GSD文件的精確定義保證所有標準從站和所有標準主站通信[5]。 GSD文件由設備的開發者準備,並以電子數據單形式向最終用戶提供。
在GSD文件的編制過程中的重點和難點在於:除了精確地理解了GSD文件的規格說明,最重要的是將GSD文件和PROFIBUS-DP通信軟件中的有關參數對應起來,否則程序運行將出錯,甚至PROFIBUS-DP系統不能識別通信軟件對應的從站。
通信軟件的開發和GSD文件的編制必須相互配合,有些參數必須完全一致,這樣才能保證PROFIBUS通信單元的開發成功。這些參數包括:是否支持凍結模式,是否支持同步模式,是否支持傳輸速率的自動識別,是否支持改變從站地址,在CLEAR模式是否接收數據消息,診斷數據的最大長度,參數數據的最大長度,用戶參數數據的長度,用戶參數數據。
4 總結
在深入剖析PROFIBUS-DP狀態機和PROFIBUS-DP服務流程的基礎上,開發了應用於現場智能設備的包括硬件、通信軟件和電子設備數據文件的總線接口卡。
創新點在於:在滿足PROFIBUS-DP主-從通訊有很好的時間確定性的基礎上,實現了能滿足PROFIBUS-DP主-從通訊有很好的時間確定性的服務訪問點SAP60,並且實現了SPC3其它的服務訪問點,編制了與PROFIBUS-DP通信軟件完全匹配的電子設備數據文件。
本文中開發的接口已經應用於多個現場智能設備。
參考文獻
[1]陽憲惠.現場總線技術及其應用.北京:清華大學出版社,1999
[2]柴鬱,李斌.現場總線技術的發展及應用展望.儀表技術, 2001年第2期:43-45
[3]安憲軍,黃爾烈.基於PROFIBUS-DP總線的數據通信.微計算機信息, 2008,6-1:49-51。
[4] SIMATIC-NET SPC3 and DPS2 User Description (Siemens PROFIBUS Controller according to EN 50 170 Vol 2) .西門子公司, 2000.2
[5]SIEMENS EN 50 170 Vol 2 working with PROFIBUS-DP Device Description Data Files GSD.西門子公司,December 20,98

沒有留言:

張貼留言