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