PROFI BUS-DP/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模塊通信狀態的誤判,進而影響系統的穩定性。本文引用地址:http://www.j9360.com/article/181148.htm
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協議;采用磁耦隔離代替傳統的光耦隔離,提高了系統的性能和可靠性。軟件方面,采用單緩沖區設計、一次性內存拷貝技術、實時模塊狀態查詢方式以及合理的中斷應用來保證系統的實時性和可靠性,還對網關的性能進行了測試和簡單計算,給出了保證不丟包所需要滿足的公式。為其他工業通信網關的設計提供了參考。
評論