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