摘 要:以開放式系統互聯模型ISO/OSI為參考。彈細描述了PROFIBUS通信協議的結構,包括物理層的數據傳輸技術、數據鏈路甚的報文通信格式以及用戶接口的各種應用規范。研究了PROFIBUS的三種協議規范PROFIBUS-DP、PROFIBUS-PA和PROFIBUS-FMS的的總線配置、主從站工作機制以及開發相關接口的方法,并就就從站的軟件流程進行了說明。分析和研究PROFIBUS現場總線協議具有重要的現實意義。
關鍵詞:現場總線 PROFIBUS協議 SPC3 SPC4
Abstract:According to ISO/OSI normative model,the structure of the communication protocol of PROFIBUS is described first, including the data transfer technology of physical layer,the message format of data link layer and various application criterions of user interface. The distribution of fieldbus.Work mechanism of PROFIBUS-DP,PROFIBUS-PA and PROFIBUS-FM S is studied,as well as the methods to develop the corresponding interface.In addition,the workflow of the software is also introduced.Have a research on PROFIBUS protocol will be of great significance.
Key words:Fieldbus PROFIBUS-DP protocol SPC3 SPC4
1引言
PROFIBUS是一種開放的現場總線標準,符合歐洲標準EN50l70。PR0FIBUS包括三個兼容部分,即PROFIBUS-DP、PR0FIBUS-PA和PR0FIBUS-FMS。PROFIBUS-DP(DecentralizedPeriphery)是一種經過優化的高速和廉價的通信連接,用于設備級控制系統與分散式I/O的通信;PROFIBUS-PA(ProcesAutomation)適用于工業生產的過程自動化;PROFIBUS-FMS(FieldMessageSpecification)用于面向對象的場合、在工業自動化系統中單元層與現場層的通用目的的數據通信。由于PROFIBUS現場總線開放性能好,具有很強的互可操作性和替換性,只要是支持PROFIBUS協議的現場總線設備,均可方便地集成在PROFIBUS網絡中。這些特點使它在短短幾年內在化工、冶金、機械加工以及其它自動控制領域得到了迅速普及和應用。研究其通信協議,有利于我們更好地掌握PROFIBUS現場總線技術和開發現場總線產品。
2 PROFIBUS協議結構
PROFIBUS協議是根據ISO7498國際標準,以開放式系統互聯網絡ISO/OSI作為參考模型的。其協議結構如圖1所示。
為了提高數據傳輸效率,PROFIBUS-DP和PA僅定義了第1、2層和用戶接口,第3~7層未加描述PR0FIBUS-FMS僅定義了第1、2、7層和用戶接口。第3~6層未加描述。這種流體型結構確保了數據傳輸的快速和有效進行,直接數據鏈路映像(DDLM)使用戶接口易于進入第二層。
2.1物理層(Layer1)
PROFIBUS在物理層規定了數據傳輸介質和數據傳輸格式。PROFIBUS-DP與FMS采用屏蔽雙絞電纜,1實現對稱的數據傳輸,符合EIARS-485標準。一個總線段內的電纜兩端各有一個終端器,傳輸速率從9.6kbit/S~12Mbit/S可選,設定的波特率適用于總線段上的所有設備。RS-485總線段的兩端必須裝配總線終端器。總線終端器內含有一個上拉電阻和一個下拉電阻,分別與供電正電壓VP和數據基準電位DGND相連。這樣當總線處于空閑狀態時仍能保證有一個確定的空閑電位。RS一485數據傳輸是以半雙工、異步、無間隙同步為基礎的,數據的發送用不歸零(NRz)編碼,每個幀字符為11位。在數據傳輸期間,RXD/TXD-P線(B導線)上的正電位對應于二進制“1”,RXD/TxD-N線(A導線)上的正電位對應于二進制“0”。幀字符格式與NRZ編碼信號示意如圖2:
PROFIBUS-PA采用符合IEC1158-2的數據傳輸技術,該技術確保了現場設備的本征安全性和通過總線供電,數據傳輸速率為31.25kbit/s。傳輸介質采用屏蔽或非屏蔽雙絞線,總線段的兩端各用一個無源的RC線終端器來終止。在一個PA段上最多可連接32個站,最大的總線段長度在很大程度上取決于供電裝置、導線類型和所連接的站的電流消耗。數據傳輸使用非直流傳輸的位同步、曼切斯特編碼線協議(H1)。用曼切斯特傳輸數據時,每個幀字符為11位,信號從0變到1時發送二進制“0”信號從1變到0時發送二進制“1”。數據的發送采用對總線系統的基本電流IB調節±9mA的方法來實現。幀字符格式與電流調節法編碼示意如圖3:
2.2教據鏈路層(Layer2)
PROFIBUS的數據鏈路層負責在相鄰的兩個節點間數據的無差錯傳輸。PROFIBUS在該層中應用了數據文的傳輸方式,在數據幀的頭尾分別加上標識不同應用功能的報頭和報尾以組成不同類型的報文。在PROFIBU總線段上,主站是主動節點,通過請求報文發送控制命令;從站是被動節點,響應主站的請求并發送響應報文。規定的幾種重要的數據報文格式如下:

