今天,正運動技術(shù)為大家分享一下應(yīng)用C++開發(fā)一個激光振鏡的運動控制例程。我們主要從新建MFC項目,添加函數(shù)庫講起,最后通過項目實戰(zhàn)——激光振鏡打標例程講解,來讓大家熟悉它的項目開發(fā)。在正式學(xué)習(xí)之前,我們先了解一下正運動技術(shù)的運動控制器ZMC420SCAN。這款產(chǎn)品是20軸運動控制器。ZMC420SCAN 總線控制器支持 ECAT/RTEX 總線連接,支持多達20軸運動控制,支持直線插補、任意圓弧插補、空間圓弧、螺旋插補、電子凸輪、電子齒輪、同步跟隨、虛擬軸設(shè)置等;采用優(yōu)化的網(wǎng)絡(luò)通訊協(xié)議可以實現(xiàn)實時的運動控制。ZMC420SCAN 總線控制器支持脈沖軸/總線軸/振鏡軸混合插補。ZMC420SCAN 支持10路脈沖輸出與編碼器反饋且支持4路振鏡軸,板載24點輸入,12點輸出,2AD,2DA,所有輸出口都支持高速PWM控制。ZMC420SCAN使用一套API函數(shù),支持C、C++、C#、LabVIEW、Python、Delphi等開發(fā)語言,支持VC6.0、VB6.0、Qt、.Net等平臺,支持Windows、Linux、WinCE、iMac等操作系統(tǒng)。
圖2
ZMC420SCAN 的PWM 輸出受正常輸出功能的控制,輸出口“ON”狀態(tài)下才能進行PWM輸出,便于控制激光能量。ZMC420SCAN 的輸出0-7的具有精準輸出的功能,每個輸出的精準輸出功能相互獨立,通過MOVEOP_DELAY 與AXIS_ZSET ,來設(shè)置每個MOVE_OP 指令是否使用精準輸出以及精準輸出的延時,從而實現(xiàn)激光的PSO 控制。ZMC420SCAN 的輸出0-7支持精準輸出且相互獨立,通過指令:MOVE_OP,AXIS_ZSET,MOVEOP_DELAY來分別控制激光的開關(guān),精準輸出開關(guān)及延時,從而實現(xiàn)激光PSO控制。
ZMC420SCAN支持XY2-100振鏡協(xié)議,支持運動控制與振鏡聯(lián)合插補運動。上位機通過網(wǎng)口與控制器相連,獲取對應(yīng)控制器的句柄,通過XY2-100協(xié)議控制振鏡軸,通過總線協(xié)議或者脈沖模式控制伺服或步進軸。本地軸號4/5可以ATYPE=21 配置為第1個振鏡, 本地軸號6/7可以ATYPE=21 配置為第2個振鏡,可通過 AXIS_ADDRESS 配置軸號。
1.在VS2017菜單“文件”→“新建”→“項目”,啟動創(chuàng)建項目向?qū)А?/span>
2.選擇開發(fā)語言為“Visual C++”和程序類型“MFC/ATL”中的“MFC應(yīng)用程序”。
3.選擇類型為“基于對話框”,下一步或者完成。下一步則往后繼續(xù)配置,完成就直接完成即可。把類型選好,其他的可以在項目中編輯。
4.找到廠家提供的光盤資料,路徑如下(64位庫為例):
A.進入光盤資料找到PC函數(shù)文件夾。
B.選擇函數(shù)庫2.1。
C.Windows平臺。
D.根據(jù)需要選擇對應(yīng)的函數(shù)庫這里選擇64位庫。
E.解壓C++的壓縮包,里面有C++對應(yīng)的函數(shù)庫。
F.函數(shù)庫具體路徑如下。
5.將廠商提供的C++的庫文件和相關(guān)頭文件復(fù)制到新建的項目里面。
6.在項目中添加靜態(tài)庫和相關(guān)頭文件。
靜態(tài)庫:zauxdll.lib, zmotion.lib
相關(guān)頭文件:zauxdll2.h, zmotion.h
A.先右擊頭文件,接著依次選擇:“添加”→“現(xiàn)有項”。
B.在彈出的窗口中依次添加靜態(tài)庫和相關(guān)頭文件。
7.聲明用到的頭文件和定義控制器連接句柄。
至此項目新建完成。
1.PC函數(shù)手冊也在光盤資料里面,具體路徑如下:
2.PC編程,一般先根據(jù)控制器連接方式選擇對應(yīng)的連接函數(shù)連接控制器,返回控制器句柄。接著用返回的控制器句柄,實現(xiàn)對控制器的控制。
3.比如通過網(wǎng)口連接控制器,先使用ZAux_OpenEth()鏈接控制器,獲取控制器句柄handle。
4.通過獲取到的控制器句柄handle,對控制器進行激光振鏡軸類型的設(shè)置。
第三個參數(shù)的值有以下的模式選擇,使用振鏡軸需選擇軸類型為21的模式,設(shè)置軸為振鏡軸類型,振鏡軸類型系統(tǒng)周期與刷新周期都要比普通軸快很多。
5.通過獲取到的控制器句柄handle,控制控制器的振鏡軸進行多軸運動控制,可以進行搭配振鏡軸與普通軸進行混合插補運動。