劉長宏,宋 鵬,劉巖川,唐建波
(大連民族學院機電信息工程學院,遼寧大連 116605)
基于運動控制卡的數控系統應用研究
劉長宏,宋 鵬,劉巖川,唐建波
(大連民族學院機電信息工程學院,遼寧大連 116605)
基于PC+運動控制卡仿真數控裝置,從硬件組成及軟件設計方面介紹了和利時運動控制卡在仿真數控平臺上的應用,并在VC++6.0環境下,以對話框的形式,介紹了軟件的開發過程及要點,實現了回零、限位保護、實時控制和運動軌跡顯示等功能,適用于數控算法研究及數控原理培訓。
運動控制卡;步進電機;仿真數控裝置;VC++
基于PC+運控制卡數控系統滿足標準化、柔性化與開放性的要求,使得它的開發和使用備受青睞[1]。本文使用VC++6.0 MFC應用程序,利用和利時6030運動控制卡開發設計仿真數控平臺。該平臺具備了回零、限位保護、實時控制和運動軌跡顯示等功能,適用于數控算法研究及數控原理培訓。
本系統在硬件上由PC機、和利時6030運動控制卡、步進電機驅動器及步進電機組成。X軸和Y軸電機通過滾珠絲杠副帶動平臺移動,在平臺上各個軸的左右有軟件控制限位開關和硬件強制限位保護開關,平臺的右上角為設備的工作零點。為了便于軌跡的研究,裝置配有抬筆/落筆裝置,由電磁線圈控制。運動控制板卡插在PC機的PCI插槽內,PC機實現對系統監控管理、軟硬件參數設置。通過控制軟件對運動控制卡進行讀寫操作,運動控制卡根據主機的命令產生脈沖序列,包括脈沖個數(位置)、頻率(速度)及頻率變化率(加速度)。步進電機細分驅動器根據接收到的脈沖信號產生多拍節脈沖驅動信號,控制步進電機旋轉,帶動工作臺移動。系統結構如圖1。
本仿真數控系統的核心為和利時6030運動控制卡,由PCI主板和接口端子板組成。這是一款3軸步進電機控制器,每軸可輸出脈沖和方向信號,具有梯形升降曲線。提供帶光電隔離的16路輸入、8路達林頓輸出及2路繼電器輸出[2]。可以用來輸入工作臺的限位信號和控制提筆/落筆。采用DSP芯片做控制器,可以完成升降速計算、行程控制及多軸直線和圓弧插補控制。

圖1 系統硬件結構圖
外圍電路由工作臺限位開關、抬筆/落筆電磁線圈及步進電機單元組成。運動控制卡與驅動器之間的連接采用的是脈沖/方向的輸出方式,CW端為脈沖輸出,D端為方向輸出,共陽極接法。脈沖信號為低電平有效。初始電平為高電平。工作臺限位開關位于X,Y軸極限位置,依次由光電耦合開關125C51組成軟件控制限位和硬件強制限位。在程序錯誤軟件限位開關失去作用時,硬件限位開關動作,斷掉步進電機的公共端,使電機停止運動。如要脫離硬限位,需按硬件電路中復位鍵,強制將脈沖信號加到驅動器上,電機運動,脫離硬限位,系統工作正常。抬筆/落筆控制采用繼電器輸出工作方式。
步進電機56BYG250C與運動控制卡之間需要采用專門的驅動器SH-20403,根據控制信號,使步進電機的繞組按照特定的順序通斷電,從而完成電機轉子的轉動動作。驅動器工作時需外接開關電源,通過驅動器面板上6位撥碼開關可以設置輸出電流和細分運行模式。當步進電機驅動器接受數控裝置發出的N個進給脈沖時,步進電機的角位移,θ為步距角,i為細分倍數。步進電機的速度式中h為傳動機構(絲杠)的螺距,f為輸入到步進電機的脈沖頻率。當本工作臺絲杠螺距為5 mm,步進電機驅動器細分設置為16,步距角1.8°時,脈沖當量為640 pulse/mm,每個脈沖工作臺前進0.001 562 5 mm。
和利時6030運動卡基于W indows平臺,提供了W indows32位動態連接庫DLLs,支持Microsoft VisualBASI C、Visual C++及Borland C++Builder,具有初始化函數、運動控制函數、檢測函數及直線插補、圓弧插補函數等各種豐富的函數,可以完成3軸的實時協調運動控制[2]。
目前,基于W indows操作系統,采用面向對象的Visual C++6.0語言為開發工具的數控系統,已成為全軟件數控系統的熱點[3]。本系統基于W indows進行程序設計,是一種基于消息件驅動方式的程序設計[4],當用戶需要完成某種功能如數據輸入時,點擊功能按鈕,會產生消息。操作系統將啟動消息循環并檢索消息,同時將消息發送給適當的對象。每個可以接收消息的對象都有自己的消息映射,用于將消息與處理函數聯系在一起。目標對象接收到消息時,將搜索消息映射,尋找匹配的處理函數實現相應的功能。在W indows xp系統下,利用VC++6.0以對話框方式編寫數控仿真系統控制程序時,將動態聯接庫Dfjzh6030Api.dll拷貝到VC的工作目錄下,然后將Dfjzh6030Api.lib及頭文件Dfjzh6030Api.h包含在該工程項目中,建立如圖2的對話框。系統要完成對卡的初始化,數控系統工作零點的建立,工作參數的輸入,系統軌跡的實時控制、顯示及限位保護等任務。在這些任務中,有的沒有實時性,有的有實時性,根據這點,可以利用W indows系統的多任務、搶占式的特點和多線程技術將各個任務分給不同的線程,并賦予不同的優先級來實現數控系統的實時性[5]。當系統要求不高時,也可用消息響應函數onTimer()來實現系統周期性的實時控制。

