《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 通信与网络 > 设计应用 > PROFIBUS-DP接口开发技术研究和应用
PROFIBUS-DP接口开发技术研究和应用
维库开发网
摘要: 现场总线被誉为自动化领域的计算机局域网,是自动化领域的研究热点[1]。PROFIBUS-DP是应用在现场自动化仪表和设备领域的一种主要的现场总线并且已经成为国际电工委员会制定的国际标准之一(IEC61158 TYPE3)和中国国家标准(GB/T 20540-2006)。现场总线技术是电子技术,通信技术,智能仪表技术和自动控制技术相互结合的产物[2]。...
關(guān)鍵詞: PROFIBUS-DP接口 现场总线
Abstract:
Key words :

      1 引言

      現(xiàn)場總線" title="現(xiàn)場總線">現(xiàn)場總線被譽為自動化領(lǐng)域的計算機局域網(wǎng),是自動化領(lǐng)域的研究熱點[1]。PROFIBUS-DP是應(yīng)用在現(xiàn)場自動化儀表和設(shè)備領(lǐng)域的一種主要的現(xiàn)場總線并且已經(jīng)成為國際電工委員會制定的國際標(biāo)準(zhǔn)之一(IEC61158 TYPE3)和中國國家標(biāo)準(zhǔn)(GB/T 20540-2006)。現(xiàn)場總線技術(shù)是電子技術(shù),通信技術(shù),智能儀表技術(shù)和自動控制技術(shù)相互結(jié)合的產(chǎn)物[2]。

      PROFIBUS-DP接口" title="PROFIBUS-DP接口">PROFIBUS-DP接口的開發(fā)包括硬件部分、軟件部分和電子設(shè)備數(shù)據(jù) GSD文件部分。

      2 基于 PROFIBUS-DP的自動化系統(tǒng)的構(gòu)建

      因為是開發(fā) PROFIBUS-DP接口,所以總體結(jié)構(gòu)較為簡單和實用??傮w體系結(jié)構(gòu)如圖 1所示。主站和從站通過 PROFIBUS專用網(wǎng)線組成一個單主站 PROFIBUS系統(tǒng)。主站由計算機和SST公司的總線卡 5136-PFB-PCI組成;現(xiàn)場設(shè)備(圖中是智能控制器)和本文開發(fā)的從站總線接口卡組成 PROFIBUS-DP現(xiàn)場智能設(shè)備,作為 PROFIBUS-DP從站。圖中的智能控制器、變頻器和泵共同構(gòu)成閉環(huán)系統(tǒng)。本文重點介紹總線接口卡的開發(fā)。

      3 PROFIBUS-DP接口開發(fā)重點和難點在于:實現(xiàn)狀態(tài)機和服務(wù)訪問點。

      3.1開發(fā)方案分析、比較和和選擇 利用單片機的方案需要理解協(xié)議的大部分細(xì)節(jié),實現(xiàn)的 PROFIBUS-DP站的傳輸速率受單片機晶振的限制,根本無法達(dá)到最大傳輸速率12Mbit/s。

      通信專用芯片集成了 PROFIBUS-DP協(xié)議和狀態(tài)機,并且給出了具體的服務(wù)訪問點;使用專用芯片開發(fā) PROFIBUS-DP總線接口卡,不再需要考慮的協(xié)議大部分細(xì)節(jié),重點是熟練使用專用芯片。

      與利用單片機的實現(xiàn)方案比較,使用專用芯片可大量地節(jié)約開發(fā)時間和成本,傳輸速率可以達(dá)到12Mbit/s。因此,本文使用專用芯片 SPC3進(jìn)行總線接口卡的開發(fā)。

      3.2 SPC3功能介紹 [4]SPC3基本上集成了完整的 PROFIBUS-DP協(xié)議。 SPC3集成有 1.5K字節(jié)的RAM,方式寄存器,狀態(tài)寄存器,中斷控制器,看門狗定時器(保護(hù)監(jiān)控定時器)和各種緩沖區(qū);能夠自動地識別 9.6K到 12M的波特率。微順序控制器控制著 SPC3整個處理過程??偩€定時器直接控制串行總線上的總線時間。

      SPC3包括如下的服務(wù)訪問點(服務(wù)):缺省SAP(讀寫數(shù)據(jù)交換),SAP55(改變站地址),SAP56(讀輸入),SAP57(讀輸出),SAP58(向 DP從站發(fā)控制命令),SAP59(讀組態(tài)數(shù)據(jù)),SAP60(讀從站診斷信息),SAP61(發(fā)送參數(shù)設(shè)置數(shù)據(jù)),SAP62(校驗組態(tài)數(shù)據(jù))。

      3.3硬件設(shè)計主要是選用 RS485芯片和光耦芯片,如果從站對傳輸速率的要求可以低于 12M波特率,那么有性能指標(biāo)稍低的 RS485芯片和光耦芯片。另外本文開發(fā)的總線接口卡設(shè)計為可以選擇雙口 RAM或者 RS232接口將總線接口卡與現(xiàn)場設(shè)備連接。

      3.4軟件設(shè)計

      3.4.1 PROFIBUS-DP狀態(tài)機的實現(xiàn)

      軟件設(shè)計依據(jù)是 SPC3中集成的 PROFIBUS-DP狀態(tài)機 [4],狀態(tài)機用來描述 PROFIBUS-DP站在每種情況下的行為;如圖 2所示。

      整個程序采用了結(jié)構(gòu)化、模塊化的方法,依據(jù) PROFIBUS-DP狀態(tài)機提供的流程進(jìn)行編寫。按照對實時性的不同要求,各個服務(wù)訪問點分別采用查詢或者中斷方式來實現(xiàn)。主函數(shù)主要是完成必要的初始化工作和用查詢方式實現(xiàn)服務(wù)訪問點。中斷函數(shù),主要是用中斷方式實現(xiàn)服務(wù)訪問點。

  3.4.2 PROFIBUS-DP系統(tǒng)主-從通訊中的實時性和時間確定性

  令牌是在主站之間傳遞總線控制權(quán)的一種特殊報文。當(dāng)某個主站得到令牌時,它將在一個規(guī)定的時間段內(nèi)獲得總線控制權(quán),在這段時間內(nèi)該主站可依照與主站或從站的關(guān)系表和所有的主站或從站發(fā)送所需要發(fā)送的幀,當(dāng)該主站的控制時間結(jié)束時,它就將令牌傳遞給下一個主站[3]。

  在 PROFIBUS-DP主-從通訊中,如果在從站中有新的診斷信息,則在數(shù)據(jù)交換模式下,DP從站將以高優(yōu)先級的報文對主站響應(yīng),以此來通知主站;在其他情況下,從站都是以低優(yōu)先級的報文回答主站的??梢?,從站用診斷報文的方式發(fā)送數(shù)據(jù)相比其他情況,實時性要更好。

  如果主站的令牌持有時間為零或負(fù)(即主站沒有時間處理從站的信息),則 DP從站在主-從通訊中仍然可以用診斷報文的方式發(fā)送一個高優(yōu)先級信息;這樣,在任何情況下都可以保證來自 DP從站的數(shù)據(jù)至少可以以一個診斷報文的方式得以發(fā)送。這種機制保證了PROFIBUS-DP主-從通訊有很好的時間確定性。

  3.4.3 服務(wù)訪問點以及對應(yīng)的 PROFIBUS-DP服務(wù)的實現(xiàn)舉例

  服務(wù)訪問點實現(xiàn)也就是對應(yīng)的 PROFIBUS-DP服務(wù)的實現(xiàn)。只要是熟練使用專用芯片并熟練掌握 PROFIBUS-DP的一些必要的知識,就可以實現(xiàn)所有的服務(wù)訪問點。鑒于“讀從站診斷信息”這項服務(wù)對于實時性和時間確定性的重要性,下面以服務(wù)訪問點 60即服務(wù)“讀從站診斷信息”的實現(xiàn)來舉例說明。

  在使用專用芯片 SPC3實現(xiàn)服務(wù)訪問點 60的時候,以下問題需要重點考慮:

  (1) 診斷緩沖區(qū)的結(jié)構(gòu) [3]

  程序開發(fā)者向 SPC3傳遞診斷緩沖區(qū)的數(shù)據(jù)。在診斷緩沖區(qū)中,由程序開發(fā)者在第 1個字節(jié)(字節(jié)0)中的位0、位 1和位 2這三個位的位置分別儲存 “外部診斷”位、“靜態(tài)診斷”位和“外部診斷溢出”位。診斷緩沖區(qū)的前 6個字節(jié)中除了上述 3個位,其它都是固定空間;當(dāng)發(fā)送診斷緩沖區(qū)的數(shù)據(jù)時,SPC3按照 PROFIBUS-DP標(biāo)準(zhǔn)預(yù)處理前 6個字節(jié)。字節(jié)6-243是程序開發(fā)者輸入的外部診斷數(shù)據(jù)。

  (2) 診斷處理流程 [3]

  當(dāng)兩個緩沖區(qū)被交換時,內(nèi)部 04H單元的“診斷標(biāo)志”被置位,這時稱“診斷標(biāo)志”被激活。對于一個激活的“診斷標(biāo)志”,SPC3在下一個“讀寫數(shù)據(jù)報文”期間,用高優(yōu)先級響應(yīng)數(shù)據(jù)來響應(yīng),通知相關(guān)的主站現(xiàn)在從站有新的診斷數(shù)據(jù)。在主站用“讀從站診斷信息”報文取得新的診斷數(shù)據(jù)以后,“診斷標(biāo)志” 被復(fù)位。接著程序可以查詢狀態(tài)寄存器中的“診斷標(biāo)志”,以便發(fā)現(xiàn)在原有的診斷數(shù)據(jù)被交換為新的診斷數(shù)據(jù)以前,主站是否已經(jīng)取得原有的診斷數(shù)據(jù)。

  (3) 本文中針對現(xiàn)場智能設(shè)備通信軟件中相應(yīng)的程序設(shè)計

  將“外部診斷”位設(shè)置為“0”,從系統(tǒng)的觀點看,就可以將數(shù)據(jù)理解為狀態(tài)信息。當(dāng)現(xiàn)場智能設(shè)備中的測量參數(shù)達(dá)到某值時,將此值作為一個狀態(tài)信息送往診斷緩沖區(qū)中的字節(jié)6-243,當(dāng)上升一個百分比時,再送出狀態(tài)信息,供系統(tǒng)遠(yuǎn)程監(jiān)控。所以,現(xiàn)場智能設(shè)備通信軟件設(shè)計為測量參數(shù)的狀態(tài)信息可遠(yuǎn)程監(jiān)控。相應(yīng)的外部診斷處理程序程序框圖見圖3。

   即使主站沒有時間處理從站的信息,程序仍然可以在重要的參數(shù)超過某個值時,用診斷報文的方式發(fā)送一個高優(yōu)先級信息給主站。

  3.5 GSD文件編制以及與軟件開發(fā)的關(guān)系

  GSD文件的精確定義保證所有標(biāo)準(zhǔn)從站和所有標(biāo)準(zhǔn)主站通信 [5]。GSD文件由設(shè)備的開發(fā)者準(zhǔn)備,并以電子數(shù)據(jù)單形式向最終用戶提供。

  在 GSD文件的編制過程中的重點和難點在于:除了精確地理解了 GSD文件的規(guī)格說明,最重要的是將 GSD文件和 PROFIBUS-DP通信軟件中的有關(guān)參數(shù)對應(yīng)起來,否則程序運行將出錯,甚至 PROFIBUS-DP系統(tǒng)不能識別通信軟件對應(yīng)的從站。

  通信軟件的開發(fā)和 GSD文件的編制必須相互配合,有些參數(shù)必須完全一致,這樣才能保證 PROFIBUS通信單元的開發(fā)成功。這些參數(shù)包括:是否支持凍結(jié)模式,是否支持同步模式,是否支持傳輸速率的自動識別,是否支持改變從站地址,在 CLEAR模式是否接收數(shù)據(jù)消息,診斷數(shù)據(jù)的最大長度,參數(shù)數(shù)據(jù)的最大長度,用戶參數(shù)數(shù)據(jù)的長度,用戶參數(shù)數(shù)據(jù)。

  4 總結(jié)

  在深入剖析 PROFIBUS-DP狀態(tài)機和 PROFIBUS-DP服務(wù)流程的基礎(chǔ)上,開發(fā)了應(yīng)用于現(xiàn)場智能設(shè)備的包括硬件、通信軟件和電子設(shè)備數(shù)據(jù)文件的總線接口卡。

  創(chuàng)新點在于:在滿足 PROFIBUS-DP主-從通訊有很好的時間確定性的基礎(chǔ)上,實現(xiàn)了能滿足 PROFIBUS-DP主-從通訊有很好的時間確定性的服務(wù)訪問點SAP60,并且實現(xiàn)了 SPC3其它的服務(wù)訪問點,編制了與 PROFIBUS-DP通信軟件完全匹配的電子設(shè)備數(shù)據(jù)文件。本文中開發(fā)的接口已經(jīng)應(yīng)用于多個現(xiàn)場智能設(shè)備。

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。