工控網首頁
>

應用設計

>

開放式激光振鏡運動控制器:C++振鏡矯正方法與實現

開放式激光振鏡運動控制器:C++振鏡矯正方法與實現

今天,正運動小助手給大家分享一下開放式激光振鏡運動控制器ZMC408SCAN進行振鏡矯正的方法與實現說明。

01 ZMC408SCAN控制器介紹

ZMC408SCAN是正運動技術新推出的一款支持EtherCAT總線的開放式激光振鏡運動控制器,專為工業激光+振鏡+運動控制方面的應用而設計。通過EtherCAT總線和脈沖軸接口能實現多軸聯動運動控制。

ZMC408SCAN支持ETHERNET、EtherCAT、USB、CAN、RS485、RS232等通訊接口,通過CAN、EtherCAT總線可以連接各個擴展模塊,從而擴展數字量、模擬量或運動軸。

(1)ZMC408SCAN內置高精度PSO位置同步輸出功能,在加工圓角、曲線部分時即使進行了減速調整,在高速加工的場合,也能控制激光輸出的間距保持恒定;

(2)支持激光振鏡控制和振鏡反饋,包含2個振鏡接口,支持2D振鏡和3D振鏡,配合不帶加減速的運動指令MOVESCAN,拐角處振鏡加工自動延時,完成精準高效的激光控制,提高激光加工設備的產能;

(3)通過指令在運動中靈活的調節激光開光/關光延時,響應快,精確到us級別的控制,且設置過程簡單,大大縮短了工程師的調參時間;

(4)自帶LASER激光器控制接口,支持IPG、YLR、YLS等類型激光電源,還帶一個EXIO擴展IO接口,通過定制轉接板,靈活控制市場上主流的各種激光器;

(5)支持PC同時控制16個ZMC408SCAN控制器同時工作,形成一種振鏡陣列的激光加工;

(6)板載4路高速差分脈沖輸出,并帶4路高速差分編碼器反饋,支持EtherCAT總線驅動器的控制,支持5軸XYZAC軸的插補,支持振鏡軸與運動軸混合插補;

(7)支持直線插補、任意圓弧插補、空間圓弧、螺旋插補、電子凸輪、電子齒輪、同步跟隨、虛擬軸設置等多種運動控制功能。

02 振鏡控制

激光振鏡是一種專門用于激光加工領域的特殊的運動器件,它靠兩個振鏡片反射激光, 形成XY平面的運動。

激光振鏡不同于一般的電機,激光振鏡具有非常小的慣量,且在運動的過程中負載非常小,系統的響應非???,因此在振鏡運動中可以不用考慮振鏡加減速。

振鏡一般分模擬振鏡與數字振鏡,模擬振鏡就是振鏡驅動板是接收模擬信號方式,常用的模擬振鏡信號是直流電壓-5伏到+5伏變化的信號,對應的是電機擺動的角度,比如-5V到+5V對應-10度到+10度的電機擺動角度。

數字振鏡采用數字信號進行控制,數字信號則符合XY2-100協議。數字量-32768~32767對應電機的最大擺動角度。

正運動針對振鏡軸控制提供來一種專用的運動指令,通過ZAux_Direct_MoveScanAbs或者ZAux_Direct_MoveScan實現振鏡的快速響應。

Scan運動指令相比普通運動指令控制不帶加減速規劃,支持us級別的時間控制。通過ZAux_Direct_SetForceSpeed設置的速度與矢量距離直接計算出運行時間。

目前正運動SCAN控制器支持1-2路XY2-100數字振鏡軸的控制。

一、振鏡軸配置

正運動SCAN控制器支持1-2路振鏡軸,不同控制器映射的軸號及支持的振鏡軸功能不同,不同振鏡組對應軸號如下圖。

通過指令ZAux_Direct_SetAtype設置對應振鏡軸類型,振鏡軸類型分為三種:

  • 一種軸類型值為20(振鏡類型,帶振鏡狀態反饋,僅ZMC408SCAN支持);

  • 一種軸類型值為21(振鏡軸控制類型);

  • 一種軸類型值為22(振鏡類型,帶振鏡位置反饋,僅ZMC408SCAN支持)。

*表示不支持的功能。

二、振鏡矯正

1.重點說明

激光振鏡掃描系統如下圖所示,可見振鏡掃描的實際工作范圍由振鏡的最大偏轉角度與工作高度決定。因此振鏡軸偏轉角度對應輸出-32768~32767與實際工作范圍做單位映射時需要按照根據測試長度做比例映射。

振鏡掃描系統建立的坐標系是一個非正交的坐標系,實際的掃描場會造成枕型失真。由于振鏡本身掃描造成的枕型失真如圖(左),另外由于F-Theta平面場鏡的使用,會造成輸出輪廓的桶型失真如圖(中),疊加以后輸出的圖形具有桶型和枕型雙重失真如圖(右)。

