郝 莉
1 引言
現場總線是當今自動化領域技術發展的熱點之一,現場總線技術自70年代誕生至今,由于它在減少系統線纜,簡化系統安裝、維護和管理,降低系統的投資和運行成本,增強系統性能等方面的優越性,導致了自動控制領域的一場革命。它是應用在生產現場,在微機化測量控制設備之間實現雙向、串行、多點數字通訊的系統,在制造業、流程工業、樓宇等方面的自動化系統中具有廣泛應用前景。現場總線有以下特點:(1)開放性。(2)可互操作性與可互換性。(3)全數字化。(4)雙向通信。(5)智能化的現場儀表。
自80年代以來,有幾種現場總線技術得到發展,逐漸形成其影響。在國際標準中,也出現了協調共存的局面,目前的IEC61158中就已存在8種總線(ControlNet, Foundation Fieldbus H1, Foundation Fieldbus HSE, Interbus, P-Net, PROFIBUS, SwiftNet及WorldFIP)。
2 PROFIBUS-DP基本特性
PROFIBUS現場總線是歐洲首屈一指的開放式現場總線技術,是成熟技術,已被全世界所接受。PROFIBUS-DP是PROFIBUS三個兼容版本之一,它是經過優化的高速、廉價的通信系統,專為自動控制系統和設備級分散I/O之間通信設計,用于分布式控制系統的高速數據傳輸。PROFIBUS協議結構以OSI/ISO作為參考模型,DP為了數據傳輸的快速和有效性,使用了第一、二層外加用戶接口。PROFIBUS-DP的主要應用區域在現場層,響應時間從幾百微秒到幾百毫秒,它具有廣闊的數據傳輸范圍(從9.6Kbps到12Mbps),傳輸的數據容量為每個報文多達244字節,它不需要改變硬件就有低速和高速的傳輸速率。
3 PROFIBUS-DP的報文結構與從站狀態機
3.1 PROFIBUS-DP的報文結構
PROFIBUS-DP采用異步不歸零碼的編碼方式,傳輸的空載電平“1”,一個空載狀態至少33Tbit(同步時間),在每個請求報文發送前必須保證此時間。在單個字符間所有數據傳送是無縫的。報文通訊的基本順序及報文結構如圖1所示。
在PROFIBUS-DP通訊中有四種報文格式,以SD標識。SD為起始定界符,用于區分不同種類的報文,SD1為請求數據報文,SD2用于可變數據長度報文,SD3用于固定長度報文,SD4用于令牌幀。DA表示
圖1 報文通訊的基本順序
目的站地址,SA表示源站地址,FC為功能控制碼,DU表示相應的數據單元,FCS為校驗碼,ED為終止定界符。在SD2報文的DU中包含服務存取點SAP。PROFIBUS-DP用服務存取點SAP標明不同的數據存取服務,它提供有以下的服務存取點:
SAP54:用于主-主通訊;
SAP55:用于以軟件方式設定從站站地址(Set_Salve_Add);
SAP56:讀輸入數據(Read_Input);
SAP57:讀輸出數據(Read_Output);
SAP58:廣播報文,全局控制(Global_Control);
SAP59:讀組態數據(Get_Cfg);
SAP60:讀診斷信息(Slave_Diag);
SAP61:傳送參數數據(Set_Prm);
SAP62:檢驗組態數據(Chk_Cfg);
缺省SAP:用于數據交換(Data_Exchange)。
4 PROFIBUS-DP從站的狀態機
PROFIBUS-DP從站的狀態機很好地說明了DP從站是如何工作的,圖2表示經過簡化了的從站狀態機,橢圓表示狀態機的狀態,垂直箭頭表示從一個狀態到另一狀態的轉換。
圖2 簡化的從站狀態機
DP主站若要和DP從站建立循環數據通訊,必須經歷以下幾個狀態:
― 請求診斷(Slave_Diag1);
― 參數化從站(Set_Prm);
― 檢查從站組態(Chk_Cfg);
― 再次請求診斷(Slave_Diag2)。
即:DP主站若想與DP從站進行循環數據通訊,主站必須檢查從站的準備情況,首先DP主站向DP從站請求診斷數據,從站處于Slave_Diag1狀態,如果從站用診斷數據響應主站且該從站沒有被其他主站占據,DP主站將對該從站設置參數,從站進入Set_Prm狀態,以短應答E5H響應主站報文,接著主站傳送組態數據,從站進入Chk_Cfg狀態,同樣以E5H響應主站報文,另一方面,從站對主站傳送的參數數據、組態數據分析、比較、判斷,注冊診斷信息的相應位;然后主站再次向從站請求診斷數據,確認參數化和組態正確與否,若正確且從站已經做好了進入數據交換的準備,則進入循環數據交換階段,若參數化和組態數據有誤,則主站重新請求診斷,從站進入Slave_Diag1狀態,若從站數據未準備好,則從站一直處于Slave_Diag2狀態接受主站查詢,直到準備就緒。這便是DP主從站間的建立通訊的過程。
進入數據交換階段后,DP主從站間主要進行I/O數據的交換,若從站有診斷信息,會利用數據交換的機會以高優先級報文的形式通知主站,主站會臨時使從站進入診斷狀態(Slave_Diag2),然后再恢復數據交換(Data_Exch)。
另外,在進入數據交換階段后,主站也可以發參數化報文,改變從站用戶參數的設置;主站也可以請求診斷數據、組態數據、輸入輸出數據。
5 PROFIBUS-DP從站的軟件實現方案
PROFIBUS-DP從站的實現可采用專用協議芯片,稱為硬件實現。文中給出的DP從站實現方案采用軟件方式,即本軟件實現方案采用51系列單片機,集成PROFIBUS-DP從站協議,外加總線接口及驅動裝置,實現DP從站,波特率可達500Kbps,滿足大多數工業應用領域,實現了PROFIBUS-DP從站智能I/O模塊的自主開發。
該軟件實現的DP從站,可自動適應網上波特率,站地址由撥碼開關設置,不支持軟件上對站地址的修改。
采用8051單片機集成DP從站協議,軟件的核心部件是從站自動機。從站是被動站,只是響應主站的請求,而不向主站請求數據。從站接收到主站的請求報文后分析報文類型,根據報文類型做相應的數據處理,在相應的自動機上行走,響應主站的請求。按照從站自動機,從站要經歷診斷、參數設置、組態檢查、再診斷幾個階段,如果上述幾步完全正確,從站進入與主站的循環數據交換,否則,重復自動機的前四步,直到初始化完全正確。
圖3 數據管理子程序流程圖
在主程序中主要完成初始化工作、對網上波特率的適應,也即查找網上波特率、采集處理輸入輸出數據,通訊狀態監測等工作。采集處理輸入輸出數據是主程序的主要工作,通訊狀態監測定期查看通訊狀態,在通訊出現故障時,要及時復位單片機。在適應網上波特率后,開串口中斷,接收總線數據。在串口中斷服務程序中主要的工作是接收總線數據、分析管理數據,維護從站自動機并將相應的數據發送到總線上。其核心部分數據管理子程序流程圖見圖3所示。
6 結語
文中詳細闡述了PROFIBUS-DP的工作方式,介紹了軟件實現DP從站所需具備的一些基礎知識,并給出了軟件主要部件的程序流程圖。由于從站的實現只需要PROFIBUS-DP協議的一小部分,因此實施起來特別經濟。采用軟件方式實現DP從站,是一種簡單有效的方法,用它代替專用協議芯片,可降低開發成本,實現自主開發。
參考文獻:
[1] 陽憲惠. 現場總線技術及應用[M]. 清華大學出版社, 1999, (6).
[2] TechnicalBrochure-v99[S]. www.profibus.com 1999-6, (17).
[3] Manfred Popp. The Rapid Way to PROFIBUS-DP[R]. Germany PROFIBUS Interface Center/Lab. 1997,(23).
[4] Profibus Specification (En50170)[S]. www.profibus.com 1998-3, (122).