



摘 要:采用“PC+運動控制卡”的運動控制方案,設計了基于VB的四軸運動控制系統,通過調用控制卡的運動函數庫實現單軸點動、連續運動以及直線和圓弧插補等功能。詳細說明了運動控制系統的組成及運動控制系統的軟件設計。
關鍵詞:VB;運動控制卡;運動控制系統;運動函數庫
引言
為了提高產品質量和產量,運動控制系統正在不斷地深入到各個領域并得以迅速發展,運動控制系統在各類控制工程中有著廣泛的應用前景。其應用范圍涵蓋數控加工業、汽車制造業和機器人等多個領域。通過開發實時多軸運動控制系統軟件來滿足實際工作的需求,已經成為備受關注的研究課題[1,2]。
近年來,PC+運動控制卡模式的運動控制系統得到了廣泛應用。它具有結構簡單、開放性易實現、成本相對較低等優點[3]。文章的控制系統也采用PC+運動控制卡模式。
1 系統硬件設計
整個系統由運動執行機構及運動控制系統組成,PC為控制系統的上位機,運動控制卡為下位機,系統設計方案如圖1所示。
PC主機與控制卡通過PCI通訊方式實現信息交換,PC機通過調用運動控制卡動態鏈接庫向控制卡發出運動指令,運動卡接收來自上位機的指令后向驅動器發出控制脈沖信號,控制卡可以控制所發出脈沖的頻率、個數及頻率變化率,從而能滿足電機各種復雜的控制要求[4,5],主機也可以通過總線讀取運動控制卡的輸入信號,如通用輸入口、限位信號、原點開關等,經判斷并執行相應運算后向運動控制卡發出相應執行指令。
系統采用的運動控制卡是深圳固高公司生產的基于PCI總線的型號為GTS-400-SV的高性能運動控制卡,該控制卡可以同時控制4個軸,實現多軸協調運動。
圖1 運動控制系統的硬件結構框圖
系統其中一個軸的電路連接方式如圖2所示,控制卡的脈沖信號及方向信號發送給驅動器,經放大處理后驅動步進電機運動,LIM+和LIM-分別連接對應軸的正向限位和負向限位開關,HOME為原點觸發信號的輸入引腳,連接原點開關[6]。
圖2 電路連接圖
2系統軟件設計
固高運動控制卡的控制系統可以使用VC、VB和Delphi等支持動態鏈接庫的開發工具來編寫[7]。文章的運動控制系統的控制軟件采用VB(Visual Basic)語言進行設計。VB是面向Windows的可視化編程開發工具,具有簡練的語法和強大的功能、結構化程序設計思想以及方便快捷的可視化編程手段[8],它屏蔽了Windows環境下程序設計的復雜性,利用動態鏈接庫DLL可以很快開發出Windows平臺下的運動控制系統,因此VB在機電系統軟件開發方面占有很大的比例。
2.1 程序界面設計
程序界面主要包括參數設置、功能選擇和運動操作模塊。硬件參數包括電機每轉脈沖數、絲杠螺距、驅動器細分倍數及控制卡控制周期的設置,增加了使控制系統的適用性,參數設置還包括運動軸軸號選擇、運動速度設置、移動距離設置、加速度以及加加速度設置,功能選擇模塊包括直線插補、圓弧插補、單軸運動、電子齒輪等運動模式的選擇,操作模塊包括驅動復位、位置清零、回原點、開始、停止和點動等,控制程序界面如圖3所示。
圖3 程序界面
2.2 控制程序的編寫
運動控制卡提供了Windows環境下的動態鏈接庫,在Windows系統下,用戶通過PC機調用函數庫中的指令,向運動控制器發出控制指令,實現各種功能。在使用VB編寫程序之前,首先將控制卡動態鏈接庫gts.dll和函數聲明文件gts.bas復制到工程文件夾中,然后選擇工程菜單下的“添加模塊”,切換到“現存”標簽頁,選擇工程文件夾中的函數聲明文件gts.bas,將其添加到工程中。最后將運動控制器的動態鏈接庫文件gts.dll復制到PC機中C盤windows system 文件夾中。至此可以調用函數庫中的指令函數來編寫程序[9],使用VB編寫控制程序的界面如圖4所示。
圖4 程序代碼編寫界面
程序主要包括返回值處理函數、初始化函數、運動參數設置及運動執行函數等。初始化函數包括控制卡和運動控制軸初始化函數,控制卡初始化函數由GT_Open()(打開運動控制器)、GT_SwitchtoCardNo()(指定當前控制卡)、GT_SetSmplTm()(設置控制周期)、GT_Reset()(復位運動控制器)等指令組成;運動軸初始化函數由GT_Axis()(設置當前軸)、GT_ClrSts()(清除當前軸狀態)等指令組成。控制卡提供了大量的運動指令供調用,可以滿足各種簡單及復雜運動控制的要求。
以下是以電子齒輪模式運動函數為例簡要介紹VB編程環境下運動指令的調用方式,對于用戶通過主機發送的命令,運動控制器在檢查、校驗后,會給出一個反饋,這個反饋就是指令(庫函數)的返回值,在程序中,指令的返回值賦值給變量rtn,rtn經過返回值處理函數顯示出相應的錯誤信息。指令GT_PrflG(2)為設置當前軸的運動模式為電子齒輪控制模式,主軸為2軸,指令GT_SetRatio(2)用來設置當前軸的電子齒輪傳動比為2。指令GT_SetAcc(0.01)、GT_SetVel(B)、GT_SetPos(A)分別用來設置當前軸的運動加速度、速度及目標位置,變量B和A分別為用戶輸入的速度及目標位置經過運算后的數值。
Private Sub GMotion() '電子齒輪控制模式運動子函數
rtn = GT_Axis(1): Er (rtn)
rtn = GT_PrflG(2): Er (rtn)
rtn = GT_SetRatio(2): Er (rtn)
rtn = GT_Update(): Er (rtn)
End Sub
Private Sub Command6_Click() '以電子齒輪模式運動到目標位置
Dim A As Single
Dim B As Single
A = Text2
B = Text1 / 4 * 1600 / 1000000 * 200
GT_Initial
InputCfg
Axis_1_Initial
Axis_2_Initial
GMotion
rtn = GT_Axis(2)
rtn = GT_PrflT(): Er (rtn)
rtn = GT_SetAcc(0.01): Er (rtn)
rtn = GT_SetVel(B): Er (rtn)
rtn = GT_SetPos(A): Er (rtn)
rtn = GT_Update(): Er (rtn)
End Sub
3 結束語
文中運動控制系統采用“PC+運動控制卡”模式,使系統結構簡單,動態鏈接庫機制使VB在對第三方運動控制卡的支持上有了一個通用可行的途徑。這種方法不僅可以采用價格相對較低的普通運動控制卡,而且能避免繁瑣的界面編程,縮短周期,提高效率,降低成本。文章所引用的程序已在某四軸運動平臺上通過測試并得到應用,運行穩定、可靠。
參考文獻
[1]叢爽.實用運動控制技術[M].北京:電子工業出版社,2006:38-42.
[2]李剛,楊繼東.基于PC的開放式數控系統的開發[J].機床與液壓,2006(4):82-83.
[3]何麗嬌,張憲民,王宇華.二維定位平臺的運動控制系統研究[J].機電工程技術,2008,37(1):54-97.
[4]周光學.基于運動控制器的開放式數控系統研究及軟件設計[D].秦皇島:燕山大學,2005.
[5]關學鋒,王偉,胡明.基于運動控制卡的五自由度機器人控制系統的開發[J].機械設計與制造,2009(6):189-190.
[6]李國厚.步進電機驅動與控制系統的設計[J].煤礦機械,2008,29(2):114-116.
[7]楊中寶,康順哲.VB語言程序設計教程[M].北京:人民郵電出版社,2006:46-77.
[8]沈洪,施明利,等.VB程序設計[M].北京:清華大學出版社,
2010,6:0-56.
[9]固高科技(深圳)有限公司.GTS系列運動控制器編程手冊[Z].
2011.