高玉
(西安鐵路職業(yè)技術(shù)學(xué)院 電子信息學(xué)院,陜西 西安 710014)
在線監(jiān)控系統(tǒng)通過檢測傳感器對儀器設(shè)備的各類信號進行數(shù)據(jù)采集,并將數(shù)據(jù)上傳給使用者,使用者可通過參數(shù)設(shè)置改變儀器狀態(tài)[1]。近年來,隨著網(wǎng)絡(luò)通信技術(shù)的成熟,在線監(jiān)控系統(tǒng)已在工業(yè)監(jiān)控和水質(zhì)質(zhì)量監(jiān)控等諸多領(lǐng)域得到了廣泛運用[2]。
磁懸浮控制器在線監(jiān)控系統(tǒng)主要應(yīng)用于磁懸浮轉(zhuǎn)子試驗臺[3]。一方面可將控制器采集的磁懸浮轉(zhuǎn)子系統(tǒng)的監(jiān)測數(shù)據(jù)傳輸給個人計算機(PC),展現(xiàn)給用戶;另一方面用戶可遠程在線修改控制器的控制參數(shù),從而閉環(huán)控制轉(zhuǎn)子狀態(tài)[4]。相比現(xiàn)場監(jiān)控磁懸浮控制器,在線監(jiān)控主要具備以下優(yōu)點:首先使用電子設(shè)備代替人力與器具進行監(jiān)控,可以降低監(jiān)控的成本,提高數(shù)據(jù)準(zhǔn)確率;其次在線監(jiān)控系統(tǒng)可以實時完成數(shù)據(jù)的傳輸,大量減少系統(tǒng)的調(diào)試時間;最后在線監(jiān)控系統(tǒng)可使用戶遠程監(jiān)控多臺磁懸浮轉(zhuǎn)子平臺,提高效率,降低成本[5]。
在線監(jiān)控系統(tǒng)大多采用串行接口進行傳輸,該方式的數(shù)據(jù)傳輸速率較低且傳輸范圍較小:使用RS-232可支持的最大傳輸速率是20 kb/s,最大傳輸距離僅為15 m,易受環(huán)境干擾[6]。為解決這一問題,本文設(shè)計了基于工業(yè)以太網(wǎng)通信的磁懸浮轉(zhuǎn)子監(jiān)控系統(tǒng)。相比以往系統(tǒng),該系統(tǒng)可實現(xiàn)遠距離監(jiān)控,大幅提高了在線監(jiān)控的數(shù)據(jù)傳輸效率,實現(xiàn)了預(yù)期的功能設(shè)計要求。
本文設(shè)計并搭建了基于工業(yè)以太網(wǎng)通信的磁懸浮轉(zhuǎn)子在線監(jiān)控系統(tǒng)。一方面,可通過上位機PC實時追蹤磁懸浮轉(zhuǎn)子橫向及垂直方向的位移及功率放大器輸出電流等關(guān)鍵數(shù)值,檢測轉(zhuǎn)子的狀態(tài)是否異常;另一方面,可對PID控制的比例系數(shù)、積分系數(shù)和微分系數(shù)進行實時調(diào)整,調(diào)整系統(tǒng)運轉(zhuǎn)狀態(tài)。經(jīng)測試,該監(jiān)控系統(tǒng)通信正常、工作穩(wěn)定,可實現(xiàn)控制數(shù)據(jù)遠距離、高速率和高穩(wěn)定性的傳輸。
磁懸浮控制器在線監(jiān)控系統(tǒng)的設(shè)計架構(gòu)如圖1所示。磁懸浮控制器在線監(jiān)控系統(tǒng)的主體部分為磁懸浮轉(zhuǎn)子系統(tǒng),該系統(tǒng)由異步電機通過聯(lián)軸器驅(qū)動轉(zhuǎn)子高速旋轉(zhuǎn)。轉(zhuǎn)子由一對徑向磁懸浮軸承支承,軸向上利用聯(lián)軸器限制其運動。在轉(zhuǎn)子兩端靠近軸承的位置安裝有位移傳感器。位移傳感器對轉(zhuǎn)子的位移數(shù)據(jù)進行測量,并將位移數(shù)據(jù)和從PWM數(shù)字開關(guān)功效模塊反饋來的電流數(shù)據(jù)進行前置調(diào)理、A/D轉(zhuǎn)換,傳送給DSP控制器。同時,DSP控制器分別通過PID閉環(huán)控制轉(zhuǎn)子的位移和功放的電流。
圖1 系統(tǒng)整體架構(gòu)設(shè)計圖
在線監(jiān)控系統(tǒng)實物連接圖如圖2所示。
圖2 在線監(jiān)控系統(tǒng)實物連接圖
在線監(jiān)控系統(tǒng)軟件設(shè)計中,以工業(yè)以太網(wǎng)作為傳輸方式,分別進行上位機PC和下位機DSP的在線監(jiān)控程序編寫,實現(xiàn)了磁懸浮控制器中儲存的系統(tǒng)位移、電流狀態(tài)信息傳輸給PC以及將PID控制參數(shù)傳輸給DSP等主要功能。
在線監(jiān)控軟件整體架構(gòu)如圖3所示。上位機為監(jiān)控系統(tǒng)的服務(wù)器端,相關(guān)程序在PC機運行,采用LabVIEW軟件進行相關(guān)程序的編寫;下位機為系統(tǒng)客戶端,相關(guān)程序在DSP運行,在CCS7.1.0中使用C語言進行編寫。上、下位機共同完成監(jiān)測數(shù)據(jù)傳輸和控制數(shù)據(jù)傳輸兩項功能。
圖3 軟件結(jié)構(gòu)框圖
2.2.1 下位機程序設(shè)計
下位機程序的設(shè)計框圖如圖4所示。首先定義程序全局變量以及IP地址、子網(wǎng)掩碼等通信信息,并對DSP和W5300分別進行初始化配置;接下來程序的主體部分進行接收數(shù)據(jù)與發(fā)送數(shù)據(jù)兩個函數(shù)的循環(huán),以保證在線監(jiān)測的實時性。兩個函數(shù)具體實現(xiàn)先建立TCP連接,再將數(shù)據(jù)發(fā)送到緩存區(qū)或?qū)⒕彺鎱^(qū)的數(shù)據(jù)讀取的功能。
圖4 下位機程序設(shè)計框圖
2.2.2 上位機程序設(shè)計
上位機監(jiān)測數(shù)據(jù)傳輸程序由LabVIEW軟件進行編寫,程序流程為:
(1)根據(jù)IP地址和TCP端口號不斷向下位機發(fā)送建立連接的請求信息。
(2)連接成功后,通過While循環(huán)接收下位機傳輸?shù)谋O(jiān)測數(shù)據(jù),存儲數(shù)據(jù)并通過波形圖顯示實時數(shù)據(jù)圖像。
(3)若傳輸產(chǎn)生錯誤信息或者點擊停止按鈕后跳出循環(huán),斷開TCP連接,并顯示錯誤代號與原因。
(4)完成數(shù)據(jù)傳輸后斷開TCP連接。
根據(jù)實際應(yīng)用需求,需要將磁懸浮轉(zhuǎn)子試驗臺傳感器監(jiān)測到的狀態(tài)信息不斷上傳到PC機端進行觀測與處理。由于數(shù)據(jù)產(chǎn)生頻率大,需要將一定時間段內(nèi)接收到的數(shù)據(jù)打包上傳給PC。具體實現(xiàn)方法如下:
(1)對數(shù)據(jù)進行格式轉(zhuǎn)換:由于監(jiān)測數(shù)據(jù)格式為占用空間較大的64位浮點數(shù),若直接傳輸則會影響傳輸速率,因此傳輸前先將浮點數(shù)轉(zhuǎn)化成為16位定點數(shù),即每個數(shù)據(jù)乘上215取整,在LabVIEW接收到數(shù)據(jù)后再除以215還原。這樣可以提高傳輸速率,確定每個數(shù)據(jù)的位數(shù),同時產(chǎn)生的誤差也很小。
(2)下位機分包發(fā)送數(shù)據(jù):每包中有X+1個16位數(shù)據(jù),其中第一位為標(biāo)識字符串“si”,后X個數(shù)據(jù)為監(jiān)測數(shù)據(jù)的ASCⅡ碼。
(3)上位機接收數(shù)據(jù)包:建立數(shù)據(jù)接收模塊,打開TCP連接,進入接收數(shù)據(jù)While循環(huán)中,不斷查找“si”標(biāo)識符信息。若發(fā)現(xiàn)“si”則進入到接收數(shù)據(jù)模塊,一次讀取X個數(shù)據(jù)的ASCⅡ碼,依次進行將ASCⅡ碼轉(zhuǎn)化為對應(yīng)的十六進制數(shù)字,再將數(shù)字轉(zhuǎn)化成字符串格式,最終字符串轉(zhuǎn)化為十進制數(shù)字的處理,將所得十進制數(shù)組輸入到實時波形圖與整體波形圖表中,最終關(guān)閉TCP連接。
控制數(shù)據(jù)傳輸程序?qū)崿F(xiàn)的目標(biāo)是用戶可以在LabVIEW中輸入PID控制的參數(shù),并實時傳輸給控制器進行控制調(diào)整,程序設(shè)計如下:
上位機程序設(shè)計中,控制數(shù)據(jù)幀的第一位為標(biāo)識符“#”,由于控制數(shù)據(jù)位數(shù)不確定,因此每個數(shù)據(jù)之間采用“*”作為間隔標(biāo)識符。建立TCP連接后,每次修改參數(shù)后向控制器發(fā)送(“#”+比例系數(shù)+“*”+積分系數(shù)+“*”+微分系數(shù))的數(shù)據(jù)幀。
下位機程序設(shè)計中,建立TCP連接,recv(SOCKET s, uint8 * buf, uint32 len)函數(shù)將一組數(shù)據(jù)接收到一個暫存數(shù)組中。接下來進行標(biāo)識符識別,若第一位為“#”,則進入PID數(shù)據(jù)接收循環(huán)中,將“#”號與接收字符串查詢到的首個星號之間的存儲為比例系數(shù)P,將首個“*”與查詢到的下個“*”之間的數(shù)據(jù)存儲為積分系數(shù)I,將第二個“*”與查詢到的第三個“*”之間的數(shù)據(jù)存儲為微分系數(shù)D。通過數(shù)據(jù)提取,可實現(xiàn)DSP對控制參數(shù)的接收。
磁懸浮控制器在線監(jiān)控程序中需要對磁懸浮軸承的位移變量和功放的電流數(shù)據(jù)進行監(jiān)測,并通過實時傳輸控制參數(shù)調(diào)整控制變量。圖5所示為一組位移監(jiān)測數(shù)據(jù)和兩組電流監(jiān)測數(shù)據(jù)的接收圖像,每個數(shù)據(jù)包包含1 000個監(jiān)測數(shù)據(jù)。在該測試中,上位機與下位機間隔相距3 km,且數(shù)據(jù)傳輸穩(wěn)定,環(huán)境干擾小。
接下來對每包大小與傳輸速率間的關(guān)系進行測試,結(jié)果如表1所示。隨著數(shù)據(jù)包包含數(shù)據(jù)個數(shù)的增長,傳輸速率也有明顯的增長,但數(shù)據(jù)實時性會受到影響。
圖5 三組磁懸浮平臺實際信號在線監(jiān)測圖
表1 數(shù)據(jù)包大小與傳輸速率的關(guān)系
將監(jiān)測數(shù)據(jù)接收與控制數(shù)據(jù)發(fā)送程序整合在一起,設(shè)計了在線監(jiān)控平臺界面,如圖6所示。在該界面中,用戶可實時接收兩組位移數(shù)據(jù)及四組電流數(shù)據(jù),用戶還可實時發(fā)送控制參數(shù),并觀測控制參數(shù)變化對系統(tǒng)狀態(tài)的影響,實現(xiàn)在線監(jiān)控功能。此外,用戶可將數(shù)據(jù)存儲在相應(yīng)文件中,用于后續(xù)數(shù)據(jù)分析。
圖6 磁懸浮控制器在線監(jiān)控界面
本文針對既有的磁懸浮控制器在線監(jiān)控系統(tǒng)數(shù)據(jù)傳輸速率慢和傳輸距離短等不足,設(shè)計了基于工業(yè)以太網(wǎng)的磁懸浮控制器在線監(jiān)控系統(tǒng)。首先對監(jiān)控系統(tǒng)整體架構(gòu)進行設(shè)計,接下來針對監(jiān)測數(shù)據(jù)傳輸及控制數(shù)據(jù)傳輸軟件分別進行設(shè)計,上位機軟件采用LabVIEW編寫,下位機軟件采用CCS7.1.0編寫。最終將監(jiān)測與控制軟件進行合并,設(shè)計了在線監(jiān)控用戶界面,用戶可實時接收位移及電流數(shù)據(jù)并發(fā)送控制參數(shù),觀測控制參數(shù)變化對系統(tǒng)狀態(tài)的影響,實現(xiàn)在線監(jiān)控功能。經(jīng)測試,該系統(tǒng)可進行遠距離數(shù)據(jù)傳輸,傳輸速率可達2.3 Mb/s,且受環(huán)境干擾小,滿足設(shè)計需求。