本發(fā)明屬于電力電子及交流傳動系統(tǒng)的數(shù)據(jù)通信領(lǐng)域,具體涉及一種基于Modbus RTU協(xié)議的永磁同步電機數(shù)據(jù)通信系統(tǒng)及方法。
背景技術(shù):
目前,節(jié)能降耗已經(jīng)成為我國基本國策,對高效節(jié)能電機的需求日趨迫切,再加上近年來永磁材料的快速發(fā)展,永磁同步電機由于其具有體積小、重量輕、高效節(jié)能、運行平穩(wěn)等一系列優(yōu)點及優(yōu)越的技術(shù)性能,已廣泛應(yīng)用于水泵、風(fēng)機、升降機、起重機、電動汽車、船舶推進等多個場合。
永磁同步電機的控制技術(shù)也得到細致研究,在永磁同步電機控制場合,數(shù)據(jù)通信是不可或缺的重要組成環(huán)節(jié),為了滿足對永磁同步電機的運行控制、維護、管理、運行或故障狀態(tài)監(jiān)測的需要,要進行大量的數(shù)據(jù)傳輸與數(shù)據(jù)交換,永磁同步電機控制系統(tǒng)必須具備數(shù)據(jù)通信的功能。
Modbus協(xié)議已成為數(shù)據(jù)通信領(lǐng)域最流行的協(xié)議,它具有標(biāo)準(zhǔn)、開放、高可靠性的特點,它采用主站查詢從站的方式通信,并可以支持多種類型的電氣接口,可以是RS232、RS485、RS422、以太網(wǎng)等,還可以在各種介質(zhì)上傳送,如雙絞線、光纖等。依靠Modbus協(xié)議,不同廠商生產(chǎn)的控制設(shè)備可以連成工業(yè)網(wǎng)絡(luò),便于控制與管理。
技術(shù)實現(xiàn)要素:
本發(fā)明的目的是為了解決上述問題,提出一種基于Modbus RTU協(xié)議的永磁同步電機數(shù)據(jù)通信系統(tǒng)及方法,解決了對永磁同步電機的運行控制、狀態(tài)監(jiān)測及參數(shù)設(shè)置,實現(xiàn)了外部設(shè)備觸摸屏與永磁同步電機控制系統(tǒng)之間的雙向數(shù)據(jù)通信,并且該通信方法具有可擴展性,可使永磁同步電機控制系統(tǒng)與不同廠家的控制設(shè)備進行雙向數(shù)據(jù)通信。
一種基于Modbus RTU協(xié)議的永磁同步電機數(shù)據(jù)通信系統(tǒng),包括永磁同步電機控制板、觸摸屏和雙絞電纜;
永磁同步電機控制板包括主控制器、隔離型RS485協(xié)議轉(zhuǎn)換芯片和電氣接口端子J2,主控制器采用DSP28335,隔離型RS485協(xié)議轉(zhuǎn)換芯片采用ADM2587,電氣接口端子J2為RS485;
主控制器DSP28335的串口C的接收引腳SCIRXC與隔離型RS485協(xié)議轉(zhuǎn)換芯片協(xié)議轉(zhuǎn)換芯片ADM2587的輸入端RXD引腳相連接,主控制器DSP28335的串口C的發(fā)送引腳SCITXC與隔離型RS485協(xié)議轉(zhuǎn)換芯片ADM2587的TXD引腳相連接,隔離型RS485協(xié)議轉(zhuǎn)換芯片ADM2587的讀寫使能引腳和DE連接,與主控制器DSP28335的通用IO口引腳GPIO46相連接,隔離型RS485協(xié)議轉(zhuǎn)換芯片ADM2587的A引腳與電氣接口端子J2的RS485+相連,隔離型RS485協(xié)議轉(zhuǎn)換芯片ADM2587的B引腳與電氣接口端子J2的RS485-相連,雙絞電纜將電氣接口端子J2的RS485+與觸摸屏的端口A連接,雙絞電纜將電氣接口端子J2的RS485-與觸摸屏的端口B連接;
永磁同步電機控制板與觸摸屏之間的數(shù)據(jù)通信協(xié)議為Modbus RTU協(xié)議。
本發(fā)明的優(yōu)點在于:
(1)本發(fā)明的通信方法采用Modbus RTU協(xié)議,擴展性好,可靠性高,可實現(xiàn)永磁同步電機控制系統(tǒng)與支持Modbus RTU協(xié)議的任何廠家的觸摸屏、PLC等設(shè)備進行雙向數(shù)據(jù)交互,且支持的電氣接口多樣化,本發(fā)明采用的RS485接口,抗干擾性好,可靠性高,適用于工業(yè)控制場合;
(2)本發(fā)明的通信方法采用定時器中斷與串口接收中斷相結(jié)合的模式,程序設(shè)計合理、有效,保證了數(shù)據(jù)交互過程中無讀寫沖突發(fā)生,數(shù)據(jù)傳輸準(zhǔn)確無誤;
(3)本發(fā)明形成了一套完善的工程化永磁同步電機控制系統(tǒng)的數(shù)據(jù)通信方法,實現(xiàn)了永磁同步電機的速度給定控制、故障監(jiān)測與保護部分、關(guān)鍵參數(shù)的設(shè)置、狀態(tài)顯示等功能,方便調(diào)試人員在線調(diào)試,同時也方便用戶進行管理。
附圖說明
圖1為永磁同步電機控制系統(tǒng)控制板與觸摸屏的通信系統(tǒng)框圖;
圖2為基于Modbus RTU協(xié)議的永磁同步電機通信方法串口接收中斷流程圖;
圖3為基于Modbus RTU協(xié)議的永磁同步電機通信方法定時器中斷流程圖。
具體實施方式
下面將結(jié)合附圖和實施例對本發(fā)明作進一步的詳細說明。
本發(fā)明的一種基于Modbus RTU協(xié)議的永磁同步電機數(shù)據(jù)通信系統(tǒng)及方法實現(xiàn)了永磁同步電機控制板與觸摸屏之間的雙向數(shù)據(jù)傳遞。其硬件是由永磁同步電機控制板、觸摸屏、隔離型協(xié)議轉(zhuǎn)換芯片ADM2587和雙絞電纜組成的。其軟件采用串口接收中斷與定時器中斷相結(jié)合的方法,并編制Modus RTU協(xié)議來實現(xiàn)的。永磁同步電機控制板的主控制器為TI公司的TMS320F28335DSP,隔離型協(xié)議轉(zhuǎn)換芯片ADM2587的作用是將串口協(xié)議轉(zhuǎn)換為RS485協(xié)議。數(shù)據(jù)通信的電氣接口為RS485,傳輸介質(zhì)采用雙絞電纜。觸摸屏為主站,永磁同步電機控制板設(shè)為從站,永磁同步電機控制板與觸摸屏之間的數(shù)據(jù)通信協(xié)議為Modbus RTU協(xié)議。
首先,本發(fā)明提供了一種基于Modbus RTU協(xié)議的永磁同步電機數(shù)據(jù)通信系統(tǒng),該通信系統(tǒng)的硬件連接是采用如圖1所示的連接方法。將永磁同步電機控制板中的主控制器DSP28335的串口C的接收引腳SCIRXC與隔離型RS485協(xié)議轉(zhuǎn)換芯片ADM2587的輸入端RXD引腳相連接,永磁同步電機控制板中的主控制器DSP28335的串口C的發(fā)送引腳SCITXC與隔離型RS485協(xié)議轉(zhuǎn)換芯片ADM2587的TXD引腳相連接,將隔離型RS485協(xié)議轉(zhuǎn)換芯片ADM2587的讀寫使能引腳和DE連接在一起,再與永磁同步電機控制板中的主控制器DSP28335的一個通用IO口引腳GPIO46相連接。隔離型RS485協(xié)議轉(zhuǎn)換芯片ADM2587的A引腳與端子J2的RS485+相連,隔離型RS485協(xié)議轉(zhuǎn)換芯片ADM2587的B引腳與端子J2的RS485-相連。用雙絞電纜將端子J2的RS485+與觸摸屏的端口A連接在一起,用雙絞電纜將端子J2的RS485-與觸摸屏的端口B連接在一起。
在通信系統(tǒng)硬件按照圖1所示連接好之后,本發(fā)明又提供了一種基于Modbus RTU協(xié)議的永磁同步電機數(shù)據(jù)通信方法。該通信方法采用串口接收中斷(如圖2所示)與定時器中斷(如圖3所示)相結(jié)合的方法實現(xiàn)Modbus RTU協(xié)議,并在永磁同步電機控制板中的主控制器DSP28335中編程,本發(fā)明的通信方法包括:定時器中斷環(huán)節(jié)、串口接收中斷環(huán)節(jié)、Modbus RTU協(xié)議環(huán)節(jié)、響應(yīng)數(shù)據(jù)輸出環(huán)節(jié)、數(shù)據(jù)生成環(huán)節(jié)、永磁同步電機速度控制和指令輸入環(huán)節(jié)、永磁同步電機關(guān)鍵參數(shù)設(shè)定環(huán)節(jié)、永磁同步電機狀態(tài)顯示環(huán)節(jié)、永磁同步電機故障顯示環(huán)節(jié)。
所述的定時器中斷環(huán)節(jié)為實現(xiàn)基于Modbus RTU協(xié)議的永磁同步電機通信方法的主模塊,完成了將永磁同步電機DSP控制板發(fā)送到觸摸屏上的數(shù)據(jù)進行顯示,以及永磁同步電機DSP控制板從觸摸屏上接收數(shù)據(jù)的功能。
所述的串口接收中斷環(huán)節(jié)是觸摸屏作為主站,永磁同步電機DSP控制板作為從站,利用串口接收中斷依次接收符合Modbus RTU協(xié)議格式的數(shù)據(jù)報文,并為數(shù)據(jù)報文的解析做準(zhǔn)備。
所述的Modbus RTU協(xié)議環(huán)節(jié)是在DSP28335中編寫Modbus RTU協(xié)議的具體內(nèi)容,將串口接收中斷的數(shù)據(jù)進行解析,按功能碼來區(qū)分是讀操作還是寫操作,是讀寄存器操作還是寫寄存器操作,再對接收到的數(shù)據(jù)進行16位CRC校驗,之后要向主站發(fā)送報文響應(yīng)。
所述的響應(yīng)數(shù)據(jù)輸出環(huán)節(jié)是按照Modbus RTU協(xié)議要求,永磁同步電機DSP控制板要對主站觸摸屏進行數(shù)據(jù)響應(yīng),即對主站發(fā)出應(yīng)答,從而實現(xiàn)與主站的數(shù)據(jù)交互。
所述的數(shù)據(jù)生成環(huán)節(jié)將接收到的來自觸摸屏的高低字節(jié)分開的數(shù)據(jù)先通過移位,再進行邏輯或操作,合成為一個字的數(shù)據(jù),用于永磁同步電機運行控制;或者將要在觸摸屏上顯示的數(shù)據(jù)通過邏輯與操作,拆分成高低字節(jié)的形式,按Modbus RTU協(xié)議要求的格式發(fā)送出去,用于顯示永磁同步電機的運行狀態(tài)或故障狀態(tài)。
所述的永磁同步電機速度控制和指令輸入環(huán)節(jié)包括給定速度值和斜坡函數(shù)等速度控制環(huán)節(jié)的關(guān)鍵參數(shù)設(shè)置,電機控制指令環(huán)節(jié)包括永磁同步電機運行模式、正反轉(zhuǎn)、啟動停車等指令的設(shè)置。
所述的永磁同步電機關(guān)鍵參數(shù)設(shè)定環(huán)節(jié)可以設(shè)定永磁同步電機閉環(huán)矢量控制中電流調(diào)節(jié)器、速度調(diào)節(jié)器、濾波器等的關(guān)鍵參數(shù),方便調(diào)試人員進行實時調(diào)試。
所述的永磁同步電機狀態(tài)顯示環(huán)節(jié)可以將系統(tǒng)狀態(tài)信息上傳到觸摸屏進行數(shù)據(jù)實時顯示,方便調(diào)試人員及用戶了解系統(tǒng)當(dāng)前狀態(tài)。
所述的永磁同步電機故障顯示環(huán)節(jié)可以在系統(tǒng)有故障發(fā)生時,將故障信息上傳到觸摸屏上,方便調(diào)試人員和用戶直觀的掌握系統(tǒng)的故障及報警信息,從而可以及時快速的處理系統(tǒng)故障及報警。
基于Modbus RTU協(xié)議的永磁同步電機數(shù)據(jù)通信方法具體實施是把上述各個環(huán)節(jié)結(jié)合起來,共同在DSP28335中編程實現(xiàn)。把觸摸屏作為主站,永磁同步電機控制板作為從站。如圖2所示,按照Modbus RTU的協(xié)議要求,觸摸屏每100ms向從站發(fā)送8個數(shù)據(jù),在進入串口接收中斷后,首先對串口進行ACK復(fù)位操作,然后再將存放在串口接收緩沖區(qū)的數(shù)據(jù)存放到預(yù)置數(shù)組(Receive[count])中,接著,接收數(shù)據(jù)計數(shù)器(count)開始增1操作,并判斷計數(shù)值是否等于8,如果等于8,則計數(shù)器清零且將接收完畢的標(biāo)志位(flag_finish)置1;如果計數(shù)值不等于8,則繼續(xù)接收,直到8個數(shù)據(jù)接收完畢。
如圖3所示,永磁同步電機主控制器DSP的定時器中斷采用100ms的運算周期,對于輸出到觸摸屏上顯示數(shù)據(jù)的刷新頻率是1s;對于接收來自觸摸屏的設(shè)置數(shù)據(jù)的刷新頻率是300ms。在進入定時器中斷之后,首先判斷接收完畢的標(biāo)志位(flag_finish)是否等于1,如果不等于1,說明串口并未接收8個數(shù)據(jù)完畢,則繼續(xù)接收;如果標(biāo)志位(flag_finish)等于1,則表示接收8個數(shù)據(jù)完畢,接下來要對接收的數(shù)據(jù)進行解析。按照Modbus RTU協(xié)議要求,首先判斷數(shù)組(Receive[8])中的第二個數(shù)(Receive[1])是否為功能碼3或者功能碼6,如果Receive[1]等于功能碼3,則表示讀寄存器操作,即把顯示的數(shù)據(jù)輸出到觸摸屏上進行顯示。如果Receive[1]等于功能碼6,則表示寫寄存器操作,即接收來自觸摸屏上設(shè)置的數(shù)據(jù)。如果Receive[1]等于功能碼3,顯示計數(shù)器(Displaycount)增1,當(dāng)顯示計數(shù)器(Displaycount)等于10時,即表示達到1s的顯示刷新頻率,把要輸出到觸摸屏上顯示的數(shù)據(jù)分類,第一類為實時變化的數(shù)據(jù),均為數(shù)值型變量,如永磁同步電機系統(tǒng)運行時的直流電壓值、三相輸出電流值、實際電機轉(zhuǎn)速值等通過邏輯與運算拆分成高低字節(jié)的形式;第二類為系統(tǒng)的故障數(shù)據(jù),此類數(shù)據(jù)為開關(guān)型變量,為了縮短傳輸時間,優(yōu)化通信程序,將這類開關(guān)量通過按位移項操作,合并成若干個數(shù)值型變量發(fā)送出去,這類數(shù)據(jù)具體包括直流電壓過壓保護、輸出電流保護、脈沖保護、通信保護、主回路保護、電機保護等永磁同步電機運行時的關(guān)鍵故障信息。第三類為永磁同步電機系統(tǒng)狀態(tài)的開關(guān)量數(shù)據(jù),也將此類信息通過按位移項操作合成數(shù)值型變量發(fā)送,此類數(shù)據(jù)包括輸入開關(guān)狀態(tài)、預(yù)充電電路狀態(tài)等。按照Modbus RTU協(xié)議的要求,將顯示的數(shù)據(jù)值與設(shè)備地址、命令、字節(jié)數(shù)、CRC校驗位等數(shù)據(jù)依次存入發(fā)送數(shù)組,再將此數(shù)組送入響應(yīng)數(shù)據(jù)輸出環(huán)節(jié),接著將讀寫控制引腳置高電平,由于顯示的數(shù)據(jù)量很大,則需要延時1ms,數(shù)組發(fā)送完畢之后,再將讀寫控制引腳置低電平,以便下一次顯示輸出。上述過程為永磁同步電機輸出到觸摸屏上顯示數(shù)據(jù)的過程。如果Receive[1]等于功能碼6,則表示接收來自觸摸屏的速度控制數(shù)據(jù)、關(guān)鍵參數(shù)、控制指令。設(shè)置計數(shù)器(Setcount)增1,當(dāng)顯示計數(shù)器(Setcount)等于3時,即表示達到300ms的刷新頻率,首先接收來自觸摸屏的高低字節(jié)分開的參數(shù)值,進行左移及邏輯或操作合并在一起。速度控制模塊的關(guān)鍵參數(shù),此環(huán)節(jié)的所有數(shù)據(jù)為永磁同步電機運轉(zhuǎn)的前提。其次,接收來自觸摸屏的關(guān)鍵參數(shù)設(shè)置,如速度調(diào)節(jié)器參數(shù)電流調(diào)節(jié)器參數(shù)電流濾波器和電壓濾波器的濾波時間常數(shù)等。這些參數(shù)可以使調(diào)試人員在線修改,便于永磁同步電機控制。最后接收來自觸摸屏的關(guān)鍵指令設(shè)置,如永磁同步電機的啟動與停車指令、正轉(zhuǎn)反轉(zhuǎn)切換指令、開環(huán)控制和閉環(huán)控制切換指令等,將這些開關(guān)量類的控制指令移位并組合成若干個數(shù)值型變量。將上述三類設(shè)置的數(shù)據(jù)值與設(shè)備地址、命令、字節(jié)數(shù)、起始地址、CRC校驗位等數(shù)據(jù),依次存入發(fā)送數(shù)組后,再將此數(shù)組送入響應(yīng)數(shù)據(jù)輸出環(huán)節(jié),接著將讀寫控制引腳置高電平,由于設(shè)置的數(shù)據(jù)量很大,則需要延時1ms,數(shù)組發(fā)送完畢之后,再將讀寫控制引腳置低電平。上述過程為永磁同步電機從觸摸屏上讀取設(shè)置數(shù)據(jù)的過程。
通過在永磁同步電機控制板主控制器DSP28335中編程將圖2所示的串口接收中斷和圖3所示定時器中斷的相結(jié)合的方法共同實現(xiàn)了永磁同步電機控制系統(tǒng)與觸摸屏雙向數(shù)據(jù)交互。