PROFIBUS-DP/MODBUS的網關結構設計

2020-11-22 電子產品世界

引 言
作為我國第一個工業通信領域現場總線技術國家標準的PROFIBUS現場總線,其應用範圍已經相當廣泛,佔有很大的市場份額。在PROFIBUS家族中,PROFIBUS-DP總線的應用最為廣泛。

國內的一些廠商都在開發並相繼推出自己的現場總線系列產品。但是其FCS系列產品在快速接入主流現場總線系統中有一些阻力,所佔市場份額比較小,其提供的系統設計方案大多還是在主推DCS系統。為了能夠快速接入主流現場總線,結合國家863課題,中國四聯儀器儀表集團有限公司與本教研室共同研發PROFIBUS-DP/MODBUS網關,以期實現其FCS系列輸入/輸出從站設備快速無縫接入PROFIBUS-DP網絡,並藉此來提高其自動化設備的應用範圍。

1 系統的總體設計

MODBUS總線採用單主多從、查詢一回應的工作方式,具有結構簡單、可靠性高、受幹擾的概率低、傳輸實時性能較好等優點;但是MODBUS總線沒有路由器、網關等網絡互聯設備,網絡規模有限,大型組網能力和網絡處理能力較差。

本系統使採用MODBUS協議的現場設備無縫接入PROFIBUS-DP現場總線系統,以此來提高現場設備選擇的靈活性。這樣做不僅僅擴展了MODBUS網絡和PROFIBUS-DP網絡的互聯性,還大大降低了系統升級和更新換代所需要的費用。

系統總體結構如圖1所示。其關鍵部分是智能網關,它實現了協議之間的相互轉換,無縫連結PROFIBUS-DP現場總線系統與MODBUS總線系統,使同一系統內同時存在PROFIBUS-DP總線和MODBUS總線的設備,已經存在和使用的設備不必做任何改變就能夠直接接入PROFIBUS-DP網絡。

其中,微控制器為中國四聯集團開發的主控制器,本智能網關在設計上為其預留了一個用於和主控制器進行通信的通信接口。底層的I/O模塊實現工業現場信號的檢測或控制執行設備的運行。

2 PROFIBUS-DP/MODBUS網關結構設計

PROFIBUS-DP/MODBUS嵌入式網關硬體結構如圖2所示。按照功能模塊劃分,網關可以分為電源管理模塊、中央處理器模塊、PROFIBUS-DP從站模塊和RS485通信模塊。

本硬體設計要求串行口速率能夠達到921.6 kbps。基於此要求,硬體平臺選用Philips公司的ARM7TDMI核的微處理器。電源管理模塊負責整套系統的電源供給。系統的穩定運行和電源模塊的穩定性能關係密切,此處設計的電源模塊兼有熱插拔和電壓轉換的功能。PROFIBUS-DP從站模塊的核心功能由協議晶片(VPC3+C)來實現,從站單元的配置和管理則由中央處理器模塊來完成。

中央處理器模塊除了實現對PROFIBUS-DP從站模塊的配置和管理外,還要完成MODBUS協議的實現以及兩種協議數據交換協議棧的實現。為了提高系統的抗幹擾能力,和外界進行通信的部分需要和系統在物理接口上進行電氣隔離,此處的3個通信接口都需要進行隔離。根據通信速度要求的不同,選擇磁耦晶片模塊完成PROFIBUS-DP通信的隔離兼物理層電平轉換功能;用雙通道磁耦隔離晶片來完成另外兩路串行口通信的隔離。這兩款晶片都採用了最新的基於晶片尺寸的變壓器隔離技術的磁耦。和傳統的光耦比較,其轉換速度、瞬態共模抑制能力、功耗、尺寸及成本等方面均有很明顯的優勢。

3 系統的軟體設計

3.1 軟體總體結構設計

一般情況下,現場總線協議之間的轉換器可分為物理層的中繼器、MAC層的網橋及應用層的網關等幾種形式。中繼器方式需要更改底層硬體,網橋方式對應MAC層的協議轉換複雜,而網關的形式則使得原有網段的協議不需做任何改變,實現起來最為簡單。

本系統採用了網關形式,軟體總體流程如圖3所示,主要實現了PROFIBUS-DP協議晶片VPC3+C的驅動程序和MODBUS協議,同時在應用層實現了PROFIBUS-DP總線和MODBUS總線協議數據幀的轉換。MODB-US協議只是定義了消息域的格局和內容的公共格式,具體的物理層及應用層可以由用戶根據需要定義。本網關MODBUS通信部分物理層採用標準的RS485總線,MAC協議是由軟體實現的。

