趙維衛(wèi) 湯潔
摘 ?要:對于電機及控制器的調試工作,以往主要依賴于串口調試的預先寫入的數(shù)據(jù)幀測試用例與傳統(tǒng)編程語言編寫的上位機。前者在調試環(huán)節(jié)需要人為換算十六進制數(shù)據(jù)且缺少實時性;后者的軟件開發(fā)周期較長,對于不同控制器產(chǎn)品,程序不易改寫。本文設計了一種基于LabVIEW平臺的調試系統(tǒng),并使用電機及控制器產(chǎn)品搭建調試平臺進行驗證。測試結果表明,該調試系統(tǒng)具有模擬實際工況好、方便易用、改寫容易等優(yōu)點,還可以對控制器的不同研發(fā)階段進行針對性地調試。
關鍵詞:LabVIEW;調試系統(tǒng);電機控制器;VISA;上位機
1.引言
在智能制造2025與工業(yè)4.0浪潮不斷沖擊的今天,在電機控制領域,DSP等主控芯片引導的數(shù)字電路越來越普及,同時也對于快速調試電機控制器產(chǎn)品提出了更高的要求。在一個大型工程系統(tǒng)中,電機及其控制器通常作為一種子系統(tǒng)出現(xiàn),在不同工況下,系統(tǒng)期望的電機工作狀態(tài)也不盡相同,使用主控芯片作為下位機,接受并響應上位機下發(fā)的數(shù)據(jù)幀指令以控制電機的起動、停止及調整至要求的轉速,逐漸變?yōu)橐环N常見的工作模式。工程化應用中,如何快速模擬電機及控制器的實際使用工況,并快速有效地提高產(chǎn)品調試效率,加快產(chǎn)品研制進度,切實滿足用戶需求,具有著至關重要的意義。
以往較為常用的上位機通信軟件通常采用VC、VB等軟件,這類軟件的前面板顯示與操作控件需要單獨編寫腳本,研制周期較長,當上位機軟件需要應用于其他硬件產(chǎn)品時,軟件代碼改動較大,效率低下。與傳統(tǒng)軟件編寫平臺不同的是,LabVIEW采用圖形化編程,即G語言進行程序編寫。LabVIEW軟件的前面板,允許編寫者放置多種儀器單元模塊與控件,這種高度的儀器自定義能力,使得LabVIEW能夠完成編寫者指定的功能以及特殊的顯示需要。在程序框圖中,編寫者可以對控件和數(shù)據(jù)進行編輯和處理,采用數(shù)據(jù)流線框的方式代替文字編程的邏輯順序。本文基于LabVIEW軟件平臺,采用前面板與程序框圖相結合建立模板的方式,設計了一種面向電機控制領域通用化的軟件調試系統(tǒng)平臺,以實現(xiàn)高速高效的電機控制器調試工作。
2.上位機及電機控制器平臺組成
2.1軟件部分組成
以DSP芯片主控的控制器為例,該控制器調試系統(tǒng)的軟件部分由上位機調試軟件系統(tǒng)和控制器主控DSP芯片內置燒錄軟件構成,上位機在LabVIEW軟件平臺設計開發(fā)。下位機軟件在CCS3.3軟件平臺中設計開發(fā),燒錄在DSP芯片內部。整體框圖如圖1所示。
2.2硬件部分組成
調試系統(tǒng)包括如下幾個部分硬件,調試軟件系統(tǒng)所在的工控機、被測試的目標代碼所在的電機控制器以及與控制器相連的電機本體,硬件設備關系圖如圖2所示。
3.軟件部分程序設計
3.1軟件總體架構
調試軟件與控制器的交互方式采用控制器實時反饋,上位機對反饋的數(shù)據(jù)進行解析與顯示,當上位機需要下發(fā)指令時,在使用者需要的時刻對控制器發(fā)送數(shù)據(jù)幀,總體架構如圖3所示。
3.2VISA
VISA的全程是Virtual Instrument Software Architecture,其本質是I/O口規(guī)范的匯總。在Instrument I/O的Serial中選擇串口通信模塊,在串口通信中主要用到的VISA功能有:(1)VISA Configure Serial Port:對VISA進行初始化并編輯串口通信相關參數(shù);(2)VISA Write:將LabVIEW輸出緩沖區(qū)的數(shù)據(jù)發(fā)送到VISA串口緩沖區(qū);(3)VISA Read:將VISA串口緩沖區(qū)的數(shù)據(jù)讀取預先設定字節(jié)的數(shù)據(jù)并保存到計算機中;(4)VISA Bytes at Serial Port:查詢上述VISA Read預先設定的字節(jié)數(shù);(5)VISA Close:關閉串口資源;(6)VISA Set I/O Buffer Size:設置VISA串口資源緩沖區(qū)字節(jié)數(shù);(7)VISA Flush I/0 Buffer:清空VISA串口緩沖區(qū)。
3.3程序前面板操作界面設計
3.3.1程序主界面
程序主界面作為整個調試軟件系統(tǒng)的入口,力求簡潔明了,快速引導軟件使用者進行串口通信等相關設置作為調試準備,包括設置、實驗測試、仿真測試以及退出共四個選項,如圖4所示。當選擇前三個選項中的一個時,系統(tǒng)會打開一個新的頁面,執(zhí)行對應的子程序。
3.3.2“設置”子程序界面
設置子程序主要用于對VISA串口參數(shù)進行設置,包含讀取的物理串口序號、數(shù)據(jù)傳輸波特率、一個字節(jié)數(shù)據(jù)中包含的數(shù)據(jù)比特、奇偶校驗、停止位、數(shù)據(jù)流控制、未接收到串口數(shù)據(jù)報串口故障的最短時間和一幀數(shù)據(jù)包含的字節(jié)數(shù),如圖5所示。以上參數(shù)對于不同控制器對應的通信協(xié)議可以快速設定,對于較為常用的參數(shù)類型,可以對數(shù)據(jù)輸入控件右鍵點擊“當前值設為默認值”。設置完畢后,單擊“保存”按鈕,軟件會彈窗提示已經(jīng)設置成功,再次點擊“返回”回到程序主界面。
3.3.3“實驗測試”子程序界面
電機與控制器的調試環(huán)節(jié)集中在“實驗測試”子程序中,如圖6所示。當進入該界面時,VISA讀串口已經(jīng)執(zhí)行,調試系統(tǒng)可以實時接收并顯示控制器反饋的數(shù)據(jù)。在實際使用中,由于上位機下發(fā)的數(shù)據(jù)為十六進制數(shù)據(jù),下位機會嚴格執(zhí)行給定的電機轉速值,因此在開始試驗前,必須設置轉速上限值,當輸入給定的轉速值超過該值,實際發(fā)送的轉速給定指令會按照轉速上限值發(fā)出,以保護實驗人員與電機的安全。開始實驗時,點擊“啟動”按鈕,上位機就會發(fā)送啟動數(shù)據(jù)幀指令,作用等效于對轉速給定指令的使能開啟。然后輸入需要的電機轉速值,并點擊“轉速給定”按鈕,此時控制器就會響應指令驅動電機旋轉,并獲取當前電機工作狀態(tài)反饋給上位機。需要電機停止轉動時,先降低轉速給定數(shù)值,使電機工作在低速狀態(tài),然后單擊“停止”即可。點擊“退出程序”可以返回值主界面。
在上方數(shù)據(jù)顯示界面中,左側波形圖表繪制轉速給定與轉速反饋曲線對比圖,右側顯示電機當前參數(shù)與工作狀態(tài)。
3.3.4“仿真測試”子程序界面
對于尚未確定主控芯片軟件技術狀態(tài)的控制器,主要工程需求在于選取合適的控制策略參數(shù),此時使用控制器驅動電機的方式就不安全,同時效率也較低,因此采用仿真測試的方式,直接檢測控制器軟件內部參數(shù)變量在給定不同轉速值的條件下的變化情況,加快產(chǎn)品研制進度,主要操作方法與“實驗測試”相同,如圖7所示。
3.4程序框圖軟件設計
3.4.1程序主界面程序框圖
采用布爾控件值改變觸發(fā)的事件結構,當某一個控件布爾按鈕被按下后,調用對應的子VI程序。
3.4.2“設置”子程序程序框圖
當VISA參數(shù)設置完畢后,點擊保存按鈕,此時會將該設置存儲在一個全局變量中,子程序被關閉后全局變量中的數(shù)據(jù)仍然會被保留,在后續(xù)調試中的VISA參數(shù)均從該全局變量中讀取。
3.4.3“實驗測試”子程序
子程序啟動后,會首先進行一個初始化的步驟,讀取上一步存儲的串口參數(shù),并在程序啟動開始時執(zhí)行清空緩存區(qū)的指令,然后進入程序主循環(huán),如圖8所示。
程序主循環(huán)將串口讀數(shù)據(jù)操作作為主體,對于數(shù)據(jù)緩沖區(qū)的數(shù)據(jù),固定讀取一幀數(shù)據(jù)對應的字節(jié)數(shù)長度,因緩沖區(qū)數(shù)據(jù)是首尾相連的,對于取出的數(shù)據(jù),并不確定是否從幀頭開始,至幀尾結束,因此需要對數(shù)據(jù)幀進行整理,識別出幀頭所在位置。具體做法是,識別數(shù)據(jù)幀頭,從幀頭處將數(shù)據(jù)幀一分為二,幀頭以前的數(shù)據(jù)為上一幀數(shù)據(jù),幀頭及以后的數(shù)據(jù)為本幀數(shù)據(jù),利用程序框圖的移位寄存器,在兩次循環(huán)之間存儲數(shù)據(jù),把同屬于一幀的數(shù)據(jù)進行重新拼接。數(shù)據(jù)整理完畢后,對該幀數(shù)據(jù)的校驗位進行核算,并將數(shù)據(jù)幀由十六進制數(shù)字格式轉換為十六進制字符串格式。如圖9所示。
對于校驗位核算無誤的數(shù)據(jù)幀,對照控制器通信協(xié)議,對各個字節(jié)信息進行物理量換算,由于信息已更換為十六進制字符串格式,對于一些物理量包含高八位與低八位甚至更多字節(jié)數(shù)據(jù),也可以用字符串連接的方式進行解析,這些數(shù)據(jù)、波形與布爾狀態(tài)均顯示在前面板中,如圖10所示。
上位機下發(fā)數(shù)據(jù)指令的功能,由獨立于主循環(huán)的一個事件結構完成,其工作原理類似于主界面中各個子程序切換的功能,不同的是,由該布爾觸發(fā)的是對VISA串口執(zhí)行一次寫操作,且這個事件結構沒有獨立的結束循環(huán)觸發(fā),該結束觸發(fā)由主循環(huán)的“退出程序”布爾按鈕執(zhí)行,如圖11所示。
3.4.4“仿真測試”子程序程序框圖
該部分子程序與“實驗測試”子程序相似,區(qū)別在于數(shù)據(jù)的物理量換算由電機轉動的實際物理量變?yōu)榭刂栖浖膮?shù)變化情況。
4.調試系統(tǒng)應用實例
對于某型電機及控制器,使用“實驗測試”子程序對控制器響應上位機的轉速指令與電機工作狀態(tài)進行了測試,如圖12所示。針對該型無刷直流電機控制器,采用270VDC供電,設定轉速為4000rpm,控制器母線電流為6A,相電流為8.5A,電機工作狀態(tài)正常無故障,通過觀測電機轉速升高的斜率以及超調量,該型電機及控制器工作狀況良好,滿足設計方案及實際工作要求。
5.結論
本文采用LabVIEW 2017軟件平臺,針對電機及控制器產(chǎn)品設計研發(fā)調試,設計并編寫了一個調試系統(tǒng)軟件。該軟件針對控制器的不同研發(fā)階段,具備控制器部分參數(shù)整定調試的“仿真測試”功能,和控制器與電機整體聯(lián)調的“實驗測試”功能。通過對實際電機控制器產(chǎn)品的調試過程進行驗證,能夠切實有效的提高電機控制器產(chǎn)品的調試精確程度,以近似實際使用工況的條件進行工作。該軟件對于不同控制器的適應性好,對于不同通訊協(xié)議的程序改寫十分方便,目前已實際應用于工程研發(fā),具備一定的實用價值。
參考文獻
[1] ?陳樹學.LabVIEW實用工具詳解[M].北京:電子工業(yè)出版社,2014.
[2] ?吳振奎,張自雷,魏毅立,等.基于LabVIEW平臺DSP與PC的Modbus協(xié)議串口通信實現(xiàn)[J].內蒙古科技大學學報,2014,33(1):58-62.
[3] ?孫麗芹,王海龍,張景順,等.一種基于LabVIEW的串口數(shù)據(jù)傳輸方法[J].通信技術,2013(4):139-141.
[4] ?劉君華.基于LabVIEW的虛擬儀器設計[M].北京:電子工業(yè)出版社,2003.
[5] ?王玉剛,王恒新,陳曄,等.基于LabVIEW的某型航箭發(fā)射檢測儀設計[J].現(xiàn)代電子技術,2015,451(20):81-83.