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