嵌入式伺服(fú)控製器調試軟件的研究
2017-7-25 來(lái)源:中國科學(xué)院大(dà)學 作者:史秀玉,何 平,王誌成,,吳文江,張玉磊
摘要: 隨著工業控製領(lǐng)域的不斷發展,傳統的控製(zhì)器已經無法滿足用戶在線調試的(de)需求,隻(zhī)能通過仿真得到實驗結果(guǒ),這種係統仿真具有(yǒu)一定的理想性。針對傳統控(kòng)製器的缺陷,提(tí)出設計一種嵌入式伺(sì)服控製器調試軟件,能有效彌補這一(yī)缺陷。文章采用. NET Framework 平台及 Visual Studio 集(jí)成(chéng)開發環境,基於嵌入式伺(sì)服控製器設計(jì)了編輯(jí)器、匯(huì)編器以及調試(shì)器( 硬(yìng)件在(zài)回路仿真測試係統) 。運用硬件在回路( Hardware-in-the-loop,HIL) 技術,讓處理器運行仿真模型來模擬電機的運行狀態,滿足了用戶實時調試的需求(qiú)。
關鍵詞: Visual Studio; HIL; 嵌入(rù)式伺服控製器; 調(diào)試軟件
0.引言
隨著微控製器的快速(sù)發展,其應用已經遍及各個領域,如: 電機控製、工業自動化等。傳統控製器中,單軸(zhóu)控製器和伺服(fú)驅動器采用(yòng)分立的設計結構,係統成(chéng)本高、通訊時延長、靈活性差。因此,嵌(qiàn)入式單軸控製器(qì)應運而生,它將(jiāng)單(dān)軸控製器和伺服驅動器結合在一起,解決了傳統控製器的缺陷; 嵌入式單軸控製器的出現也對調(diào)試工具提出了新的要求,在對指令進行(háng)編輯編譯的(de)同(tóng)時,也需要滿足用戶的實(shí)時調試的需求。目前(qián)國內(nèi)尚無成熟的嵌入式伺服控製器調試軟件,因此在參考文獻[1]的基(jī)礎上,文章(zhāng)設計了基於(yú)嵌(qiàn)入式伺服(fú)控製器的(de)調試軟件。嵌入式伺服控製器調試軟件可用(yòng)於實現運動控製器監控、編碼(mǎ)器角度檢測、Osci 控製等功能,其核心功能(néng)是編輯、匯編以及調試,其(qí)中,調(diào)試功能采用了硬件在回路的仿真設計,硬件在回路仿真已逐漸成為控製係統(tǒng)設(shè)計的重(chóng)要工具[2],滿足了用戶(hù)實時調試的需求。
1.總體結構設計
1.1 伺服控製係統
伺服(fú)控製係統整體的工作流程如圖 1 所示: 用戶在上位 PC 機的調試軟件(jiàn)上編寫程序,通過 USB 端口將程序指令代(dài)碼(mǎ)序列下載到嵌入式單軸控製器中,解釋器(qì)模塊對下(xià)載的代碼序列進行解釋處理並(bìng)調用相應的處理函數,得到電機的(de)運動參數,因為(wéi)單軸控製器和伺服驅動(dòng)器共享內存,伺服(fú)驅動器可以根據參數直接控製電機的運動軌跡(jì),不需要再使用通訊接口。其中,運動控(kòng)製器中變量(liàng)監測模塊保存記錄數據,並將各個變量同樣通過 USB 接口反饋給(gěi)上位 PC 機調試軟(ruǎn)件(jiàn)中的(de)調試器,便於(yú)用戶實時調試,控製(zhì)電機的運轉軌跡。
圖 1 伺(sì)服控製係統結構
1.2 伺服驅動指令
伺服驅動指(zhǐ)令由匯編器匯編,具有一定(dìng)的指令格式,包括指令標識符和相關的參數(shù)。統一(yī)編譯為二進製(zhì)代碼,根據(jù)指令標識符的不同,調用不同的指令處理函數(shù),當然這就是解釋(shì)器的(de)功能了,不是我們討論的範疇(chóu)。根據參考文獻[1]設計的伺服驅動指令集,設計(jì)一個類,定(dìng)義統一的指令規範格式,定(dìng)義各(gè)個變量,分別(bié)存儲助記符的名稱、指令代碼、參數個數以及各個參數。定義該類型的數組,數組中存放的是所有的指令(lìng)集合,最後定義所(suǒ)有輸入輸出參數可(kě)能的類型指令。
2.調試軟件的設計(jì)
2.1 編輯(jí)器的設計
采用 Visual Studio 平台的 rich Text Box 組件,在 C#win Form 程序中作(zuò)為匯編器的編輯界麵,同時采用 la-bel 控件為代碼添加行號。為 Label 控件添加 Paint 事件,來實現行號的添加。具體代碼設計如圖 2 所示:
圖 2 繪製行號
其中,line Num Point 是一個 List 數組,存放的是Point 類型的數。Line Num Point 中的坐標是由 Line N-um Point. Add( ) 函數逐一添加的。遍曆該數組得到數組中元素的個數( 即行數) ,g. Draw String( ) 函(hán)數繪製(zhì)行號。此中存(cún)在一個設計難點,就是滾動條的問題。隨(suí)著滾(gǔn)動條的滾動,行號需要(yào)不斷的刷新才能滿足正常的需(xū)要。為此設計一個滾動(dòng)條的垂直滾動事件( rich Text Box 的 VScroll 事件) ,實(shí)現行號的刷新。首先用 clear( ) 函數將坐標數組清(qīng)空,重新計算字(zì)符串坐標(biāo),我 們 知 道 文 本 框(kuàng) 的 行 數,即 rich Text Box. Line.Length,先用 Get First Char Index From Line ( ) 函(hán)數從行號得到給定行(háng)第(dì)一(yī)個字符的索(suǒ)引,再根據函數 Get Posi-tion From Char Index( ) 得到字符在指定索引處的位置,進而得到每行行號的坐標。到此為止(zhǐ),編輯器已經做好了,但是為了使其更加(jiā)美觀實用,這裏為其實現了關鍵字高亮。高亮代碼如圖 3 所示。
圖 3關鍵字高(gāo)亮
2.2 匯編(biān)器的設計
匯編器需(xū)要在上位 PC 機調試軟件中使用,在上位 PC 機調試軟件的編輯器的編輯框裏(lǐ)輸入相關(guān)的匯編指令,匯編器將這些匯編指令一一(yī)進行匯(huì)編(biān),即編譯為可執行的二進製代碼,如果編譯不(bú)通過,則需進行相應的代碼調(diào)試,直至編譯通(tōng)過為(wéi)止。匯編過(guò)程的流程圖如圖(tú) 4 所示。
圖 4 匯編程序流程圖
2. 2.1 定義用戶輸入指令
定義用戶輸入指(zhǐ)令類,包括(kuò)的變量(liàng)有: 用戶輸入命令的名稱(chēng) name,參(cān)數 arg X,參數 arg Y,參數 a-rg Z,行號line,String 類型的輸入參數數(shù)組 in Arg,Int32 類型(xíng)的輸出參數數組 out Arg,以及(jí) byte 類型的(de)數組 bin,長度等於 8,一條指令的長度(dù),8 個字(zì)節,用於保存編譯後的二進製指令。
2.2.2 設計難點
設計過程中需(xū)要考慮的兩大問題,第一: 若用戶輸入的有空白行(háng),則必須先去(qù)除空白行,否則就算編程讓
投稿箱:
如果您有機床行業、企業相關新聞稿件發表,或進行(háng)資訊合作,歡迎聯係本(běn)網編輯部, 郵箱:skjcsc@vip.sina.com
如果您有機床行業、企業相關新聞稿件發表,或進行(háng)資訊合作,歡迎聯係本(běn)網編輯部, 郵箱:skjcsc@vip.sina.com
更多相關信息
業界視點
| 更多
行業數據
| 更多(duō)
- 2024年(nián)11月 金屬切削機床產量數據
- 2024年(nián)11月 分地區金(jīn)屬切削機床產量數據
- 2024年11月 軸承出口情況
- 2024年11月 基本型乘用車(轎(jiào)車)產量(liàng)數據
- 2024年11月 新能(néng)源汽車產量數(shù)據
- 2024年11月 新能源汽車銷量情況
- 2024年10月 新能源汽車產(chǎn)量數據
- 2024年10月 軸承出口情況
- 2024年10月 分地區金屬切削機床產量數據
- 2024年10月 金屬切削機床產量數據
- 2024年9月 新能源汽車銷量情況
- 2024年8月 新能源汽車產量數據
- 2028年8月 基本型乘用(yòng)車(轎車)產量數據
博文選萃
| 更多(duō)
- 機械加工過程圖示
- 判斷一台加工中心精度的幾種(zhǒng)辦法
- 中走絲(sī)線切割機床的發展趨勢
- 國產數控係統和數控(kòng)機床何去何從?
- 中國的技術工人都去哪裏了?
- 機械老(lǎo)板(bǎn)做了十多年,為何還是小作坊(fāng)?
- 機械行業最新(xīn)自殺性營銷(xiāo),害人害己!不倒閉才
- 製造業大逃亡
- 智能(néng)時代(dài),少談點智造,多談點製造
- 現實麵前(qián),國人沉(chén)默。製造業的騰飛,要從機床
- 一文(wén)搞懂數控車床加工刀具補償(cháng)功能
- 車床鑽(zuàn)孔攻螺紋加工方(fāng)法及工裝設計
- 傳統鑽削與螺旋銑孔加工(gōng)工藝的區別