1 引言 現場總線被譽為自動化領域的計算機局域網,是自動化領域的研究熱點。PROFIBUS-DP是應用在現場自動化儀表和設備領域的一種主要的現場總線并且已經成為國際電工委員會制定的國際標準之一(IEC61158 TYPE3)和中國國家標準(GB/T 20540-2006)。現場總線技術是電子技術,通信技術,智能儀表技術和自動控制技術相互結合的產物。 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功能介紹 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狀態機 ,狀態機用來描述 PROFIBUS-DP站在每種情況下的行為;如圖 2所示。 整個程序采用了結構化、模塊化的方法,依據 PROFIBUS-DP狀態機提供的流程進行編寫。按照對實時性的不同要求,各個服務訪問點分別采用查詢或者中斷方式來實現。主函數主要是完成必要的初始化工作和用查詢方式實現服務訪問點。中斷函數,主要是用中斷方式實現服務訪問點。 3.4.2 PROFIBUS-DP系統主-從通訊中的實時性和時間確定性 令牌是在主站之間傳遞總線控制權的一種特殊報文。當某個主站得到令牌時,它將在一個規定的時間段內獲得總線控制權,在這段時間內該主站可依照與主站或從站的關系表和所有的主站或從站發送所需要發送的幀,當該主站的控制時間結束時,它就將令牌傳遞給下一個主站。 在 PROFIBUS-DP主-從通訊中,如果在從站中有新的診斷信息,則在數據交換模式下,DP從站將以高優先級的報文對主站響應,以此來通知主站;在其他情況下,從站都是以低優先級的報文回答主站的。可見,從站用診斷報文的方式發送數據相比其他情況,實時性要更好。 如果主站的令牌持有時間為零或負(即主站沒有時間處理從站的信息),則 DP從站在主-從通訊中仍然可以用診斷報文的方式發送一個高優先級信息;這樣,在任何情況下都可以保證來自 DP從站的數據至少可以以一個診斷報文的方式得以發送。這種機制保證了PROFIBUS-DP主-從通訊有很好的時間確定性。 3.4.3 服務訪問點以及對應的 PROFIBUS-DP服務的實現舉例 服務訪問點實現也就是對應的 PROFIBUS-DP服務的實現。只要是熟練使用專用芯片并熟練掌握 PROFIBUS-DP的一些必要的知識,就可以實現所有的服務訪問點。鑒于“讀從站診斷信息”這項服務對于實時性和時間確定性的重要性,下面以服務訪問點 60即服務“讀從站診斷信息”的實現來舉例說明。 在使用專用芯片 SPC3實現服務訪問點 60的時候,以下問題需要重點考慮: (1) 診斷緩沖區的結構 程序開發者向 SPC3傳遞診斷緩沖區的數據。在診斷緩沖區中,由程序開發者在第 1個字節(字節0)中的位0、位 1和位 2這三個位的位置分別儲存 “外部診斷”位、“靜態診斷”位和“外部診斷溢出”位。診斷緩沖區的前 6個字節中除了上述 3個位,其它都是固定空間;當發送診斷緩沖區的數據時,SPC3按照 PROFIBUS-DP標準預處理前 6個字節。字節6-243是程序開發者輸入的外部診斷數據。 (2) 診斷處理流程 當兩個緩沖區被交換時,內部 04H單元的“診斷標志”被置位,這時稱“診斷標志”被激活。對于一個激活的“診斷標志”,SPC3在下一個“讀寫數據報文”期間,用高優先級響應數據來響應,通知相關的主站現在從站有新的診斷數據。在主站用“讀從站診斷信息”報文取得新的診斷數據以后,“診斷標志” 被復位。接著程序可以查詢狀態寄存器中的“診斷標志”,以便發現在原有的診斷數據被交換為新的診斷數據以前,主站是否已經取得原有的診斷數據。 (3) 本文中針對現場智能設備通信軟件中相應的程序設計 將“外部診斷”位設置為“0”,從系統的觀點看,就可以將數據理解為狀態信息。當現場智能設備中的測量參數達到某值時,將此值作為一個狀態信息送往診斷緩沖區中的字節6-243,當上升一個百分比時,再送出狀態信息,供系統遠程監控。所以,現場智能設備通信軟件設計為測量參數的狀態信息可遠程監控。相應的外部診斷處理程序程序框圖見圖3。 即使主站沒有時間處理從站的信息,程序仍然可以在重要的參數超過某個值時,用診斷報文的方式發送一個高優先級信息給主站。 3.5 GSD文件編制以及與軟件開發的關系 GSD文件的精確定義保證所有標準從站和所有標準主站通信 。GSD文件由設備的開發者準備,并以電子數據單形式向最終用戶提供。 在 GSD文件的編制過程中的重點和難點在于:除了精確地理解了 GSD文件的規格說明,最重要的是將 GSD文件和 PROFIBUS-DP通信軟件中的有關參數對應起來,否則程序運行將出錯,甚至 PROFIBUS-DP系統不能識別通信軟件對應的從站。 通信軟件的開發和 GSD文件的編制必須相互配合,有些參數必須完全一致,這樣才能保證 PROFIBUS通信單元的開發成功。這些參數包括:是否支持凍結模式,是否支持同步模式,是否支持傳輸速率的自動識別,是否支持改變從站地址,在 CLEAR模式是否接收數據消息,診斷數據的最大長度,參數數據的最大長度,用戶參數數據的長度,用戶參數數據。 4 總結 在深入剖析 PROFIBUS-DP狀態機和 PROFIBUS-DP服務流程的基礎上,開發了應用于現場智能設備的包括硬件、通信軟件和電子設備數據文件的總線接口卡。 創新點在于:在滿足 PROFIBUS-DP主-從通訊有很好的時間確定性的基礎上,實現了能滿足 PROFIBUS-DP主-從通訊有很好的時間確定性的服務訪問點SAP60,并且實現了 SPC3其它的服務訪問點,編制了與 PROFIBUS-DP通信軟件完全匹配的電子設備數據文件。本文中開發的接口已經應用于多個現場智能設備。 |