今天,正運(yùn)動(dòng)小助手給大家分享一下開放式激光振鏡運(yùn)動(dòng)控制器ZMC408SCAN進(jìn)行振鏡矯正的方法與實(shí)現(xiàn)說明。
01 ZMC408SCAN控制器介紹
ZMC408SCAN是正運(yùn)動(dòng)技術(shù)新推出的一款支持EtherCAT總線的開放式激光振鏡運(yùn)動(dòng)控制器,專為工業(yè)激光+振鏡+運(yùn)動(dòng)控制方面的應(yīng)用而設(shè)計(jì)。通過EtherCAT總線和脈沖軸接口能實(shí)現(xiàn)多軸聯(lián)動(dòng)運(yùn)動(dòng)控制。
ZMC408SCAN支持ETHERNET、EtherCAT、USB、CAN、RS485、RS232等通訊接口,通過CAN、EtherCAT總線可以連接各個(gè)擴(kuò)展模塊,從而擴(kuò)展數(shù)字量、模擬量或運(yùn)動(dòng)軸。
(1)ZMC408SCAN內(nèi)置高精度PSO位置同步輸出功能,在加工圓角、曲線部分時(shí)即使進(jìn)行了減速調(diào)整,在高速加工的場(chǎng)合,也能控制激光輸出的間距保持恒定;
(2)支持激光振鏡控制和振鏡反饋,包含2個(gè)振鏡接口,支持2D振鏡和3D振鏡,配合不帶加減速的運(yùn)動(dòng)指令MOVESCAN,拐角處振鏡加工自動(dòng)延時(shí),完成精準(zhǔn)高效的激光控制,提高激光加工設(shè)備的產(chǎn)能;
(3)通過指令在運(yùn)動(dòng)中靈活的調(diào)節(jié)激光開光/關(guān)光延時(shí),響應(yīng)快,精確到us級(jí)別的控制,且設(shè)置過程簡(jiǎn)單,大大縮短了工程師的調(diào)參時(shí)間;
(4)自帶LASER激光器控制接口,支持IPG、YLR、YLS等類型激光電源,還帶一個(gè)EXIO擴(kuò)展IO接口,通過定制轉(zhuǎn)接板,靈活控制市場(chǎng)上主流的各種激光器;
(5)支持PC同時(shí)控制16個(gè)ZMC408SCAN控制器同時(shí)工作,形成一種振鏡陣列的激光加工;
(6)板載4路高速差分脈沖輸出,并帶4路高速差分編碼器反饋,支持EtherCAT總線驅(qū)動(dòng)器的控制,支持5軸XYZAC軸的插補(bǔ),支持振鏡軸與運(yùn)動(dòng)軸混合插補(bǔ);
(7)支持直線插補(bǔ)、任意圓弧插補(bǔ)、空間圓弧、螺旋插補(bǔ)、電子凸輪、電子齒輪、同步跟隨、虛擬軸設(shè)置等多種運(yùn)動(dòng)控制功能。
02 振鏡控制
激光振鏡是一種專門用于激光加工領(lǐng)域的特殊的運(yùn)動(dòng)器件,它靠?jī)蓚€(gè)振鏡片反射激光, 形成XY平面的運(yùn)動(dòng)。
激光振鏡不同于一般的電機(jī),激光振鏡具有非常小的慣量,且在運(yùn)動(dòng)的過程中負(fù)載非常小,系統(tǒng)的響應(yīng)非常快,因此在振鏡運(yùn)動(dòng)中可以不用考慮振鏡加減速。
振鏡一般分模擬振鏡與數(shù)字振鏡,模擬振鏡就是振鏡驅(qū)動(dòng)板是接收模擬信號(hào)方式,常用的模擬振鏡信號(hào)是直流電壓-5伏到+5伏變化的信號(hào),對(duì)應(yīng)的是電機(jī)擺動(dòng)的角度,比如-5V到+5V對(duì)應(yīng)-10度到+10度的電機(jī)擺動(dòng)角度。
數(shù)字振鏡采用數(shù)字信號(hào)進(jìn)行控制,數(shù)字信號(hào)則符合XY2-100協(xié)議。數(shù)字量-32768~32767對(duì)應(yīng)電機(jī)的最大擺動(dòng)角度。
正運(yùn)動(dòng)針對(duì)振鏡軸控制提供來一種專用的運(yùn)動(dòng)指令,通過ZAux_Direct_MoveScanAbs或者ZAux_Direct_MoveScan實(shí)現(xiàn)振鏡的快速響應(yīng)。
Scan運(yùn)動(dòng)指令相比普通運(yùn)動(dòng)指令控制不帶加減速規(guī)劃,支持us級(jí)別的時(shí)間控制。通過ZAux_Direct_SetForceSpeed設(shè)置的速度與矢量距離直接計(jì)算出運(yùn)行時(shí)間。
目前正運(yùn)動(dòng)SCAN控制器支持1-2路XY2-100數(shù)字振鏡軸的控制。
指令 | 說明 |
ZAux_Direct_SetAtype | 設(shè)軸類型 |
ZAux_Direct_SetUnits | 設(shè)置軸脈沖當(dāng)量 |
ZAux_Direct_SetMegre | 設(shè)置軸連續(xù)插補(bǔ)開關(guān) |
ZAux_Direct_SetForceSpeed | 設(shè)置振鏡軸SCAN運(yùn)動(dòng)速度 不帶加減速 |
ZAux_Direct_MoveScan | 振鏡軸直線插補(bǔ)相對(duì)運(yùn)動(dòng) |
ZAux_Direct_MoveScanAbs | 振鏡軸直線插補(bǔ)絕對(duì)運(yùn)動(dòng) |
ZAux_Direct_MoveAddax | 插補(bǔ)運(yùn)動(dòng)中設(shè)置運(yùn)動(dòng)疊加 |
ZAux_Direct_GetDpos | 讀取軸命令規(guī)劃位置 |
ZAux_Direct_GetMpos | 讀取軸實(shí)際反饋位置 |
ZAux_Direct_GetEncoder | 讀取振鏡軸原始位置數(shù)據(jù) |
ZAux_Direct_GetAxisstatus | 讀取振鏡軸狀態(tài) |
ZAux_Direct_StepRatio | 設(shè)置振鏡軸方向 |
ZAux_Direct_MoveSync | 同步跟隨運(yùn)動(dòng) |
一、振鏡軸配置
正運(yùn)動(dòng)SCAN控制器支持1-2路振鏡軸,不同控制器映射的軸號(hào)及支持的振鏡軸功能不同,不同振鏡組對(duì)應(yīng)軸號(hào)如下圖。
通過指令ZAux_Direct_SetAtype設(shè)置對(duì)應(yīng)振鏡軸類型,振鏡軸類型分為三種:
一種軸類型值為20(振鏡類型,帶振鏡狀態(tài)反饋,僅ZMC408SCAN支持);
一種軸類型值為21(振鏡軸控制類型);
一種軸類型值為22(振鏡類型,帶振鏡位置反饋,僅ZMC408SCAN支持)。
*表示不支持的功能。
控制器型號(hào) | SCAN0 | SCAN1 | ||||
X軸 | Y軸 | Z軸(3D特殊固件) | X軸 | Y軸 | Z軸(3D特殊固件) | |
ZMC408SCAN | 4 | 5 | 8 | 6 | 7 | 9 |
ZMC420SCAN | 4 | 5 | * | 6 | 7 | * |
VPLC504SCAN | 4 | 5 | * | * | * | * |
二、振鏡矯正
1.重點(diǎn)說明
激光振鏡掃描系統(tǒng)如下圖所示,可見振鏡掃描的實(shí)際工作范圍由振鏡的最大偏轉(zhuǎn)角度與工作高度決定。因此振鏡軸偏轉(zhuǎn)角度對(duì)應(yīng)輸出-32768~32767與實(shí)際工作范圍做單位映射時(shí)需要按照根據(jù)測(cè)試長(zhǎng)度做比例映射。
振鏡掃描系統(tǒng)建立的坐標(biāo)系是一個(gè)非正交的坐標(biāo)系,實(shí)際的掃描場(chǎng)會(huì)造成枕型失真。由于振鏡本身掃描造成的枕型失真如圖(左),另外由于F-Theta平面場(chǎng)鏡的使用,會(huì)造成輸出輪廓的桶型失真如圖(中),疊加以后輸出的圖形具有桶型和枕型雙重失真如圖(右)。
為了使軟件坐標(biāo)與實(shí)際運(yùn)行距離場(chǎng)地對(duì)應(yīng)及輸出軌跡不失真,則需要需要實(shí)時(shí)的對(duì)每一個(gè)數(shù)據(jù)點(diǎn)進(jìn)行校正,通常采用查找表分段線性插值的方法進(jìn)行位置校正,校正點(diǎn)越多實(shí)際輸出位置越精準(zhǔn)。
正運(yùn)動(dòng)SCAN控制器提供了BOX校正、多點(diǎn)校正等方法,不管是系數(shù)校正還是多點(diǎn)校正,校正點(diǎn)參數(shù)都是寫到控制器內(nèi)部系統(tǒng)數(shù)組TABLE寄存器的。因此在程序中有其他功能應(yīng)用到TABLE寄存器時(shí)需要注意地址的合理分配。
(1)Box系數(shù)校正
系數(shù)校正指的是根據(jù)振鏡輸出圖形枕/桶形失真、平行四邊形失真、梯形失真、比例縮放幾種情況進(jìn)行系數(shù)調(diào)整校正。
通過調(diào)用ZScan_CorrectFactor進(jìn)行系數(shù)校正。先控制振鏡繪制出一個(gè)正方形校正圖形,根據(jù)校正圖形的失真按下圖情況調(diào)整對(duì)應(yīng)的系數(shù)參數(shù),根據(jù)標(biāo)刻長(zhǎng)度與測(cè)量長(zhǎng)度調(diào)整縮放系數(shù),直到實(shí)際標(biāo)刻的尺寸與設(shè)置一致時(shí)認(rèn)為校正成功,校正系以是填寫的變化量,通常以0值為參考基準(zhǔn)變化。
(2)9點(diǎn)校正
9點(diǎn)校正指的是根據(jù)在工作范圍內(nèi)標(biāo)刻3*3的表格,根據(jù)每個(gè)點(diǎn)的理論位置與實(shí)際位置來進(jìn)行振鏡校正。
先控制振鏡預(yù)繪制出一個(gè)3*3校正表格圖形,按下圖所示P1-P9的順序填入X坐標(biāo)與Y坐標(biāo)實(shí)際測(cè)量值,填入P1點(diǎn)的理論標(biāo)刻與P9點(diǎn)的理論坐標(biāo),通過調(diào)用ZScan_Correct9進(jìn)行9點(diǎn)校正。需重新標(biāo)刻測(cè)試,直到實(shí)際標(biāo)刻與理論值達(dá)到預(yù)期精度范圍。
(3)25點(diǎn)校正
25點(diǎn)校正指的是根據(jù)在工作范圍內(nèi)標(biāo)刻5*5的表格,校正過程與9點(diǎn)校正相同,通過調(diào)用ZScan_Correct25進(jìn)行25點(diǎn)校正。校正點(diǎn)數(shù)越多校正精度也越高。
2.振鏡指令介紹
指令 | 說明 |
ZScan_Correct9 | 振鏡9點(diǎn)校正 |
ZScan_Correct25 | 振鏡25點(diǎn)校正 |
ZScan_CorrectFactor | 振鏡系數(shù)校正 |
ZScan_CancelCorrect | 取消振鏡校正 |
(1)振鏡軸9點(diǎn)矯正
(2)振鏡軸25點(diǎn)矯正
(3)振鏡軸系數(shù)矯正
(4)取消振鏡矯正
03 程序展示
九點(diǎn)矯正與25點(diǎn)矯正過程相同,但25點(diǎn)矯正精度更高,可通過九點(diǎn)矯正例程改寫25點(diǎn)矯正。
1.九點(diǎn)矯正程序如下
ZMC_HANDLE handle = NULL; //連接句柄 int rtn = ZAux_OpenEth("192.168.0.11", &handle); //連接控制器 if(CheckError(rtn,"ZAux_OpenEth")) return; //檢查函數(shù)返回 for(int iAxis = 4;iAxis<6;iAxis++) { rtn = ZAux_Direct_SetAtype(handle,iAxis,21); //設(shè)置軸為振鏡軸 if(CheckError(rtn,"ZAux_Direct_SetAtype")) return; rtn = ZAux_Direct_SetUnits(handle,iAxis,500); //設(shè)置軸脈沖當(dāng)量 if(CheckError(rtn,"ZAux_Direct_SetUnits")) return; } rtn = ZScan_CancelCorrect(handle,0,-1,-1,200,1,1000); //取消振鏡校正if(CheckError(rtn,"ZScan_CancelCorrect")) return; double m_dXMeasurePt[9] = {-51.5,0,49.5,-52.9,0,50.1,-51.8,0,49.0}; double m_dYMeasurePt[9] = {-51.5,-51.0,-53.0,0,0,0,51.9,51.5,53.9}; rtn = ZScan_Correct9(handle,0,m_dXMeasurePt,m_dYMeasurePt,0,21,500,-50,-50,50,50,1,1000); //振鏡0 9點(diǎn)校正,校正數(shù)據(jù)存儲(chǔ)在系統(tǒng)數(shù)組TABLE(1000 - 1004+21*21*2) if(CheckError(rtn,"ZScan_CorrectFactor")) return; rtn = ZAux_Close( handle); //關(guān)閉連接,釋放句柄 if(CheckError(rtn,"ZAux_Close")) return; handle = NULL;
2.系數(shù)矯正例程如下
ZMC_HANDLE handle = NULL; //連接句柄 int rtn = ZAux_OpenEth("192.168.0.11", &handle); //連接控制器 if(CheckError(rtn,"ZAux_OpenEth")) return; //檢查函數(shù)返回 for(int iAxis = 4;iAxis<6;iAxis++) { rtn = ZAux_Direct_SetAtype(handle,iAxis,21); //設(shè)置軸為振鏡軸 if(CheckError(rtn,"ZAux_Direct_SetAtype")) return; rtn = ZAux_Direct_SetUnits(handle,iAxis,500); //設(shè)置軸脈沖當(dāng)量 if(CheckError(rtn,"ZAux_Direct_SetUnits")) return; } rtn = ZScan_CancelCorrect(handle,0,-1,-1,200,1,1000); //取消振鏡校正if(CheckError(rtn,"ZScan_CancelCorrect")) return; double m_dMaxBox[2] = {131,131}; //最大校正區(qū)域 double m_dCorrectBox[] = {131,131}; //實(shí)際校正區(qū)域 double m_dOffset[2] = {0,0}; //偏移量 一般用于紅光偏移 double m_pdFactor[2][4] = {{1,0,0,0},{1,0,0,0}}; //校正系數(shù) 縮放系數(shù)、桶型/枕型畸變系數(shù)、平行四邊形畸變系數(shù)、梯形畸變系數(shù) rtn = ZScan_CorrectFactor(handle,0,m_dMaxBox[0],m_dMaxBox[1],m_dCorrectBox[0],m_dCorrectBox[1],m_dOffset[0],m_dOffset[1],&m_pdFactor[0][0],&m_pdFactor[1][0],0,21,1,1,500,1,1000); //振鏡0系數(shù)校正,校正數(shù)據(jù)存儲(chǔ)在系統(tǒng)數(shù)組TABLE(1000 - 1004+21*21*2) if(CheckError(rtn,"ZScan_CorrectFactor")) return; rtn = ZAux_Close( handle); //關(guān)閉連接,釋放句柄 if(CheckError(rtn,"ZAux_Close")) return; handle = NULL;
04 振鏡矯正工具
振鏡矯正工具包含了多種矯正方式,9點(diǎn)矯正、25點(diǎn)矯正、系數(shù)矯正、多點(diǎn)矯正、文件矯正。
參數(shù)設(shè)置界面機(jī)械參數(shù):
先通過IP地址選擇,連上對(duì)應(yīng)控制器,然后設(shè)置機(jī)械參數(shù)選擇激光器類型,設(shè)置好振鏡號(hào),將標(biāo)刻圖形的XY方向與軟件顯示的一致。
打標(biāo)參數(shù):
從上至下依次填寫標(biāo)刻速度、空移速度、軸類型、脈沖當(dāng)量(運(yùn)動(dòng)指令與速度指令的基本單位,需要修改脈沖當(dāng)量為振鏡運(yùn)動(dòng)1mm的脈沖個(gè)數(shù),修改過后標(biāo)刻圖形相較于預(yù)定尺寸相差較小就能開始測(cè)量矯正了,預(yù)校正標(biāo)刻圖形不完整或圖形比預(yù)定尺寸大很多時(shí),將此參數(shù)調(diào)小;反之則將參數(shù)調(diào)大)。
例如:
開關(guān)延時(shí):多點(diǎn)矯正圓中心的點(diǎn)深,調(diào)開關(guān)延時(shí)
關(guān)光延時(shí):最外圈不封口的情況調(diào)關(guān)光延時(shí)
拐角延時(shí):右邊的線深,調(diào)拐角延時(shí)
跳轉(zhuǎn)延時(shí):多點(diǎn)矯正圓點(diǎn)有小尾巴,調(diào)跳轉(zhuǎn)延時(shí)
結(jié)束延時(shí):所有的運(yùn)動(dòng)結(jié)束后都加結(jié)束延時(shí)
激光能量控制:
(1)模擬量DA(0~4095對(duì)應(yīng)0~10V電壓)
(2)PWM(調(diào)機(jī)占空比,設(shè)置頻率)
(3)IO組合
注:激光能量的控制參數(shù),需要根據(jù)激光器能量功率的控制類型來進(jìn)行修改,需參考激光器手冊(cè)。
1.9點(diǎn)矯正和25點(diǎn)矯正
設(shè)置矯正參數(shù)的table起始位置:這個(gè)地址不要與其他table地址位置沖突,約使用1000個(gè)數(shù)據(jù),占用1000個(gè)table地址;
紅光游覽:可用來矯正圖形;
預(yù)標(biāo)刻尺寸:面積,標(biāo)刻預(yù)校正圖形使用此參數(shù);
預(yù)標(biāo)刻出圖形后將標(biāo)刻圖形取出測(cè)量:測(cè)量?jī)牲c(diǎn)之間的距離,將兩點(diǎn)之間的距離參數(shù)填入對(duì)應(yīng)的框內(nèi);
標(biāo)刻預(yù)矯正:根據(jù)參數(shù)設(shè)置和預(yù)標(biāo)刻尺寸開始標(biāo)刻預(yù)矯正圖形;
僅矯正按鈕:只進(jìn)行振鏡矯正,不標(biāo)刻;
標(biāo)刻尺寸:面積,標(biāo)刻預(yù)矯正圖形使用此參數(shù);
矯正并標(biāo)刻:根據(jù)標(biāo)刻尺寸,開始矯正并標(biāo)刻圖形;
保存到文件和保存到控制器:保存到文件是保存到電腦本地(保存文件可用于文件矯正和多點(diǎn)矯正),保存到控制器是保存到控制器的flash塊(要確保不同的振鏡軸號(hào)間用不同flash塊,不能沖突);
急停:標(biāo)刻急停。
(1)9點(diǎn)矯正標(biāo)刻預(yù)矯正效果圖
(2)矯正并標(biāo)刻效果圖
(3)25點(diǎn)矯正同9點(diǎn)矯正相同,只是點(diǎn)數(shù)更多,矯正精度更高。
2.系數(shù)矯正
系數(shù)矯正和9點(diǎn)矯正等差不多,只是多了一個(gè)原點(diǎn)偏移和XY的縮放比。
3.多點(diǎn)矯正
(1)矯正大?。和?;
(2)標(biāo)刻點(diǎn)半徑:標(biāo)刻圓(點(diǎn))半徑;
(3)標(biāo)刻點(diǎn)數(shù)量:可選9*9、17*17、33*33、65*65,目前開發(fā)9*9、17*17,更多點(diǎn)數(shù)矯正請(qǐng)聯(lián)系正運(yùn)動(dòng)技術(shù)支持工程師;
(4)填充點(diǎn)間距:同心圓半徑差;
(5)完整圖形:標(biāo)刻完整圖形(掃描儀可以完整掃描出整張圖片);
(6)左邊/右邊圖形:標(biāo)刻左/右圖形;(圖形較大時(shí),使用掃描儀無法一次將所有圖形全部掃描,請(qǐng)使用左右分別標(biāo)刻,分別掃描,導(dǎo)入兩張圖片);
(7)急停:標(biāo)刻急停;
(8)點(diǎn)處理:
模式:?jiǎn)螐垐D片、兩張圖片:根據(jù)掃描標(biāo)刻后的矯正圖紙是否分兩次掃描,或分左右標(biāo)刻
極性:白背景黑點(diǎn)、黑背景白點(diǎn)
閾值方式:自動(dòng)、手動(dòng)閾值:(閾值參數(shù)范圍0~255)黑白照片白色為255,黑色為0,處于低閾值至高閾值之間之間的像素處理為 255,否則為 0,用于處理掃描標(biāo)刻后的圖像處理
低閾值:0~255
高閾值:0~255 應(yīng)設(shè)置為大于等于低閾值數(shù)據(jù)
最大面積/最小面積:通過篩選原點(diǎn)面積過濾圖像噪點(diǎn)(雜點(diǎn))
詳見Zvision幫助
(9)尋入9點(diǎn)矯正文件:導(dǎo)入9點(diǎn)矯正文件(多點(diǎn)矯正需要9點(diǎn)矯正中“保存矯正數(shù)據(jù)到文件”的文件)。
4.文件矯正
功能:導(dǎo)入9/25/多點(diǎn)矯正“保存矯正數(shù)據(jù)到文件”保存的文件,更新參數(shù)至矯正界面、僅矯正或矯正并標(biāo)刻等。
本次,正運(yùn)動(dòng)技術(shù)開放式激光振鏡運(yùn)動(dòng)控制器:C++振鏡矯正方法與實(shí)現(xiàn),就分享到這里。
-
運(yùn)動(dòng)控制器
+關(guān)注
關(guān)注
2文章
390瀏覽量
24628 -
C++
+關(guān)注
關(guān)注
21文章
2102瀏覽量
73453 -
EtherCAT總線
+關(guān)注
關(guān)注
5文章
68瀏覽量
5359
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論