圖2 數控仿真平臺設置的對話框界面
新建一個基于對話框的VC工程Test,MFC應用程序向導創建CtestApp和CTestdlg兩個類。在CTestdlg類內,添加如下代碼完成運動控制卡的初始化。

在對話框中添加控件和變量,并建立控件和變量的關聯。實現插補的選擇、坐標終點及圓心坐標等參數的輸入。
采用定時器定時循環檢測的形式,完成系統的實時控制。在程序中添加消息定時器完成消息的映射,并編寫相應的功能函數OnTi mer()。定時函數OnTimer()是實時控制中的關鍵函數。根據定時器設定的時間值,循環執行,完成以下功能:
(1)X,Y軸極限位置判斷。當極限開關動作后,緊急停止X-Y軸的運動,復位定時器。退出插補緩沖區,并發出超出行程的信息。
(2)X-Y軸實時坐標顯示。利用函數actpos6030(),得到X-Y軸的實時運行脈沖。經量程變換轉換成顯示設備的坐標并畫出相應線段。
(3)回零的實時控制。回零過程是數控系統工作零點的建立過程。其工作原理是,歸零時先X軸后Y軸,每個坐標軸向零點方向移動。碰到極限開關后,停止運動。然后向相反方向移動,脫離限位開關后,停止,清坐標軸寄存器,建立系統工作零點。其流程如圖3。

圖3 回零控制流程圖
當窗口內容變化時,發送消息,調用消息函數ON_Paint()。在此消息函數中應定義要顯示插補軌跡的區域及X,Y軸的坐標樣式和刻度標注。并在插補命令執行時實時顯示軌跡。
根據需要,設置“開始插補命令”“確認插補命令”“暫停”“執行插補命令”“回零”“急停”“復位”“停止”“退出”按鈕。在類內,當鼠標動作時,產生消息,為消息建立功能映射函數,根據各個鍵的功能,編寫相應的函數。
在功能按鈕中,“回零”按鈕是關鍵,每次新的插補命令執行前,都要執行此函數,它將建立設備中X,Y軸數據坐標的零點。“復位”按鈕鍵功能更新窗口參數,將數組中所有數據清零,清除插補緩沖區數據,清零X和Y軸數據寄存器,并等待新參數輸入。“復位”執行完畢后還需再執行“回零”功能鍵。急停和停止的區別是調用不同的函數以不同的速度停止。“開始插補命令”按鈕、“確認插補命令”按鈕、“執行插補命令”按鈕是程序的主要部分。完成插補的初始化及速度、加減速度等參數設置及執行插補命令等功能。為了提高精度,可以采用各種插補算法,提高軌跡精度。
“歸零”按鈕的功能是設置回零標記,軌跡顯示,抬筆/落筆電磁線圈斷電。退出插補緩沖區,等待定時時間到后,設置X軸回零的速度和加速度。調用OnTimer()等待歸零完成。其按鈕程序如下:



本文利用VC++6.0提供的微軟基礎類庫(MFC)及板卡支持的底層函數庫,詳細介紹了利用和立時6030運動控制卡控制仿真數控裝置進行二次開發的全過程,本數控平臺具備了很好極限保護功能及實時控制功能,是進行數控知識學習和研究的很好的平臺,可以在此平臺上進行各種插補算法學習和研究。如果將數控系統的G代碼編制成模塊程序,可以作為數控編程培訓設備使用。這樣極大地節約成本,為我國數控工業發展做出貢獻。
[1]耿宏濤,舒志兵.基于VC的多軸運動控制卡軟件開發技術研究[J].機床與液壓,2007,35(11):130-133.
[2]北京和利時電機技術有限公司.6030電機控制卡使用手冊[C].北京:北京和利時電機技術有限公司, 2002.
[3]賈敏忠,謝明紅.PLC-839運動控制卡數控系統開發[J].華僑大學學報:自然科學版,2006(4):404-407.
[4]金雪云.Visual C++教程[M].北京:清華大學出版社, 2005.
[5]張宏.基于PC+運動控制卡的開放式數控系統的研究[J].機械設計與制造,2008(6):171-172.
Research on Applications of a Numerical Control System Based on M otion Control Card
L IU Chang-hong,SONG Peng,L IU Yan-chuan,TANG Ji an-bo
(College of Electromechanical&Information Engineering,Dalian NationalitiesUniversity, Dalian Liaoning 116605,China)
Based on a numerical control(NC)emulator consisting of a PC and a motion control card,this paper presents applications of Hollysys motion control cards on NC emulation platforms from the perspectivesof hardware configuration and software design.The software development process and main pointswere introduced in the form of dialog boxes in VC++6.0.Functions such as reset,position limitprotection,real-time control andmotion trace displaywere achieved.The cards find applications in NC algorithm research and NC principles training.
motion control card;step motor;NC emulator;VC++
T M383
A
1009-315X(2010)01-0017-04
2009-06-30
劉長宏(1968-),男,河南林州人,工程師,主要從事機電一體化研究。
(責任編輯 劉敏)