摘要:隨著工廠自動化技術的發展,基于Profibus—DP現場總線與Modbus協議的通信技術在國內外得到了廣泛的應用。然而要實現兩者之間數據轉換卻較為困難,原因是實現兩者之間數據轉換的產品相對較少。本文針對采用Modbus RTU協議通信的變頻器,提供了一種Prnfibus—DP現場總線與Modbus協議之間轉換的通信接口,主要闡述了該接口的軟硬件設計方案,并重點介紹了實現通信接口可靠性與實時性的方法。實驗結果證明了該設計方案的可行性。
隨著工廠自動化技術的發展,現場總線技術已經得到廣泛的應用。其中過程現場總線Profibus(Process Fieldbus)是一種面向工廠自動化、流程自動化的國際性現場總線標準,以其靈活性、可靠性以及高性能價格比等優點廣泛應用于制造業自動化、過程自動化、樓宇自動化以及交通電力等領域。Profibus包括Profibus-DP,Profibus-FMS等系列,其中用于設備級控制系統與分散式 I/O通信的Profibus—DP是市場占有率領先的總線技術,它是世界上僅有的幾個開放式現場總線標準之一,也是我國工業自動化領域行業標準中為數不多的現場總線標準之一。
Modbus協議是廣泛應用于電子控制領域的一種現場總線協議,其免費開放性受到了很多商業用戶的親睞,成為全球最為流行的現場總線協議之一。它支持多種電器接口,如RS-232,RS-485等。Modus協議包括ASCII(美國信息交換碼)、RTU(遠程終端設備)兩種。許多工業設備,包括 PLC,DCS,智能儀表等都在使用Modbus協議作為他們之間的通訊標準。
我國對于Profibus-DP技術的應用和研究主要以系統集成和工程應用為主,對于實現Profibus—DP與Modbus之間數據轉換的產品相對較少,且被一些公司壟斷,價格昂貴,針對變頻器領域的具體應用的產品更是少之又少,對于不具備DP通信能力的變頻器推廣與應用形成了瓶頸。
因此,目前迫切需要開發出一種裝置,可以實現采用Modbus通信協議的變頻器與控制系統中的Profibus—DP主站之間進行通信,使該類變頻器具有Profibus-DP通信接口。
1 協議轉換通信接口硬件設計
1.1 協議轉換通信接口總體結構框圖
圖1是針對變頻器的Profibus—DP與Modbus協議之間轉換的通信接口總體結構框圖,主要包括主控制器、SPC3通信單元、光耦隔離電路、RS-485驅動電路、5 V隔離電源、用戶接口電路及相應的外圍電路。
1.2 協議轉換通信接口硬件電路設計
如圖2所示,協議轉換單元中的主控制器采用PHILIPS公司的P89C51RD2HBBD單片機,主要用于控制Profibus-DP 協議芯片SPC3收發DP主站數據,并通過執行P89C51RD2HBBD單片機相應的協議轉換程序,將DP數據轉換為Modbus數據發送給變頻器用戶端;通過用戶接口電路也可將變頻器返回的數據信息通過SPC3通信單元傳送給DP主站;另外,在協議轉換過程中,由于變頻器端有4種不同的波特率,分別為 19 200bps,9 600 bps,4 800 bps,2 400 bps,而對于Profibus—DP其傳輸速率最高可達到12 Mbps,為防止數據在傳輸過程中可能產生丟失的情況,所述協議轉換單元另一重要功能即解決DP與Modbus協議在轉換過程中出現的通信速率不匹配問題:為實現變頻器與主控制器之問具有相同的傳輸速率,主控制器的兩個I/O口通過用戶接口單元與變頻器連接,在協議轉換單元開始工作時,主控制器通過此接口獲得變頻器發送的波特率選擇信號,依此設置相應的異步串行通信的波特率,使變頻器與主控制器的傳輸速率一致。
協議轉換單元中的Profibus—DP協議芯片SPC3是Siemens為智能從站開發的一款Profibus專用通信芯片,該芯片集成有完整的DP協議,能自動檢測9.6 Kbps到12 Mbps范圍的波特率,內部集成有1.5KB的RAM。該芯片是專為循環MS0和非循環的MS1數據交換(即Profibus DP-V0和DP-V1)設計的。利用此芯片只需要極少的外部器件就可以實現一個Profib us的站點;在本通信接口模塊中,其8根數據總線、11根地址總線以及相應控制總線分別與協議轉換單元中的主控制器相連;另外,SPC3芯片的數據發送信號TXD,數據接收信號RXD以及發送使能信號RTS與RS-485驅動電路相接;SPC3的外部時鐘接口有24 MHz和48 MHz兩種可選,本設計采用48 MHz的有源晶振,為SPC3提供時鐘信號。另外,SPC3通過對48 MHz的時鐘信號四分頻為主控制器提供12 MHz的工作時鐘。
所述RS-485通信單元,實現了本接口通信裝置DP從節點的物理層功能,其中,為避免總線信號受到DP從站設備的干擾,總線A、B數據信號線接口采用50 M波特率的光耦HCPL 7101隔離,RTS信號線采用10 M波特率的光耦HCPL0601隔離;此外,為防止設備啟用時,RTS信號高電平占用總線而引起總線系統錯誤,HCPL7101輸出端先經過反相器74HC132在接入總線;另外,對于光耦隔離電源本接口設計采用芯片ADUM5000,ADUM5000為2.5 kV隔離DC/DC轉換芯片,其電源輸入為5 V或3.3 V,輸出5 V或3.3 V;本設計中所選ADUM50 00的輸入輸出所選均為5 V,其中輸入端電源是由變頻器通過用戶接口提供,其隔離出的5 V電源為RS-485驅動電路以及光耦的后級供電。
2 協議轉換通信接口軟件設計
2.1 主程序流程
如圖3所示,主程序流程:首先初始化SPC3,由DP主站配置相應的組態報文以及參數報文,同時初始化P89C51RD2HBBD單片機的異步串行通信接口;在SPC3完成初始化后,即可與DP主站進入數據交換狀態,等待主站發送命令;若主站有數據輸出,單片機取得數據存入輸出數據緩沖區(相對于主站),如果緩沖區無溢出,調用Modbus協議程序,把數據封裝為Modbus幀格式,通過串口傳送給變頻器端。如果輸出緩沖區有溢出,產生外部診斷,在DP主站下一次輪詢從站獲取診斷報文時,發送給主站,由主站給予處理。變頻器端在接收到DP主站發送的命令后,返回響應數據,單片機通過串口獲取該數據,并存入輸入數據緩沖區(相對于主站),若輸入緩沖區無溢出,存入SPC3數據緩沖區,等待輪詢,與主站交換數據。若有溢出,產生外部診斷,在DP主站下一次輪詢從站獲取診斷報文時,發送給主站,由主站給予處理。
2.2 關鍵技術研究——可靠性與實時性
在協議轉換過程中,由于變頻器端有4種不同的波特率,分別為19 200 bps,9 600 bps,4 800 bps,2 400 bps,而對于Profibus—DP其傳輸速率最高可達到12 Mbps,兩者的通信速率并不完全匹配,為防止由于DP主站通信速率相對變頻器較高而致使發送的控制命令信息被覆蓋掉,在P89C51RD2HBBD單片機中開辟輸出雙緩沖區,即協議轉換單元接收DP主站發送數據時,先將其存儲在第一個緩沖區,待數據轉送給變頻器后,立即清空該緩沖區,并置位第一個緩沖區的空標志位,等待下一次數據存儲,在下次數據到來時,首先查看兩個緩沖區的空標志位,把數據存儲到已經清空的緩沖區中,再通過協議轉換程序處理后及時發送至變頻器,通過該雙緩沖區從而避免數據信息被覆蓋掉的可能性,同時,為防止在一些特殊情況下,比如DP通信速率達到最高,而變頻器數據傳輸速率設置為最低,可能導致雙緩沖區溢出而喪失避免數據信息被覆蓋的功能,可利用SPC3通信單元產生數據溢出用戶診斷報文,發送至DP主站,主站通過讀取診斷信息獲知產生錯誤原因,并作出相應處理。對于變頻器側數據傳輸速率遠遠大于DP通信的波特率時,在單片機中開辟輸入雙緩沖區,采用同樣的方式達到通信接口數據傳輸的可靠性與實時性。
3 測試實驗與結果分析
為了驗證本文所設計的Profibus-DP與Modbus協議轉換接口軟硬件的正確性與合理性,結合實驗室現有的實驗條件,采用PLC 300作為DP主站,搭建實驗測試平臺。測試流程如圖4所示:首先,對DP主站進行初始化,在進入DP主站進入數據交換狀態時,根據變頻器實際的控制命令,由DP主站向變頻器端發送控制命令幀,協議轉換接口在接收到DP主站發送的數據后,解析出實際的變頻器控制命令,將其封裝為Modbus數據,送至變頻器端,變頻器根據所接收到的Modbus數據,做出相應的回復,其返回數據再通過DP與Modbus協議通信接口轉換為DP幀格式的數據送至DP主站。同時為了更加直觀的觀察協議轉換接口轉換的DP數據與Modbus數據,分別采用ProfiTrace對DP主站發送和接收的數據進行監控,同時,協議轉換接口將所得到Modbus數據送至串口調試助手,通過串口調試助手監控所轉換的Modbus數據的與DP主站所交換的數據是否相同,從而提高了測試試驗的可信度,也更進一步驗證了協議轉換接口的功能的可靠性。其中ProfiTrace為DP數據監測裝置,通過相應的操作軟件Proficore可以實時的獲取DP總線上傳輸的數據。
對于DP主站的初始化,如圖5所示,當DP主站完成參數報文配置和組態報文配置,在得到診斷信息00 0C 00 0100 08之后便進入數據交換階段,如圖6所示,實線方框圈起的部分為DP主站發送的變頻器命令,虛線方框圈起的部分為變頻器返經過DP與Modbus協議轉換接口返回的響應數據,通過Proficore監測界面可以看到,DP主站輸出的數據與所接收到的數據都為06 C8 00 00 25,其中,06 C8 00 00 25為DP主站向變頻器發送的控制啟動命令,變頻器在正確接收到該控制命令之后,將所接收到的數據返回至DP主站,以便告知主站命令數據正確接收。
另外,如圖7所示,通過串口調試助手獲得的協議轉換接口轉換的Modbus數據為01 06 C8 00 00 25 76 71,總共8個字節,其中01為變頻器定義的地址,76 71為Modbus數據的CRC校驗碼,06 C8 00 00 25為實際的數據部分,與DP主站發送和接收到的數據一致。
由于Profibus—DP通信速率最高可達到12 Mbps,對于變頻器端定義了四種不同的波特率,分別為19 200bps,9600bps,4 800 bps,2 400 bps,為了驗證協議轉換接口在不同通信速率下轉換數據的正確性與可靠性,通過DP主站以及協議轉換接日分別設置不同頻率的通信速率,經過上述實驗對此通信接口進行多次測試,均能保證數據傳輸正確。
4 結論
綜上所述,本協議轉換通信接口是在一塊電路板上有效的集成了Profibus-DP智能從站接口,又嵌入了DP數據與Modbus數據轉換功能,使采用Modbus RTU協議通信的變頻器可以與采用Profibus—DP協議的主站通信。在硬件方面,采用P89C51RD2HBBD+SPC3協議芯片+RS485驅動電路,即可實現Modbus協議與Profibus-DP協議之間的轉換,通過用戶接口與變頻器物理連接;在軟件方面,根據變頻器的四類控制命令:控制變頻器起停、讀變頻器當前狀態、設置變頻器參數與讀取變頻器參數,由DP主站把控制命令轉化成相應的DP幀格式數據發送到本裝置的DP從節點,主控制器通過SPC3通信單元獲取該數據之后,將其封裝為Modbus數據,利用單片機的異步串行接口發送給變頻器,達到控制變頻器的目的,同樣,變頻器根據接收到的控制命令返回相應的數據信息,主控制器通過用戶接口電路獲得,并提取有效數據將其發送至SPC3協議芯片的輸出緩沖區,與DP主站進行周期性交換數據,另外,為實現變頻器與DP主站的通信速率匹配,通過在主控制器內部RAM開辟5字節的雙緩沖區,在主控制器通過SPC3通信單元接收DP主站數據時,先判斷兩緩沖區的空標志位,將數據存儲到空標志位為0的緩沖區中,經協議轉換處理發送給變頻器后,立即清空該緩沖區以及相應的空標志位,等待下一次數據傳輸,同時,為確保協議轉換的安全可靠性,如果雙緩沖區產生溢出的情況時,通過SPC3通信單元產生溢出診斷報文返回至DP主站,由DP主站做出相應的處理。
與現有技術相比,本設計針對采用Modbus RTU協議的變頻器,提供了一種Modbus與Profibus-DP之間進行協議轉換的通信接口裝置。通過實驗驗證,本通信接口軟硬件設計正確,可以實現采用Modbus RTU協議的變頻器與DP主站進行通信,且數據轉換實時可靠。在一定程度上,對于采用Modbus協議通信的變頻器,本通信接口擴大了其應用范圍,具有重要的實際意義。
評論
查看更多