為了使軟件坐標與實際運行距離場地對應及輸出軌跡不失真,則需要需要實時的對每一個數據點進行校正,通常采用查找表分段線性插值的方法進行位置校正,校正點越多實際輸出位置越精準。

正運動SCAN控制器提供了BOX校正、多點校正等方法,不管是系數校正還是多點校正,校正點參數都是寫到控制器內部系統數組TABLE寄存器的。因此在程序中有其他功能應用到TABLE寄存器時需要注意地址的合理分配。

(1)Box系數校正

系數校正指的是根據振鏡輸出圖形枕/桶形失真、平行四邊形失真、梯形失真、比例縮放幾種情況進行系數調整校正。

通過調用ZScan_CorrectFactor進行系數校正。先控制振鏡繪制出一個正方形校正圖形,根據校正圖形的失真按下圖情況調整對應的系數參數,根據標刻長度與測量長度調整縮放系數,直到實際標刻的尺寸與設置一致時認為校正成功,校正系以是填寫的變化量,通常以0值為參考基準變化。

(2)9點校正

9點校正指的是根據在工作范圍內標刻3*3的表格,根據每個點的理論位置與實際位置來進行振鏡校正。

先控制振鏡預繪制出一個3*3校正表格圖形,按下圖所示P1-P9的順序填入X坐標與Y坐標實際測量值,填入P1點的理論標刻與P9點的理論坐標,通過調用ZScan_Correct9進行9點校正。需重新標刻測試,直到實際標刻與理論值達到預期精度范圍。

(3)25點校正

25點校正指的是根據在工作范圍內標刻5*5的表格,校正過程與9點校正相同,通過調用ZScan_Correct25進行25點校正。校正點數越多校正精度也越高。

2.振鏡指令介紹

(1)振鏡軸9點矯正

(2)振鏡軸25點矯正

(3)振鏡軸系數矯正

(4)取消振鏡矯正

03 程序展示

九點矯正與25點矯正過程相同,但25點矯正精度更高,可通過九點矯正例程改寫25點矯正。

1.九點矯正程序如下

