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