永磁同步電機控制系統(tǒng)的串行通信實現(xiàn)
在開發(fā)一套以DSP為核心的永磁同步電機控制系統(tǒng)時,需要及時觀察驅(qū)動系統(tǒng)中的各個變量,同時還要對一些程序進行控制,修改特定參數(shù)。DSP在實際運行中不能用外接的端口進行控制,需要用DSP自帶的串行通信模塊來解決這一問題。通過一臺上位計算機和以DSP為核心的電機控制系統(tǒng)構(gòu)成整個監(jiān)控系統(tǒng),Pc機通過串口來改變DSP程序中轉(zhuǎn)矩、磁鏈給定,以及調(diào)節(jié)PI參數(shù)等,電機控制系統(tǒng)完成對電機的控制,并采集相關(guān)數(shù)據(jù)反饋到Pc機中進行分析、處理、顯示和存儲。本文以DSP控制永磁同步電機為例,介紹在整個控制系統(tǒng)中串行通信的實現(xiàn)。
本文引用地址:http://butianyuan.cn/article/162475.htm1 永磁同步電機控制系統(tǒng)
永磁同步電機控制系統(tǒng)框圖如圖1所示,采用直接轉(zhuǎn)矩控制方法,這是19世紀(jì)80年代提出的交流電機高性能控制策略。本控制系統(tǒng)是一個速度和轉(zhuǎn)矩的雙閉環(huán)控制系統(tǒng)。系統(tǒng)利用電壓、電流傳感器檢測直流母線電壓Vdc。及定子二相電流i 和i ,通過坐標(biāo)變換將定子三相坐標(biāo)系中的電壓、電流變量轉(zhuǎn)換為α-β靜止定子坐標(biāo)系中的二相分量。將由磁鏈及轉(zhuǎn)矩觀測器得到的定子磁鏈、轉(zhuǎn)矩實際值作為反饋量,與磁鏈、轉(zhuǎn)矩給定值進行比較,所得到的誤差信號通過磁鏈、轉(zhuǎn)矩調(diào)節(jié)器的滯環(huán)控制單元后,獲得0、1控制信號,再綜合考慮當(dāng)前定子磁鏈所在的區(qū)域,選擇適當(dāng)?shù)碾妷嚎諉柺噶靠刂贫ㄗ哟沛湹男D(zhuǎn)速度及方向,即可直接快速地實現(xiàn)轉(zhuǎn)矩調(diào)節(jié)。
如果試驗人員能夠及時地觀測并調(diào)節(jié)轉(zhuǎn)矩、磁鏈、電壓、電流等控制參數(shù),將會極大地提高電機控制系統(tǒng)的開發(fā)效率。
2 串行通信的實現(xiàn)
PC機與DSP串行通信的實現(xiàn)包括三個部分,即硬件設(shè)計、上位機程序設(shè)計、下位機程序設(shè)計。
2.1 串行通信硬件設(shè)計
從本試驗平臺實際需要考慮,采用RS-232實現(xiàn)PC機與DSP的數(shù)據(jù)傳輸?,F(xiàn)在RS。232的通信端口是每臺計算機上的必要配置,通常含有COM1和 COM2兩個端口,所以能很方便地把上位機與下位機連接起來,實現(xiàn)計算機對生產(chǎn)現(xiàn)場的監(jiān)測和控制。圖2是TMS320LF2407串行通信接1:1電路 [1]。該電路采用了符合RS-232標(biāo)準(zhǔn)的驅(qū)動芯片MAX232進行串行通信。MAX232芯片功耗低,集成度高,+5 V供電,具有2個接收和發(fā)送通道。由于TMS320LF2407采用+3.3 V供電,需要將5 V的1tI1L電平變換為3.3 V高電平,整個接口電路簡單,可靠性高。
2.2 上位機程序設(shè)計
Delphi是一種面向?qū)ο蟮目梢暬幊坦ぞ撸瑩碛泄δ軓姶蟮募砷_發(fā)環(huán)境和速度極快的編譯器,兼具Visual C++的強大功能和VB易學(xué)易用的特點。通過安裝MSComm控件,可在Delphi環(huán)境下方便地實現(xiàn)串行通信[2]。MSComm提供了兩種處理通信問題的方法:一種是事件驅(qū)動法,一種是查詢法。本系統(tǒng)選用事件驅(qū)動法,該方法程序響應(yīng)及時,可靠性高。只要了解使用MSComm的屬性及事件的用法就可以實現(xiàn)對串口的操作。
其主要屬性有 :
(1)eommport屬性,用于設(shè)置并返回連接的串行端口號;
(2)settings屬性,以字符形式設(shè)置并返回串口的波特率、奇偶校驗、數(shù)據(jù)位、停止位參數(shù);
(3)po~open屬性,用于設(shè)置或返回通信連接端口的狀態(tài);
(4)input屬性,用于從輸入緩沖區(qū)返回并刪除字符;
(5)output屬性,用于將要發(fā)送的數(shù)據(jù)輸入傳輸緩沖區(qū);
(6)inputlen屬性,用于指定由串行端I:I讀入的字符串長度或字節(jié)數(shù);
(7)handshaking屬性,用于指定通信雙方的握手協(xié)議;
(8)rthreshold屬性,用于設(shè)置或返回引發(fā)接收事件的字節(jié)數(shù);
(9)sthreshold屬性,用于設(shè)置并返回傳輸緩沖區(qū)中允許的最小字符數(shù);
(10)commevent屬性,在通信錯誤或事件發(fā)生時都會產(chǎn)生oncomm事件;
(11)inbufercount屬性,用于接收緩沖區(qū)中的字符數(shù);
(12)inputmode屬性,用于設(shè)置或返回input屬性取回數(shù)據(jù)的類型。
程序設(shè)計中首先要對MSComm進行初始化,可以雙擊MSComm控件設(shè)置,也可以在程序中修改。
本系統(tǒng)根據(jù)需要自行設(shè)計了通信協(xié)議。
(1)幀分為兩類,即控制幀和數(shù)據(jù)幀。控制幀為上位機發(fā)出的控制命令,數(shù)據(jù)幀為上、下位機的實時數(shù)據(jù)。
(2)上位機對下位機通信中的控制幀,格式都是一個字節(jié),定義如下:AA為下位機發(fā)送數(shù)據(jù);AB為下位機接收數(shù)據(jù);AC為下位機停止發(fā)送
(3)數(shù)據(jù)幀為兩個字節(jié),數(shù)據(jù)范圍是0~65535,滿足了數(shù)據(jù)要求。
例如,把電機磁鏈設(shè)置為200,該通信命令由4個字節(jié)組成,數(shù)據(jù)格式為AB0400C8。其中:AB為控制幀,04代表磁鏈,00C8為數(shù)據(jù)幀。每個字節(jié)包含1個起始位、1個停止位、8個數(shù)據(jù)位,這些都是隱藏在底層程序中的,在實際應(yīng)用中用戶只需在通信界面上設(shè)置磁鏈值200,然后單擊“n發(fā)送”按鈕即可實現(xiàn)該命令。圖3為PC機發(fā)送數(shù)據(jù)流程圖。
評論