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