CPU通過驅動VPC3+C來實現對PROFIBUS熔一DP通信過程的控制,包括通信接口檢查、正常和發生故障情況下診斷數據的發送及數據交換等過程;通過MODBUS協議實現對下掛的輸入/輸出從站模塊的查詢操作;通過對輸入/輸出模塊的應答幀(或通信超時)進行分析來判斷模塊的狀態以及模塊的通道狀態;根據模塊狀態信息填充PROFIBUS-DP的診斷域的數據,並以此為依據來對網關狀態(正常通信、報告錯誤或警告信息)進行控制。

3.2 網關協議棧設計

網關協議棧為MODBUS輸入/輸出模塊和PROFI-BUS-DP通信的橋梁。協議棧採用分層結構:PROFIBUS-DP通信層、協議映射層和MODDBUs I/O通信層。協議棧結構及報文處理流程如圖4所示。

(1)PROFIBUS-DP通信層

負責對VPC3+C通信狀態的監控管理,按照一定的規則將PROFIBUS-DP總線通信收到的數據映射到CPU內部的存儲器,供I/O通信層調用,完成輸出數據的更新;把I/O通信層的輸入數據按照一定的規則映射到CPU內部的寄存器,在適當的時候寫入VPC3+C的輸入數據緩衝區,以完成輸入數據的更新。

(2)協議數據映射層

負責將I/O模塊映射為標準PROFIBUS-DP I/O模塊的工作,包括對下掛的I/O模塊類型和通信接口控制字的檢查;各輸入模塊通道輸入數據在PROFIBUS-DP輸入數據中起始位置及所佔長度的管理;PROFIBUS-DP輸出數據向各輸出模塊通道輸出數據上的映射關係管理。

(3)MODBUS通信層

負責完成和下掛MODBUS從站I/O模塊的所有通信,包括讀取I/O模塊類型、讀取通道輸出值、設定通道輸出值和參數設置等工作;根據映射層提供的輸出數據映射關係,將PROFIBUS-DP的輸出數據在CPU存儲器裡的映射數據更新到輸出模塊的相應通道上;讀取各輸入模塊的通道輸入值,給映射層提供輸入數據資源。

3.3 PROFIBUS-DP總線驅動

此網關PROFIBUS-DP部分採用協議晶片VPC3+C,其內部含有4KB RAM,用戶可根據需要對其進行設置;有兩種微處理器接口,數據/地址總線復用或單獨操作。因為ARM核對外部RAM操作的速度較快,時序不能滿足VPC3+C的操作時序,因此這裡不採用數據/地址總線復用的方式,而是用ARM的GPIO口來模擬VPC3+C的操作時序。在這裡模擬的是其在Intel模式下內部寄存器的讀寫時序。此驅動主要提供了以下功能:nxp_vpc3_read、nxp_vpc3_write、nxp_vpc3_init、nxp_vpc3_reset、nxp_vpc3_isr。這些函數分別向上層應用提供了讀寫VPC3+C寄存器、對其初始化、復位操作及中斷的處理功能。其中對寄存器的讀寫操作是關鍵部分,函數原型如下:

unsigned char nxp_vpc3_read(unsigned int addr);
void nxp_vpc3_write(unsigned int addr,unsigned char data);

其中,addr為要讀寫的寄存器地址,data為要寫入的數據。

3.4 MODBUS協議的實現

為增加信號傳輸的距離並提高抗幹擾能力,MODB-US物理層採用標準的RS485通信。MODBUS協議實現軟體的流程如圖5所示。

為了提高協議處理報文的效率,並提供良好的擴展性能,定義了函數指針數組,用於MODBUS應用層的數據處理。函數指針數組指針按照模塊類型進行信息處理的導向。

3.5 協議數據的映射處理

