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