涂文特
(貴州航天林泉電機有限公司,貴州貴陽550000)
?
基于LIN通信與Labview平臺的電機控制上位機系統(tǒng)設計
涂文特
(貴州航天林泉電機有限公司,貴州貴陽550000)
摘要:在Labviw平臺下,通過解析LIN通信LDF格式數(shù)據(jù)庫與文本配置文件,搭建電機控制上位機程序框架,設計了一款能夠實現(xiàn)電機系統(tǒng)正常控制、狀態(tài)顯示、耐久試驗、數(shù)據(jù)記錄、波形顯示與存儲等功能的上位機軟件。該控制系統(tǒng)具備性能穩(wěn)定、低成本、高效率、高靈活性、可移植性優(yōu)異等優(yōu)點,可靈活應用于各種數(shù)據(jù)采集及處理項目中,解決了系統(tǒng)設計復雜和移植困難等問題,使用狀況驗證了該系統(tǒng)的合理性與實用性。
關鍵詞:LabviewLIN電機控制上位機
0引言
電機設計完成后,還需經過樣機試制,經過測試找出電機性能上的偏差,進而進行測試、調試、定型[1]。因此除了要對電機和控制器系統(tǒng)進行研制外,還需增加上位機控制系統(tǒng),輔助完成對電機及控制器的日常和耐久測試,并按需保存試驗數(shù)據(jù)及波形。常見的控制系統(tǒng)上位機通常采用MFC、Labview、QT等平臺搭建設計[2,3]。其中MFC和QT平臺采用C++語言進行編程,而Labview平臺則采用圖形化編程的G語言方式進行設計,且提供了豐富的擴展函數(shù)庫,廣泛應用于軍事、航天、航空等領域。LIN 是一種基于UART/SCI(通用異步收發(fā)器/串行通信接口)的低成本串行通信協(xié)議。該通信方式具備一主多從網絡節(jié)點、低成本、配置簡單、可預測EMC等特點,廣泛應用于汽車上低速通信部分,且提供信號處理、配置、識別和診斷功能。通過LIN通信方式在Labview平臺上搭建數(shù)據(jù)采集(DAQ)系統(tǒng),以實現(xiàn)電機運行參數(shù)采集和進行環(huán)境耐久試驗,控制系統(tǒng)具備開發(fā)簡單、可移植性強等優(yōu)點。
1程序框架設計
電機控制上位機主要實現(xiàn)與電機控制器的通信功能,并能發(fā)送電機啟停、給定速度、數(shù)據(jù)記錄、波形顯示等功能。以某電機控制平臺為例,上位機系統(tǒng)應具備圖1中程序框架內的實體內容。在登錄界面中設置波特率、COM口、LDF數(shù)據(jù)庫路徑等參數(shù)。工作模式可在手動與自動模式之間進行切換。手動模式下可完成電機正常性能測試,當需實現(xiàn)某項耐久環(huán)境類型的試驗時,可切換到自動模式以達到無人值守等功能。此外,在上位機界面上應具備電機實時狀態(tài)反饋,方便試驗人員觀察電機運行參數(shù)及波形。
圖1 上位機程序框架
2主要難點及LIN節(jié)點設計
2.1主要難點
編寫類似電機數(shù)據(jù)采集類型的上位機時,通常存在以下難點:
(1)多線程編程的處理
上位機平臺需要實時更新電機運行狀態(tài)參數(shù),并顯示電機參數(shù)波形和存儲數(shù)據(jù)。通常需要調用多項函數(shù),較復雜的多線程處理以及函數(shù)的可重入性容易遺留過多的錯誤機制處理,過多的占用系統(tǒng)內存。
(2)可移植性差
編寫好一個上位機控制平臺后,由于通信協(xié)議字長、內容等的改變,需要花費較大的精力去修改數(shù)據(jù)處理、波形顯示、協(xié)議更新等函數(shù)。
(3)開發(fā)周期長
通常一個項目的控制器上位機開發(fā)需要一個月或者數(shù)月的時間才能完成數(shù)據(jù)庫的搭建、信號的存儲等功能。
2.2LIN節(jié)點設計
LIN規(guī)范提供了開放式的API函數(shù),通常下位機系統(tǒng)硬件上只需支持UART接口即可實現(xiàn)LIN通信功能。硬件上可使用UART接口連接LIN收發(fā)器(常見的如TJA1021等)。軟件上依次調用LIN規(guī)范提供的API函數(shù),調用l_sys_init()函數(shù)完成初始化功能,調用l_sfc_read_statu()函數(shù)完成狀態(tài)讀取,調用l_ifc_connect()函數(shù)完成接口連接,調用l_sch_set()函數(shù)完成進度表的調度。
3具體功能實現(xiàn)
3.1LDF文件讀取
LIN數(shù)據(jù)庫文件可簡稱LDF文件。如下所示,LDF文件主要定義LIN協(xié)議版本號、配置語言版本號、總線速率、節(jié)點、信號、幀、調度表等內容。
{
LIN_protocol_version = "2.1"; //協(xié)議版本
LIN_language_version = "2.1"; //配置語言版本
LIN_speed = 9.6 kbps; //總線速率
Nodes{ } //節(jié)點
Signals{ } //信號
Frames{ } //幀
Schedule_tables{ } //調度表
}
圖2 匹配模式處理
在Labview平臺下可通過建立配置文件,寫入LDF文件路徑,然后打開、讀取文本文件并建立匹配模式,運用正則表達式[4-5]提取需要的信息并打包成簇。如圖2所示,讀取LDF文本文件之后,通過調用匹配模式函數(shù)去除“/*”和“*/”之間的注釋內容,并輸入到后續(xù)接口。同理可按照此辦法提取信號、幀等關鍵信息作為后續(xù)控制的輸入參數(shù)。
3.2LIN通信建立
圖3 建立LIN通信
項目中采用了NI公司的USB8476S作為LIN通信與上位機平臺的通信設備,Labview中提供了支持該設備打開LIN通信信道的vi函數(shù)用于調用。如圖3所示通過ncOpen.vi、ncSetAttr.vi和ncAction.vi函數(shù)即可完成對LIN通信的開始和錯誤處理。通過調用Labview中LIN通信子程序vi并按照LIN協(xié)議的通信標準可分別完成總線參數(shù)設置、總線數(shù)據(jù)寫入、總線數(shù)據(jù)讀出、總線關閉等步驟。
3.3波形顯示及存儲
Labview平臺提供了波形圖表圖形控件,只需將獲取到的數(shù)據(jù)添加到原圖形中,即可實現(xiàn)獲取數(shù)據(jù)的實時波形顯示。正常情況下電機控制需要將速度設定、啟動控制、母線電壓、電流、運行狀態(tài)、保護狀態(tài)等逐一顯示出來。如圖4所示,通過設定波形圖表顯示參數(shù),即可建立各參數(shù)坐標軸及名稱坐標軸,簡單直接。
圖4 波形前面板樣式
3.4電機控制及狀態(tài)前面板設計
在電機控制前面板上,需完成對電機啟動、給定速度以及電機控制器反饋的電機實際運行速度、電壓、電流、溫度等參數(shù)。通過在工具選板上拖拽布爾、字符型控件即可搭建圖5所示的控制前面板。
圖5 控制前面板
3.5功能調度
由于LIN通信[8]采用一主多從的方式,其通信具備自己的特點。圖6所示,主機任務主要有:調度總線上幀的傳輸次序、監(jiān)測數(shù)據(jù)、作為標準時鐘參考、處理錯誤、接收從機節(jié)點發(fā)出的總線喚醒命令。從機任務不能夠主動發(fā)送數(shù)據(jù),需要接收主機發(fā)送的幀頭(即幀的起始部分),根據(jù)幀頭所包含的信息判斷是否發(fā)送應答(即幀中除幀頭外剩下的部分),接收應答;既不接收也不發(fā)送應答。以某項目為例,若主節(jié)點ID為0x01,從節(jié)點ID為0x02,則主節(jié)點在完成主任務時通過發(fā)送幀頭為0x01后,在總線上添加主任務數(shù)據(jù)幀。同理當主節(jié)點往總線上發(fā)送了從節(jié)點任務后,從節(jié)點應及時響應并發(fā)送從節(jié)點數(shù)據(jù)幀。
因此電機控制上位機系統(tǒng)應具備發(fā)送通信主幀、發(fā)送從機通信頭幀、獲取從機數(shù)據(jù)、顯示從機數(shù)據(jù)、顯示從機波形圖、存取相關參數(shù)、獲取控制狀態(tài)、改變控制狀態(tài)等功能。由于Labview滿足多線程工作,系統(tǒng)通過建立兩個while循環(huán)分別實現(xiàn)通信和數(shù)據(jù)處理功能,并在通信和數(shù)據(jù)處理功能內細分處理數(shù)據(jù)接收和發(fā)送、數(shù)據(jù)處理和波形顯示功能。
圖6 LIN總線拓撲圖
3.6自動模式簡介
圖7 模式詳情
當切換到自動模式下,可通過條件結構更改條件參數(shù),選擇相應條件下的數(shù)據(jù)配置數(shù)組,并整合成簇文件,輸入到后續(xù)通信內容中。模式詳情數(shù)組如圖7所示。建立好模式詳情數(shù)組后,上位機按照所給定的時間、轉速、啟停指令,依次發(fā)送給電機控制下位機。下位機根據(jù)實時通信指令控制電機的運行。
4試驗驗證
由于LIN總線支持一主多從網絡通信,因此可在總線上連接少于16個的從節(jié)點[6-7]。如圖8,搭建通信測試系統(tǒng),上位機控制系統(tǒng)選擇PC平臺即可,通過USB口連接到LIN總線上,并使用第三方檢測設備測試總線數(shù)據(jù)。其中第三方檢測軟硬件采用Vector公司的CANoe診斷工具。通過第三方軟硬件可方便的測試出總線上的數(shù)據(jù),并診斷錯誤幀及通信時序。下位機控制器應具備LIN通信功能,并及時上傳電機運行相關數(shù)據(jù)。波特率可設置在20 kbps以下,通信周期選擇10 ms每幀。
圖8 通信測試
圖9 CANoe配置
CANoe配置如圖9所示,通過加載LDF數(shù)據(jù)庫文件,鼠標右鍵選擇主節(jié)點Master和從節(jié)點Slave處于非激活狀態(tài)。
圖10 實測波形圖
以某電機控制器為例,測試結果波形圖如圖10,可以清楚的在波形圖上看到指令變化和實時數(shù)據(jù)波形,例如母線電壓(Voltage)波動,速度(Speed)波動等。在CANoe軟件上通過在trace窗口也能夠實時的觀察總線數(shù)據(jù)。整套系統(tǒng)工作穩(wěn)定可靠,可以正確的實現(xiàn)電機控制上位機指令的發(fā)送及總線數(shù)據(jù)的保持與處理。且整套系統(tǒng)圖形化編程過程明朗,配置簡單。通過修改配置文件即可實現(xiàn)其他LIN協(xié)議或者通信方式的上位機制作,有較好的工程實踐性。
5結論
通過Labview平臺設計電機控制上位機系統(tǒng)具備開發(fā)周期短、性能穩(wěn)定等優(yōu)點,且能夠很好的移植到各種嵌入式平臺。LIN通信作為一種單總線通信方式,具備一主多從、高EMC可靠性、診斷方便、規(guī)范開放的優(yōu)點,能夠很好的應用于電機控制及各種儀表器盤控制領域。在Labview平臺下,通過讀取LIN配置文件,解析并處理通信數(shù)據(jù)具備經濟實用等優(yōu)點。采用軟件編寫的上位機可替代專有的控制測試設備,并且可擴充接入多項傳感器數(shù)據(jù)的采集。本系統(tǒng)已長期應用于某電機控制器產品的控制,系統(tǒng)穩(wěn)定。
參考文獻
[1]孫譯文. 基于LABVIEW軟件的數(shù)據(jù)采集與分析系統(tǒng)設計[J].電工電氣,2010(1)16-18,21.
[2]吳勇,熊振華,等.基于RTX和MFC的后封裝平臺數(shù)據(jù)采集和控制系統(tǒng)[J].系統(tǒng)工程與電子技術,2004,26(9):1257-1261.
[3]譚大鵬,李培玉,等.基于Qt/E的嵌入式工業(yè)監(jiān)測輕型圖形用戶界面構件庫開發(fā)[J].計算機集成制造技術,2009,15(2):399-405.
[4]楊忠仁,饒程,鄒建,等. 基于LABVIEW數(shù)據(jù)采集系統(tǒng)[J].重慶大學學報,2004,27(2):32-35.
[5]劉君華, 等. 虛擬儀器圖形化編程語言[M].西安:西安電子科技大學出版社,2010.
[6]張新豐,楊殿閣,陸良,等. LIN總線的動態(tài)調度算法設計與應用[J].農業(yè)機械學報,2009,40(3):21-25.
中圖分類號:TM306
文獻標識碼:A
文章編號:1002-6886(2016)03-0087-04
作者簡介:涂文特(1986-),男,工學碩士學歷,研究方向:電機驅動及伺服控制。
收稿日期:2015-10-27
Design of a host computer system for motor control based on LIN communication and Labview
TU Wente
Abstract:Through analysis of LDF and the text configuration file of LIN communication, we built a host computer program framework on Labview platform, and designed a host computer software with the functions of motor system control, status display, endurance test, data record and storage, waveform display, etc. The system has stable performance, low cost, high efficiency, high flexibility and good portability, thus can be used in various data collection and processing projects, and can solve the problems of complexity in design and difficulty in porting. The practice has confirmed the rationality and practicality of the system.
Keywords:Labview; LIN; motor control; host computer