此網關的主要任務是完成PROFIBUS-DP的數據和MODB-實現的流程US數據的相互轉換,為了保證數據的實時性採用單緩衝區技術來實現信息的及時更新。所謂「單緩衝區」,即不管是PROFIBUS-DP還是MODBUS中待轉換的數據,只保留當前最新的一幀。考慮到現場通信的數據主要是數據的採集或模擬量的輸出,採用單個緩衝區不僅僅大大降低了對內存的需求,而且可以保證通信的實時性。因為PROFIBUS-DP的正常通信需要組態的軟體和下掛模塊的硬體一致,才能保證系統的可靠運行。因此如何將MODBUS從站模塊合理地映射成PROFIBUS-DP的標準模塊很關鍵。這裡根據模塊特點(類型、數字量/模擬量、通道數量等)定義了不同的通信接口控制字(CFG_DAT)。系統上電後,網關通過MODBUS功能碼0x11對下掛從站模塊進行類型及狀態查詢,並根據類型得到對應不同模塊的CFG_DAT。在PROFIBUS-DP進行通信接口配置(CFG_CHK)的過程中檢查下掛模塊的CFG_DAT和對主站硬體組態的模塊對應的CFG_DAT,並根據此來填充診斷數據。如果檢查通過,控制PROFIBUS-DP從站協議晶片進入數據交換狀態;否則主站在進行診斷數據請求(DIAG-REQ)的時候,將診斷數據報告給主站。此網關判斷的診斷信息包括:對應CFG_DAT錯誤的模塊地址、模擬量輸入MODBUS模塊的通道斷線標誌。

3.6 關鍵技術研究

(1)緩衝區數據映射——保證實時性

網關在對兩種協議的數據進行映射的過程中,採用了一次性內存拷貝技術和單緩衝區技術來儘快完成數據的處理且保證是最新數據,以此來保證數據傳輸在經過網關時的實時性。

一次性內存拷貝技術是指,網關從協議晶片內部讀取到PROFIBUS-DP的輸出數據後,直接將存到的數據填充到MODBUS輸出幀內;從MODBUS輸入模塊得到的數據直接填入到PROFIBUS-DP協議晶片的輸入緩衝區。這樣的方式可減少內存拷貝過程中所耗費的時間。如上所述,網關單緩衝區技術也是為了保證數據是最新採用的。此網關連接的兩種設備的正常數據通信都是周期性的,且周期一般是固定不變的。如果MODBUS數據交換的周期小於PROFIBUS-DP的數據交換周期,則網關的緩存中只有1幀有效數據;如果MODBUS數據交換周期大於PROFIBUS-DP的數據交換周期,若採用鍊表保存PRO-FIBUS-DP的幀數據,則不管緩衝區的大小有多少,肯定導致緩衝區溢出,從而使PROFIBUS-DP的輸出數據不能即時更新到MODBUS從站的通道上進而影響系統的實時性。

(2)實時模塊通信檢查——保證可靠性

系統除了在上電之後對下掛的MODBUS模塊進行類型查詢並和PROFIBUS-DP主站組態模塊類型進行比較外,在進入正常數據交換之後,也會對模塊的狀態進行查詢,判斷模塊是否發生錯誤。錯誤標誌是在網關和MODB-US從站進行通信過程中根據從站的回應幀來判斷的。在逐個檢查模塊錯誤標誌後,如果沒有錯誤標識被置位,繼續正常通信過程;如果發現有錯誤標識被置位,則控制PRO-FIBUS-DP協議晶片離開數據交換狀態,並且填充診斷信息。在此之後,不斷查詢MODBUS模塊類型,直至模塊類型和對PROFIBUS-DP主站組態數據一致為止,再控制PROFIBUS-DP協議晶片進入數據交換狀態。這樣採用實時查詢模塊是否出錯狀態的方式來保證軟體組態數據和硬體類型相一致,防止出現輸入/輸出數據的錯誤。

此網關系統中MODBUS協議是由軟體來實現的,考慮到需要定時器等保證通信的可靠性,為了防止兩種協議通信的相互影響,對PROFIBUS-DP輸出數據的讀取採用查詢的方式而非中斷方式進行。這樣在PROFIBUS-DP的數據到來後不會打斷正在進行的MODBUS通信,尤其是在PROFIBUS-DP通信速率較高的情況下,這種設計的可靠性更加明顯。如果採用中斷的方式,在PRO-FIBUS-DP通信速率超過一定值,其勢必影響網關和MODBUS從站之間的通信(詳見下面性能分析部分),嚴重時會導致MODBUS幀傳輸的不完整性,從而導致網關對MODBUS模塊通信狀態的誤判,進而影響系統的穩定性。

4 網關測試結果