ZMC_HANDLE handle = NULL; //連接句柄
int rtn = ZAux_OpenEth("192.168.0.11", &handle); //連接控制器
if(CheckError(rtn,"ZAux_OpenEth")) return; //檢查函數返回
for(int iAxis = 4;iAxis<6;iAxis++)
{
rtn = ZAux_Direct_SetAtype(handle,iAxis,21); //設置軸為振鏡軸
if(CheckError(rtn,"ZAux_Direct_SetAtype")) return;
rtn = ZAux_Direct_SetUnits(handle,iAxis,500); //設置軸脈沖當量
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點校正,校正數據存儲在系統數組TABLE(1000 - 1004+21*21*2)
if(CheckError(rtn,"ZScan_CorrectFactor")) return;
rtn = ZAux_Close( handle); //關閉連接,釋放句柄
if(CheckError(rtn,"ZAux_Close")) return;
handle = NULL;

2.系數矯正例程如下

ZMC_HANDLE handle = NULL; //連接句柄
int rtn = ZAux_OpenEth("192.168.0.11", &handle); //連接控制器
if(CheckError(rtn,"ZAux_OpenEth")) return; //檢查函數返回
for(int iAxis = 4;iAxis<6;iAxis++)
{
rtn = ZAux_Direct_SetAtype(handle,iAxis,21); //設置軸為振鏡軸
if(CheckError(rtn,"ZAux_Direct_SetAtype")) return;
rtn = ZAux_Direct_SetUnits(handle,iAxis,500); //設置軸脈沖當量
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}; //最大校正區域
double m_dCorrectBox[] = {131,131}; //實際校正區域
double m_dOffset[2] = {0,0}; //偏移量 一般用于紅光偏移
double m_pdFactor[2][4] = {{1,0,0,0},{1,0,0,0}}; //校正系數 縮放系數、桶型/枕型畸變系數、平行四邊形畸變系數、梯形畸變系數
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系數校正,校正數據存儲在系統數組TABLE(1000 - 1004+21*21*2)
if(CheckError(rtn,"ZScan_CorrectFactor")) return;
rtn = ZAux_Close( handle); //關閉連接,釋放句柄
if(CheckError(rtn,"ZAux_Close")) return;
handle = NULL;

04 振鏡矯正工具

振鏡矯正工具包含了多種矯正方式,9點矯正、25點矯正、系數矯正、多點矯正、文件矯正。

參數設置界面機械參數:

先通過IP地址選擇,連上對應控制器,然后設置機械參數選擇激光器類型,設置好振鏡號,將標刻圖形的XY方向與軟件顯示的一致。

打標參數:

從上至下依次填寫標刻速度、空移速度、軸類型、脈沖當量(運動指令與速度指令的基本單位,需要修改脈沖當量為振鏡運動1mm的脈沖個數,修改過后標刻圖形相較于預定尺寸相差較小就能開始測量矯正了,預校正標刻圖形不完整或圖形比預定尺寸大很多時,將此參數調??;反之則將參數調大)。

例如:

  • 開關延時:多點矯正圓中心的點深,調開關延時

  • 關光延時:最外圈不封口的情況調關光延時

  • 拐角延時:右邊的線深,調拐角延時

  • 跳轉延時:多點矯正圓點有小尾巴,調跳轉延時

  • 結束延時:所有的運動結束后都加結束延時

激光能量控制:

(1)模擬量DA(0~4095對應0~10V電壓)

(2)PWM(調機占空比,設置頻率)

(3)IO組合

注:激光能量的控制參數,需要根據激光器能量功率的控制類型來進行修改,需參考激光器手冊。

1.9點矯正和25點矯正

  • 設置矯正參數的table起始位置:這個地址不要與其他table地址位置沖突,約使用1000個數據,占用1000個table地址;

  • 紅光游覽:可用來矯正圖形;

  • 預標刻尺寸:面積,標刻預校正圖形使用此參數;

  • 預標刻出圖形后將標刻圖形取出測量:測量兩點之間的距離,將兩點之間的距離參數填入對應的框內;

  • 標刻預矯正:根據參數設置和預標刻尺寸開始標刻預矯正圖形;

  • 僅矯正按鈕:只進行振鏡矯正,不標刻;

  • 標刻尺寸:面積,標刻預矯正圖形使用此參數;

  • 矯正并標刻:根據標刻尺寸,開始矯正并標刻圖形;

  • 保存到文件和保存到控制器:保存到文件是保存到電腦本地(保存文件可用于文件矯正和多點矯正),保存到控制器是保存到控制器的flash塊(要確保不同的振鏡軸號間用不同flash塊,不能沖突);

  • 急停:標刻急停。

(1)9點矯正標刻預矯正效果圖

(2)矯正并標刻效果圖

(3)25點矯正同9點矯正相同,只是點數更多,矯正精度更高。

2.系數矯正

系數矯正和9點矯正等差不多,只是多了一個原點偏移和XY的縮放比。

3.多點矯正

(1)矯正大?。和?;

(2)標刻點半徑:標刻圓(點)半徑;

(3)標刻點數量:可選9*9、17*17、33*33、65*65,目前開發9*9、17*17,更多點數矯正請聯系正運動技術支持工程師;

(4)填充點間距:同心圓半徑差;

(5)完整圖形:標刻完整圖形(掃描儀可以完整掃描出整張圖片);

(6)左邊/右邊圖形:標刻左/右圖形;(圖形較大時,使用掃描儀無法一次將所有圖形全部掃描,請使用左右分別標刻,分別掃描,導入兩張圖片);

(7)急停:標刻急停;

(8)點處理:

  • 模式:單張圖片、兩張圖片:根據掃描標刻后的矯正圖紙是否分兩次掃描,或分左右標刻

  • 極性:白背景黑點、黑背景白點

  • 閾值方式:自動、手動閾值:(閾值參數范圍0~255)黑白照片白色為255,黑色為0,處于低閾值至高閾值之間之間的像素處理為 255,否則為 0,用于處理掃描標刻后的圖像處理

  • 低閾值:0~255

  • 高閾值:0~255 應設置為大于等于低閾值數據

  • 最大面積/最小面積:通過篩選原點面積過濾圖像噪點(雜點)

  • 詳見Zvision幫助

(9)尋入9點矯正文件:導入9點矯正文件(多點矯正需要9點矯正中“保存矯正數據到文件”的文件)。

4.文件矯正

功能:導入9/25/多點矯正“保存矯正數據到文件”保存的文件,更新參數至矯正界面、僅矯正或矯正并標刻等。

5.視頻演示

本次,正運動技術開放式激光振鏡運動控制器:C++振鏡矯正方法與實現,就分享到這里。

更多精彩內容請關注“正運動小助手”公眾號,需要相關開發環境與例程代碼,請咨詢正運動技術銷售工程師:400-089-8936。

本文由正運動技術原創,歡迎大家轉載,共同學習,一起提高中國智能制造水平。文章版權歸正運動技術所有,如有轉載請注明文章來源。

審核編輯(
王靜
)
投訴建議

提交

查看更多評論
其他資訊

查看更多

開放式激光振鏡運動控制器:C++快速開發

EtherCAT總線運動控制器中簡單易用的直線插補

運動控制器多工位位置比較輸出在轉盤式視覺篩選設備中的應用

EtherCAT運動控制卡的自定義運動曲線

開放式激光振鏡運動控制器(五):ZMC408SCAN光纖激光器能量控制