報文中CRC用于約束待傳輸的報文,CRC通過計算并附加一個16位的校驗字段來實現。數據鏈路層的報文格式提供高等級的傳輸安全性,所有報文均具有海明距離HD=4。基于規定的HD=4描述安全可靠的數據傳輸字符問無間隙,不符合規定格式的數據報文必須被再次發送。應用HD=4可以檢查以下錯誤:字符格式錯誤(奇偶校驗、幀錯誤、超限)、協議錯誤、錯誤的起始/終止定界符、錯誤的幀校驗字節和錯誤的報文長度。為了能與從站順利進行數據交換,在啟動時PROFIBUS主站應遵守以下報文順序:
1、請求診斷
2、改變站地址(可選用的服務,儀對2類主站)
3、參數化從站
4、組態從站
5、在數據交換前請求診斷以保證系統在啟動狀態
6、數據交換
7、全局控制
在目的地址(DA)和源地址(SA)中如最高位MSB=l,則報文頭中緊跟的是DSAP和SSAP;如這一位為0,則對應于缺省值SAP,用于數據通信,報文頭中沒有DSAP和SSAP。
上層用戶接口通過數據鏈路層的服務存取點(SAP)調用PROFIBUS的數據傳輸服務。PROFIBUS使用的服務包括SRD(發送和請求數據需應答)和SDN(發送數據不需應答)服務。每個SAP部賦有一個定義明確的功能。PROFIBUS-DP有以下SAP:
DefaultSAP(缺省值SAP):數據交換(Write_Read.Data)
SAP54:主一主SAP(M-MCommunication)
SAP55:改變站地址(Set.SlaveAdd)
SAP56:讀輸入(Rd.Inp)
SAP57:讀輸出(Rd.Outp)
SAP58:到DP從站的控制命令(Global-Contro1)
SAP59:讀組態(Get.Cfg)
SAP60:讀診斷信息(Slare.Diagnosts)
SAP6l:傳送參數(Set-Prm)
SAP62:校核組態(Chk_Cfg)
在PROFIBUS的各協議規范中,只有FMS協議定義了應用層。PROFIBUS-FMS在應用層提供的服務是ISO9506制造信息規范MMS(ManufacturingMessageService服務項目的子集,這些服務項目在現場總線應用巾已被優化,而且還增加了通信對象管理和網絡管理功能。FMS服務的執行用服務序列來描述,這些服務序列包括稱為服務原語的一些內部服務操作。服務原語捕述請求者和應答者之間的內部操作。
PROFlBUS-FMS提供大量的應用服務以滿足不同設備對通信所提出的廣泛要求,如確認服務和非確認服務。其中確認服務只用于面向連接的通信關系中,服務請求者利用“請求服務原語”請求,此原語在總線上傳送后,給各接收站的應用過程發送指示服務原語,而后備接收站利用應答服務原語響應;非確認服務則不存在應答服務原語。由應用層到數據鏈路層服務的映射由LLI(L0WerLayerInterface)來解決,其任務包括數據流控制和連接監視。LLI提供了各種類型的通信關系,通信關系具有不同的連接能力,示意如圖5:

PROFIBUS用戶接口規定了PROFIBUS設備可使用的應用功能以及各種類型的系統和設備的行為特性。PROFIBUS-DP有兩種類型的主站,一類主站處理與指定的從站間的用戶數據交換,二類主站用于調試目的,一個二類主站可簡單地控制一個從站。根據總線擴展,是否為l2M波特率和ASIC芯片的工作方式,數據轉換和更新的速度往往比用戶訪問這些數據的速度快,類似于PLC的過程映像,用戶存取時肯定獲得最新的數據。PROFIBUS-DP主站與DP從站間的一個報文循環由DP主站發出請求幀(輪詢報文)和由DP從站返回的有關應答或響應幀組成。DP從站被DP主站按輪詢表依次訪問,DP主站和DP從站問的用戶數據連續地交換,并不考慮用戶數據的內容。在通電(Power-on)狀態,DP從站只能接收設站地址報文(Set-Slave-Add)以改變站地址;內部啟動后,DP從站期望一參數化報文(Set-Prm)并排斥其它類型的報文;從站參數化正確完成后,DP從站進入等待組態狀態,接收組態報文(Get-Cfg)并與從站的實際組態比較;組態報文正確接收并且與檢驗從站的組態結果相符后,DP從站才能最終進入數據交換狀態,通過數據通信報文(Data_Exchange)與DP主站交換數據。
PROFIBUS-PA的數據傳輸使用了PROFIBUS-DP的基本功能DPV0和擴展功能DPVl,DPVl奠定了PROFIBUS-PA的基礎。DPV0用于在循環連接(MSCY1)的基礎上應用Data-Exchange服務的條件下,實現一個主站和一系列從站間集中的數據交換。DPVl與DPV0相比,在以下兩個方面進行了擴展:
(1)對MCSYl的連接補充了非循環服務(MSAC-Cl通道);
(2)產生了對2類主站(監控站)的新連接(MSAC-C2一連接)。非數據循環連接將已有的MSCY-Cl連接進行擴充,利用新的服務DDLM-Read和DDLM-Write實現對所有從站數據的讀寫,并將其映像到第二層的SRD服務上(利用SAP50和SAP51),示意如圖6:

此外,PROFIBUS-PA還對所有通用的測量變送器和一些常用的現場設備定義了設備行規,涵蓋的范圍包括:測量變送器(壓力、液位、溫度和流量)、數字量輸入/輸出、模擬量輸入/輸出、閥門、定位器等,此外還定義了符合國際標準化的功能塊模型。
PROFIBUS-FMS的用戶接口也即FMS行規(Profile),行規提供了設備的互換性以保證不同廠商所生產的設備具有相同的通信功能。目前PROFIBUS-FMS已經定義了以下行規
(1)控制器間的通信
此通信行規定義了用于可編程控制器PLC之間的FMS服務,根據控制器的類型,對每臺控制器所支持的服務、參數和數據類型作了具體的規定;
(2)樓宇自動化行規
此行規提供了一個特定的分支和服務,作為樓宇自動化中的公共基礎。該行規對樓宇自動化系統中使用FMS進行監視、閉環和開環控制、操作控制、報警處理及系統檔案管理作了描述;
(3)低壓開關設備
此行規是面向行業的FMS應用行規,具體說明了通過FMS在通信過程中低壓開關設備的應用行為。由于PROFIBUS-FMS和PROFIBUS-DP均使用統一的傳輸技術和總線存取協議,因此FMS設備和DP設備能夠在同一總線段上進行混合操作,兩個協議也可以同時在一臺設備上執行,這使得組建PROFIBUS網絡更加容易。
3 PROFIBUS通信接口的實現
PROFIBUS協議的開放性保證了其在任何微處理器上都可以實現,但使用微處理器的串行通信接1:3實現總線數據傳輸時通信速率將受到很大的限制。使用協議芯片不僅能夠加速協議的執行,而且能夠提高總線模塊的穩定性、減少用戶自主開發時間,因此采用協議芯片開發PROFIBUS接口是明智的選擇。
3.1PROFIBUS-DP接口的實現
西門子公司提供SPC3協議芯片為優化的PROFIBUS-DP智能從站使用。SPC3芯片用戶開發包中以源碼方式提供了固態程序,該固態程序可實現在SPC3內部寄存器與應用接口之間的連接。固態程序的運行基于現場設備中的微處理器,為應用提供了簡單集成化的接口。使用SPC3并不一定要使用固態程序,但由于SPC3中的寄存器是完全格式化的,使用固態程序可使用戶節省自主開發的時間。
設計PROFIBUS-DP從站程序主要用于DP協議的執行和通過I/O宏接口實現DP主、從站間的數據交換,此外還用于從站診斷和系統的抗干擾設計。DP從站的程序流程如下圖:

在SPC3正常工作之前,需要進行初始化,以配置需要的寄存器,包括設置協議芯片的中斷允許,寫入從站識別號和地址,設置SPC3方式寄存器,設置診斷緩沖區,參數緩沖區,配置緩沖區,地址緩沖區,初始長度,并根據以上初始值得出各個緩沖區的指針和輔助緩沖區的指針。根據傳輸的數據長度,確定輸出緩沖區,輸入緩沖區及指針。SPC3初始化完成后,主站與從站才能進行數據交換。主站首先發送請求診斷報文,檢查從站的運行準備情況。當取得需要的請求反應后,檢查是否有其他主站占用此從站。如果沒有,則進行參數設置和配置檢查,然后再進行診斷報文請求。當參數化或配置錯誤或有其它主站占用時,主站將返回初始態,重新檢查從站的準備情況。當發生靜態用戶診斷或從站沒有準備好,主站將不斷進行報文請求,直到沒有此種診斷信息為止。無錯誤信息時則進行數據的交換。
3.2PROFIBUS-PA接口的實現
西門子公司提供協議芯片SPC4和SIMlModem芯片為PROFIBUS-PA接口使用。在SPC4芯片內集成有完整的PA/DP協議,片內含1.5kbyte的信息報文存儲器,采用44管腳的PQFP封裝,最大數據傳輸速率31.25kbit/s,SPC4還提供了連接SIMl的同步接口;SIMl芯片支持所有發送與接收功能,吸收總線上附加電源電流并具有高阻特性,向整個設備及設備的其它部件供電,數據傳輸符合IECll58-2的曼切斯特編碼技術。協議芯片SPC4通過請求發送信號(RTS)、發送數據信號(TXD)、接收數據信號(RXD)與電流隔離接口驅動器連接。發送器將并行數據結構轉換為串行數據流;接收器將串行數據流轉換成并行數據結構,它在完整地讀出一個字符后產生一個RB-FULL信號,并判斷有無報文錯誤。利用SPC4和SIMl芯片實現的PROFIBUS-PA接口電路結構如下:
PROFIBUS-PA接口的軟件流程與DP從站類似,不再贅述。
3.3PROFIBUS-FMS接口的實現
PROFIBUS-FMS接口的實現方法與DP從站類似,不同的是需要采用協議芯片SPC4。FMS接口實現以后,相關設備可以提供以下服務,如圖9所示。
4結束語
PROFIBUS作為一種流行的過程控制現場總線正以其無可比擬的優勢迅速發展,市場份額迅速擴大。研究PROFIBUS通信協議、掌握PROFIBUS通信技術,對于開發PROFIBUS總線相關產品、推動我國自動化技術的發展有重要的現實意義。
參考文獻
[1]PROFIBUS Technical Guideline,PROFIBUS-DP Extensions to EN50 l 70(DPV 1)Version 2.0,April l998.
[2]PROFIBUS Protocol manua1.Hilscher.
[3] 陽憲惠等.現場總線技術及其應用.北京:清華大學出版社,1999.
[4] 現場總線 PROFIBUS標準(中文版).現場總線(PROFIBUS)專業委員會(CPO).