在規定的條件下,對通信次數進行計數,程序的每個掃描周期進行一次MODBUS數據輸入/輸出的更新;PROFIBUS-DP輸入/輸出數據的更新,則是在VPC3+C收到PROFIBUS-DP的輸出數據標誌位置位後進行。對這兩種數據更新的次數進行計數,分別為Cmidbus和Cdp在PROFIBUS-DP通信速率(λdp)變化的情況下,實際測試數據如表1所列。

從表中可以看出,λdp=187.5 kbps時,Cdp=Cmodbus,實際上,此時已經出現了PROFIBUS-DP丟包現象。這也解釋了上邊所提到的如果λdp超過一定值,若採用中斷方式處理PROFIBUS-DP的輸出數據,勢必影響正在進行的MODBUS的通信。

5 結 論

將中國四聯集團採用MODBUS協議的輸入/輸出從站設備無縫接入PROFIBUS-DP網絡的智能通信網關的實現方案,有效地拓寬了其應用範圍。在硬體設計上,採用電源管理模塊實現網關的熱插拔功能;採用專用晶片解析PROFIBUS-DP協議;採用磁耦隔離代替傳統的光耦隔離,提高了系統的性能和可靠性。軟體方面,採用單緩衝區設計、一次性內存拷貝技術、實時模塊狀態查詢方式以及合理的中斷應用來保證系統的實時性和可靠性,還對網關的性能進行了測試和簡單計算,給出了保證不丟包所需要滿足的公式。為其他工業通信網關的設計提供了參考。

