PROFIBUS-DP接口開發(fā)技術研究和應用
1 引言
現(xiàn)場總線被譽為自動化領域的計算機局域網,是自動化領域的研究熱點[1]。PROFIBUS-DP是應用在現(xiàn)場自動化儀表和設備領域的一種主要的現(xiàn)場總線并且已經成為國際電工委員會制定的國際標準之一(IEC61158 TYPE3)和中國國家標準(GB/T 20540-2006)?,F(xiàn)場總線技術是電子技術,通信技術,智能儀表技術和自動控制技術相互結合的產物[2]。
PROFIBUS-DP接口的開發(fā)包括硬件部分、軟件部分和電子設備數(shù)據(jù) GSD文件部分。
2 基于 PROFIBUS-DP的自動化系統(tǒng)的構建
因為是開發(fā) PROFIBUS-DP接口,所以總體結構較為簡單和實用??傮w體系結構如圖 1所示。主站和從站通過 PROFIBUS專用網線組成一個單主站 PROFIBUS系統(tǒng)。主站由計算機和SST公司的總線卡 5136-PFB-PCI組成;現(xiàn)場設備(圖中是智能控制器)和本文開發(fā)的從站總線接口卡組成 PROFIBUS-DP現(xiàn)場智能設備,作為 PROFIBUS-DP從站。圖中的智能控制器、變頻器和泵共同構成閉環(huán)系統(tǒng)。本文重點介紹總線接口卡的開發(fā)。
500)this.style.width=500;" border="0" />
3 PROFIBUS-DP接口開發(fā)重點和難點在于:實現(xiàn)狀態(tài)機和服務訪問點。
3.1開發(fā)方案分析、比較和和選擇 利用單片機的方案需要理解協(xié)議的大部分細節(jié),實現(xiàn)的 PROFIBUS-DP站的傳輸速率受單片機晶振的限制,根本無法達到最大傳輸速率12Mbit/s。
通信專用芯片集成了 PROFIBUS-DP協(xié)議和狀態(tài)機,并且給出了具體的服務訪問點;使用專用芯片開發(fā) PROFIBUS-DP總線接口卡,不再需要考慮的協(xié)議大部分細節(jié),重點是熟練使用專用芯片。
與利用單片機的實現(xiàn)方案比較,使用專用芯片可大量地節(jié)約開發(fā)時間和成本,傳輸速率可以達到12Mbit/s。因此,本文使用專用芯片 SPC3進行總線接口卡的開發(fā)。
3.2 SPC3功能介紹 [4]SPC3基本上集成了完整的 PROFIBUS-DP協(xié)議。 SPC3集成有 1.5K字節(jié)的RAM,方式寄存器,狀態(tài)寄存器,中斷控制器,看門狗定時器(保護監(jiān)控定時器)和各種緩沖區(qū);能夠自動地識別 9.6K到 12M的波特率。微順序控制器控制著 SPC3整個處理過程??偩€定時器直接控制串行總線上的總線時間。
SPC3包括如下的服務訪問點(服務):缺省SAP(讀寫數(shù)據(jù)交換),SAP55(改變站地址),SAP56(讀輸入),SAP57(讀輸出),SAP58(向 DP從站發(fā)控制命令),SAP59(讀組態(tài)數(shù)據(jù)),SAP60(讀從站診斷信息),SAP61(發(fā)送參數(shù)設置數(shù)據(jù)),SAP62(校驗組態(tài)數(shù)據(jù))。
3.3硬件設計主要是選用 RS485芯片和光耦芯片,如果從站對傳輸速率的要求可以低于 12M波特率,那么有性能指標稍低的 RS485芯片和光耦芯片。另外本文開發(fā)的總線接口卡設計為可以選擇雙口 RAM或者 RS232接口將總線接口卡與現(xiàn)場設備連接。
3.4軟件設計
3.4.1 PROFIBUS-DP狀態(tài)機的實現(xiàn)
軟件設計依據(jù)是 SPC3中集成的 PROFIBUS-DP狀態(tài)機 [4],狀態(tài)機用來描述 PROFIBUS-DP站在每種情況下的行為;如圖 2所示。
500)this.style.width=500;" border="0" />
整個程序采用了結構化、模塊化的方法,依據(jù) PROFIBUS-DP狀態(tài)機提供的流程進行編寫。按照對實時性的不同要求,各個服務訪問點分別采用查詢或者中斷方式來實現(xiàn)。主函數(shù)主要是完成必要的初始化工作和用查詢方式實現(xiàn)服務訪問點。中斷函數(shù),主要是用中斷方式實現(xiàn)服務訪問點。
3.4.2 PROFIBUS-DP系統(tǒng)主-從通訊中的實時性和時間確定性
令牌是在主站之間傳遞總線控制權的一種特殊報文。當某個主站得到令牌時,它將在一個規(guī)定的時間段內獲得總線控制權,在這段時間內該主站可依照與主站或從站的關系表和所有的主站或從站發(fā)送所需要發(fā)送的幀,當該主站的控制時間結束時,它就將令牌傳遞給下一個主站[3]。
在 PROFIBUS-DP主-從通訊中,如果在從站中有新的診斷信息,則在數(shù)據(jù)交換模式下,DP從站將以高優(yōu)先級的報文對主站響應,以此來通知主站;在其他情況下,從站都是以低優(yōu)先級的報文回答主站的??梢姡瑥恼居迷\斷報文的方式發(fā)送數(shù)據(jù)相比其他情況,實時性要更好。
如果主站的令牌持有時間為零或負(即主站沒有時間處理從站的信息),則 DP從站在主-從通訊中仍然可以用診斷報文的方式發(fā)送一個高優(yōu)先級信息;這樣,在任何情況下都可以保證來自 DP從站的數(shù)據(jù)至少可以以一個診斷報文的方式得以發(fā)送。這種機制保證了PROFIBUS-DP主-從通訊有很好的時間確定性。
3.4.3 服務訪問點以及對應的 PROFIBUS-DP服務的實現(xiàn)舉例
服務訪問點實現(xiàn)也就是對應的 PROFIBUS-DP服務的實現(xiàn)。只要是熟練使用專用芯片并熟練掌握 PROFIBUS-DP的一些必要的知識,就可以實現(xiàn)所有的服務訪問點。鑒于“讀從站診斷信息”這項服務對于實時性和時間確定性的重要性,下面以服務訪問點 60即服務“讀從站診斷信息”的實現(xiàn)來舉例說明。
在使用專用芯片 SPC3實現(xiàn)服務訪問點 60的時候,以下問題需要重點考慮:
(1) 診斷緩沖區(qū)的結構 [3]
程序開發(fā)者向 SPC3傳遞診斷緩沖區(qū)的數(shù)據(jù)。在診斷緩沖區(qū)中,由程序開發(fā)者在第 1個字節(jié)(字節(jié)0)中的位0、位 1和位 2這三個位的位置分別儲存 “外部診斷”位、“靜態(tài)診斷”位和“外部診斷溢出”位。診斷緩沖區(qū)的前 6個字節(jié)中除了上述 3個位,其它都是固定空間;當發(fā)送診斷緩沖區(qū)的數(shù)據(jù)時,SPC3按照 PROFIBUS-DP標準預處理前 6個字節(jié)。字節(jié)6-243是程序開發(fā)者輸入的外部診斷數(shù)據(jù)。
(2) 診斷處理流程 [3]
當兩個緩沖區(qū)被交換時,內部 04H單元的“診斷標志”被置位,這時稱“診斷標志”被激活。對于一個激活的“診斷標志”,SPC3在下一個“讀寫數(shù)據(jù)報文”期間,用高優(yōu)先級響應數(shù)據(jù)來響應,通知相關的主站現(xiàn)在從站有新的診斷數(shù)據(jù)。在主站用“讀從站診斷信息”報文取得新的診斷數(shù)據(jù)以后,“診斷標志” 被復位。接著程序可以查詢狀態(tài)寄存器中的“診斷標志”,以便發(fā)現(xiàn)在原有的診斷數(shù)據(jù)被交換為新的診斷數(shù)據(jù)以前,主站是否已經取得原有的診斷數(shù)據(jù)。
(3) 本文中針對現(xiàn)場智能設備通信軟件中相應的程序設計
將“外部診斷”位設置為“0”,從系統(tǒng)的觀點看,就可以將數(shù)據(jù)理解為狀態(tài)信息。當現(xiàn)場智能設備中的測量參數(shù)達到某值時,將此值作為一個狀態(tài)信息送往診斷緩沖區(qū)中的字節(jié)6-243,當上升一個百分比時,再送出狀態(tài)信息,供系統(tǒng)遠程監(jiān)控。所以,現(xiàn)場智能設備通信軟件設計為測量參數(shù)的狀態(tài)信息可遠程監(jiān)控。相應的外部診斷處理程序程序框圖見圖3。500)this.style.width=500;" border="0" />
即使主站沒有時間處理從站的信息,程序仍然可以在重要的參數(shù)超過某個值時,用診斷報文的方式發(fā)送一個高優(yōu)先級信息給主站。
3.5 GSD文件編制以及與軟件開發(fā)的關系
GSD文件的精確定義保證所有標準從站和所有標準主站通信 [5]。GSD文件由設備的開發(fā)者準備,并以電子數(shù)據(jù)單形式向最終用戶提供。
在 GSD文件的編制過程中的重點和難點在于:除了精確地理解了 GSD文件的規(guī)格說明,最重要的是將 GSD文件和 PROFIBUS-DP通信軟件中的有關參數(shù)對應起來,否則程序運行將出錯,甚至 PROFIBUS-DP系統(tǒng)不能識別通信軟件對應的從站。
通信軟件的開發(fā)和 GSD文件的編制必須相互配合,有些參數(shù)必須完全一致,這樣才能保證 PROFIBUS通信單元的開發(fā)成功。這些參數(shù)包括:是否支持凍結模式,是否支持同步模式,是否支持傳輸速率的自動識別,是否支持改變從站地址,在 CLEAR模式是否接收數(shù)據(jù)消息,診斷數(shù)據(jù)的最大長度,參數(shù)數(shù)據(jù)的最大長度,用戶參數(shù)數(shù)據(jù)的長度,用戶參數(shù)數(shù)據(jù)。
4 總結
在深入剖析 PROFIBUS-DP狀態(tài)機和 PROFIBUS-DP服務流程的基礎上,開發(fā)了應用于現(xiàn)場智能設備的包括硬件、通信軟件和電子設備數(shù)據(jù)文件的總線接口卡。
創(chuàng)新點在于:在滿足 PROFIBUS-DP主-從通訊有很好的時間確定性的基礎上,實現(xiàn)了能滿足 PROFIBUS-DP主-從通訊有很好的時間確定性的服務訪問點SAP60,并且實現(xiàn)了 SPC3其它的服務訪問點,編制了與 PROFIBUS-DP通信軟件完全匹配的電子設備數(shù)據(jù)文件。
本文中開發(fā)的接口已經應用于多個現(xiàn)場智能設備。
參考文獻
[1]陽憲惠.現(xiàn)場總線技術及其應用.北京:清華大學出版社,1999
[2]柴郁,李斌.現(xiàn)場總線技術的發(fā)展及應用展望.儀表技術, 2001年第 2期:43-45
[3]安憲軍,黃爾烈.基于PROFIBUS-DP總線的數(shù)據(jù)通信.微計算機信息, 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