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