相關焦點

  • Modbus與PROFIBUS-DP協議比較
    實現起來是非常容易滴,單片機、PLC、DCS統統都能輕易實現Profibus則要複雜一些,關鍵是需要專用晶片進行二次開發,並且需要得到上級組織的認證,開發成本肯定高不少本文引用地址:http://www.eepw.com.cn/article/201612/331407.htm當然從性能上講,基於串口的modbusrtu/ASCII通訊性能肯定比不過profibusdp
  • MODBUS轉PROFIBUS網關在捲菸廠的應用
    約克空調機組系統目前採用的是MODBUS通訊,在很多情況下需要將空調機組系統接入到西門子S7300的PROFIBUS系統中,應用微硬創新的MODBUS轉PROFIBUS網關實現了兩種總線的轉換.PLC通過北京微硬創新科技有限公司的MODBUS轉PROFIBUS網關對若干臺空調機組的重要運行數據(包括蒸發器壓力和溫度、冷凝器器壓力和溫度、電流、電壓、冷凝供水溫度、機組狀態、報警以及設備的啟動和停止)進行監控。
  • PROFIBUS轉MODBUS網關在煙廠的應用
    約克空調機組系統目前採用的是MODBUS通訊,在很多情況下需要將空調機組系統接入到西門子S7300的PROFIBUS系統中,應用微硬創新的MODBUS轉PROFIBUS網關實現了兩種總線的轉換
  • 採用profibus-dp現場總線的直流調速器控制系統
    profibus由profibus-fms(fieldbus message specification),profibus-pa(process automation)和profibus-dp(distributive peripheral)三部分組成。目前80%以上的profibus應用是基於profibus-dp。
  • CAN總線—PROFIBUS-DP總線網關的實現方法
    本文主要研究PROFIBUS-DP[2]與CAN[3]兩種總線的協議轉換的原理,並設計出了一種網關實現了這兩種總線的互聯。2  方案設計對於兩個異構的現場總線,其數據鏈路層和應用層協議是截然不同的,要實現它們的互聯,需要採用網關進行協議轉換。
  • PROFIBUS總線在煙箱輸送線上的應用
    1 引 言 本文以煙箱輸送系統介紹西門子profibus現場總線控制系統,輸送系統實現四臺封箱機後成品煙箱的合流、輸送、提升,將煙箱輸送至成品高架倉庫入庫分揀輸送線上
  • 記一次Profibus DP轉MODBUS的實例
    12年自動化專業畢業後,留在了一個鋼廠工作,首先接觸的便是西門子的PLC,接觸的協議自然也是profibus DP、MPI、PPI、TCP/IP等與西門子相關的協議,對於MODBUS,僅僅停留在聽說過,好像很厲害的層面上,一次偶然的機會,接觸到了MODBUS協議,項目是300PLC通過PB-B-MODBUS
  • profibus總線的網絡特性及實現水廠快濾池自動控制系統的設計
    正由於這些特點,以現場總線作為技術支撐的fcs在工業自動化領域有明顯的優勢,如很高的精確性、設計組態簡單、擴展安裝方便、易於維護、節省軟硬體投資等。它被公認為第五代控制系統,成為當今工業自動化發展的必然趨勢。 2、現場分析及profibus特性 2.1 現場分析 進行張士淨水廠普通快濾池設計時,選用現場總線作為控制系統支撐技術。
  • modbus通信協議,profibus、FF、CAN總線等幾種現場總線知識合集
    modbus通信協議,profibus、FF、CAN總線等幾種現場總線知識合集 李倩 發表於 2018-04-29 17:47:00 在工業的發展中,現場總線起著非常重要的作用
  • PROFIBUS現場總線技術及發展趨勢分析
    PORFIBUS-PA:專為過程自動化設計,可使傳感器和執行機構聯在一根總線上,並有本徵安全規範。  PROFIBUS-FMS:用於車間級監控網絡,是一個令牌結構.實時多主網絡。本文以在中科院瀋陽自動化研究所設計的基於FF現場總線的網絡化測控實驗平臺上,設計了雙容水箱的液位反饋控制迴路,並結合具體被控對象提出了將PID控制算法應用到FF現場總線系統的可行性方案,既在OPC伺服器MicroCyber.FFServer.1的基礎上實現了基於OPC技術的PID控制算法。
  • MODBUS轉PROFIBUS網關應用於廣東某鋼廠
    該系統的通訊採用MODBUS485總線通訊,在應用了北京微硬創新科技有限公司的MODBUS轉PROFIBUS網關後,將皮帶秤系統順利接入S7400 PLC的PROFIBUS總線,將原料的重量數據高速準確的傳入PLC。
  • RS485轉profibus-DP網關應用案例
    PM-160T應用案例:將用戶自定義協議的RS232設備接入西門子PLC控制系統  現場應用:PM-160T(RS232/RS485/RS422轉Profibus-DP網關
  • 基於netX90晶片實現PROFIBUS DP從站的開發
    1  netX90技術參數         ▪ 兩個ARM®Cortex®-M4高性能內核處理器,每個內核具有125 DMIPS,可分別處理通訊任務與應用程式設計       ▪ 優化的硬體設計,集成DC / DC轉換器、片上BOD和POR電路       ▪ 片載Flash
  • 摩莎Modbus TCP,讓PROFIBUS設備管理更輕鬆
    Moxa全新推出新款網關——MGate5101-PBM-MN,支持PROFIBUS轉Modbus TCP。MGate5101-PBM-MN網關可輕鬆將PROFIBUS設備(如PROFIBUS驅動器或儀器儀表)連接至Modbus TCP主機(如SCADA或PLC)。
  • modbus與rs485的關係_modbus與rs485的區別和聯繫
    打開APP modbus與rs485的關係_modbus與rs485的區別和聯繫 發表於 2018-01-03 18:36:42
  • 創意智能家居用品-智能網關設計
    智能網關在智能家居系統中起著重要的作用,得到了人們更多的關注。下面和大家分享兩款創意智能網關設計。一、科技小巧的智能網關設計這款智能網關設計新潮,造型簡潔小巧,黑色的外殼大氣科技,質感時尚,符合現代智能家居風格。同時,它的整體設計符合人體工程學,人機互動設計人性化,操作非常簡便,具有良好的用戶體驗。
  • Profibus-DP主站通信平臺的設計方案
    Profibus-DP主站通信平臺的設計方案 電子設計 發表於 2018-12-30 10:04:00   引言
  • PROFIBUS-DP主站與主站之間如何實現通信?
    現在有兩個獨立的PROFIBUS-DP總線網絡,A主站(cpu315-dp)和B主站cpu315+CP342
  • 嵌入式PROFIBUS-DP從站通信接口的設計
    基於上述需求,嵌入式PROFIBUS-DP從站通信接口的設計為自主開發具有PROFIBUS-DP通信功能產品的用戶提供了一種快速、高效的解決方案。  實現方法  (1)電路設計製作:使用PROFIBUS通信專用ASIC晶片SPC3實現協議相關內容,選用合適的CPU,外圍加帶光電隔離的RS-485驅動;  (2)單片機+Firmware軟體:需要在單片機中編程(Firmware軟體),實現單片機與ASIC的結合;