女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

PSO位置同步輸出在激光振鏡加工中的應用

正運動技術 ? 來源:正運動技術 ? 作者:正運動技術 ? 2022-02-24 11:48 ? 次閱讀

今天,正運動小助手給大家分享一下運動控制器之ZMC420SCAN的位置同步輸出PSO在激光振鏡加工中的應用。

一ZMC420SCAN硬件介紹

1.功能介紹

ZMC420SCAN總線控制器支持ECAT/RTEX總線連接,支持最多達20軸運動控制,支持直線插補、任意圓弧插補、空間圓弧、螺旋插補、電子凸輪、電子齒輪、同步跟隨、虛擬軸設置等;采用優化的網絡通訊協議可以實現實時的運動控制。 ZMC420SCAN總線控制器支持脈沖軸/總線軸/振鏡軸混合插補。

ZMC420SCAN系列運動控制器支持以太網RS232通訊接口電腦相連,接收電腦的指令運行,可以通過CAN總線去連接各個擴展模塊,從而擴展輸入輸出點數或運動軸。

ZMC420SCAN系列運動控制卡的應用程序可以使用VC,VB,VS,C++C#等軟件來開發,程序運行時需要動態庫zmotion.dll。調試時可以把ZDevelop軟件同時連接到控制器,從而方便調試、方便觀察。

PSO位置同步輸出在激光振鏡加工中的應用

2.硬件接口

PSO位置同步輸出在激光振鏡加工中的應用

PSO位置同步輸出在激光振鏡加工中的應用

PSO位置同步輸出在激光振鏡加工中的應用

PSO位置同步輸出在激光振鏡加工中的應用

3.振鏡控制過程

激光振鏡是一種專門用于激光加工領域的特殊的運動器件,激光振鏡頭內包含的主要元件是激光發生器,兩個電機和兩個振鏡片,它靠兩個電機分別控制兩個振鏡片X和Y反射激光,形成XY平面的運動,這兩個電機使用控制器上的振鏡軸接口控制。

激光振鏡不同于一般的電機,激光振鏡具有非常小的慣量,且在運動的過程中負載非常小,只需要帶動反射鏡片,系統的響應非常快。

PSO位置同步輸出在激光振鏡加工中的應用

ZMC420SCAN支持XY2-100振鏡協議,支持運動控制與振鏡聯合插補運動。上位機通過網口與控制器相連,通過XY2-100振鏡協議進行控制振鏡軸的運動,通過總線協議或者脈沖模式控制伺服軸運動。

使用ZMC420SCAN控制器的振鏡軸接口連接激光振鏡頭,每個振鏡軸接口內包含兩路振鏡通道信號,分別控制振鏡片X、Y的偏轉,從而控制了激光打到工件的位置。

PSO位置同步輸出在激光振鏡加工中的應用

4.控制器PWM模擬量介紹

ZMC420SCAN的外部通用輸出口0-11都具有PWM輸出功能,PWM輸出受正常輸出功能的控制,只有輸出口狀態ON的時候PWM才能實際輸出,這樣可以用來控制激光能量。

PSO位置同步輸出在激光振鏡加工中的應用

ZMC420SCAN控制器存在兩路模擬量輸入輸出,可進行控制激光器能量輸出,模擬量精度為12位。

PSO位置同步輸出在激光振鏡加工中的應用

5.控制器基本信息

PSO位置同步輸出在激光振鏡加工中的應用

軸0-3為普通脈沖軸,振鏡0為軸4、軸5控制振鏡XY,振鏡1為軸6、軸7控制XY。

二C++進行振鏡+運動控制開發

1.新建MFC項目并添加函數庫

(1)在VS2015菜單“文件”→“新建”→ “項目”,啟動創建項目向導。

PSO位置同步輸出在激光振鏡加工中的應用

(2)選擇開發語言為“Visual C++”和程序類型“MFC應用程序”。

PSO位置同步輸出在激光振鏡加工中的應用

(3)點擊下一步即可。

PSO位置同步輸出在激光振鏡加工中的應用

(4)選擇類型為“基于對話框”,下一步或者完成。

PSO位置同步輸出在激光振鏡加工中的應用

(5)找到廠家提供的光盤資料,路徑如下(64位庫為例)。

A.進入廠商提供的光盤資料找到“8.PC函數”文件夾,并點擊進入。

PSO位置同步輸出在激光振鏡加工中的應用

B.選擇“函數庫2.1”文件夾。

PSO位置同步輸出在激光振鏡加工中的應用

C.選擇“Windows平臺”文件夾。

PSO位置同步輸出在激光振鏡加工中的應用

D.根據需要選擇對應的函數庫這里選擇64位庫。

PSO位置同步輸出在激光振鏡加工中的應用

E.解壓C++的壓縮包,里面有C++對應的函數庫。

PSO位置同步輸出在激光振鏡加工中的應用

F.函數庫具體路徑如下。

PSO位置同步輸出在激光振鏡加工中的應用

(6)將廠商提供的C++的庫文件和相關頭文件復制到新建的項目里面。

PSO位置同步輸出在激光振鏡加工中的應用

(7)在項目中添加靜態庫和相關頭文件。

A.先右擊項目文件,接著依次選擇:“添加”→“現有項”。

PSO位置同步輸出在激光振鏡加工中的應用

B.在彈出的窗口中依次添加靜態庫和相關頭文件。

(8)聲明用到的頭文件和定義控制器連接句柄。

PSO位置同步輸出在激光振鏡加工中的應用

至此項目新建完成,可進行MFC項目開發。

2.查看PC函數手冊,熟悉相關函數接口

(1)PC函數手冊也在光盤資料里面,具體路徑如下:“光盤資料\8.PC函數\函數庫2.1\ZMotion函數庫編程手冊 V2.1.pdf”

PSO位置同步輸出在激光振鏡加工中的應用

(2)鏈接控制器,獲取鏈接句柄。

ZAux_OpenEth()接口說明:

PSO位置同步輸出在激光振鏡加工中的應用

(3)振鏡運動打包接口。

PSO位置同步輸出在激光振鏡加工中的應用

PSO位置同步輸出在激光振鏡加工中的應用

為了使得振鏡運動能夠高速的執行,采用打包所有文件下載到控制器的方式,提高振鏡的運動速度,保證過程中振鏡速度得到有效的提升,不會因為上位機下發過程跟不上控制器運動的情況,導致中間出現運動停止。

PSO位置同步輸出在激光振鏡加工中的應用

通過精準輸出設置,達到高速情況下進行到位后及時打開OP的效果,保證激光打開的準確性,已達到PSO在激光加工中的應用。

PSO位置同步輸出在激光振鏡加工中的應用

使用movescanabs是不帶加減速的運動指令,支持us級別的時間控制,有效控制調節出光位置時間。

PSO位置同步輸出在激光振鏡加工中的應用

使用moveop_delay進行調節開關光延時時間,防止由于振鏡移動滯后導致的漏光或者末端點能量太大的現象出現,如下圖所示。

A.開光延時:

PSO位置同步輸出在激光振鏡加工中的應用

B.關光延時:

PSO位置同步輸出在激光振鏡加工中的應用

3.MFC開發控制器PSO位置同步輸出運動例程

(1)例程界面如下。

PSO位置同步輸出在激光振鏡加工中的應用

(2)鏈接按鈕的事件處理函數中調用鏈接控制器的接口函數ZAux_OpenEth(),與控制器進行鏈接,鏈接成功后啟動定時器1監控控制器狀態。


//網口鏈接控制器

void CSingle_move_Dlg::OnOpen()

{

char buffer[256];

int32 iresult;

//如果已經鏈接,則先斷開鏈接

if(NULL != g_handle)

{

ZAux_Close(g_handle);

g_handle = NULL;

}

//從IP下拉框中選擇獲取IP地址

GetDlgItemText(IDC_IPLIST,buffer,255);

buffer[255] = '\0';

//開始鏈接控制器

iresult = ZAux_OpenEth(buffer, &g_handle);

if(ERR_SUCCESS != iresult)

{

g_handle = NULL;

MessageBox(_T("鏈接失敗"));

SetWindowText("未鏈接");

return;

}

//鏈接成功開啟定時器1

SetWindowText("已鏈接");

SetTimer( 1, 100, NULL );

}

(3)通過定時器監控控制器狀態,以及運行過程所用時間。

void CgalvmoveDlg::OnTimer(UINT_PTR nIDEvent)

{

// TODO: 在此添加消息處理程序代碼和/或調用默認值

if (NULL == g_handle)

{

MessageBox(_T("鏈接斷開"));

return;

}

if (1 == nIDEvent)

{

CString string;

float position = 0;

ZAux_Direct_GetDpos(g_handle, 4, &position); //獲取當前軸位置

string.Format("振鏡X軸當前位置:%.2f", position);

GetDlgItem(IDC_CURPOS)->SetWindowText(string);

float NowSp = 0;

ZAux_Direct_GetVpSpeed(g_handle, 4, &NowSp); //獲取當前軸速度

string.Format("振鏡X軸當前速度:%.2f", NowSp);

GetDlgItem(IDC_CURSPEED)->SetWindowText(string);

ZAux_Direct_GetDpos(g_handle, 5, &position); //獲取當前軸位置

string.Format("振鏡Y軸當前位置:%.2f", position);

GetDlgItem(IDC_CURPOS2)->SetWindowText(string);

ZAux_Direct_GetVpSpeed(g_handle, 5, &NowSp); //獲取當前軸速度

string.Format("振鏡Y軸當前速度:%.2f", NowSp);

GetDlgItem(IDC_CURSPEED2)->SetWindowText(string);

int status = 0;

ZAux_Direct_GetIfIdle(g_handle, 4, &status); //判斷當前軸狀態

if (status == -1)

{

GetDlgItem(IDC_CURSTATE)->SetWindowText("當前狀態:停 止");

}

else

{

GetDlgItem(IDC_CURSTATE)->SetWindowText("當前狀態:運動中");

}

}

if (2 == nIDEvent)

{

int idlestatus = 0;

ZAux_Direct_GetIfIdle(g_handle, 4, &idlestatus);

if (idlestatus == -1)

{

CString string;

m_endtime = GetTickCount() - m_starttime;

string.Format("過程所用時長:%dms", m_endtime);

GetDlgItem(IDC_TIME)->SetWindowText(string);

KillTimer(2);

}

}

CDialogEx::OnTimer(nIDEvent);

}

(4)通過啟動按鈕的事件處理函數采用打包字符串的方式進行運行振鏡運動軌跡,將振鏡運動的速度得到提升效果,并在文件中直接對控制器參數進行設置,并進行對應設置控制器精準輸出,達到到位準確輸出的目的。接著在運動中對應調整開光延時,關光延時,調整振鏡運行開關光延時異常狀態出現。

void CgalvmoveDlg::OnBnClickedStart()

{

// TODO: 在此添加控件通知處理程序代碼

int ret = 0;

if (NULL == g_handle)

{

MessageBox(_T("鏈接斷開狀態"));

return;

}

UpdateData(true);//刷新參數

float Xpos[5];

float Ypos[5];

CString StrDis;

GetDlgItem(IDC_EDIT_X1)->GetWindowText(StrDis);

Xpos[0] = atoi(StrDis);

GetDlgItem(IDC_EDIT_X2)->GetWindowText(StrDis);

Xpos[1] = atoi(StrDis);

GetDlgItem(IDC_EDIT_X3)->GetWindowText(StrDis);

Xpos[2] = atoi(StrDis);

GetDlgItem(IDC_EDIT_X4)->GetWindowText(StrDis);

Xpos[3] = atoi(StrDis);

GetDlgItem(IDC_EDIT_X5)->GetWindowText(StrDis);

Xpos[4] = atoi(StrDis);

GetDlgItem(IDC_EDIT_Y1)->GetWindowText(StrDis);

Ypos[0] = atoi(StrDis);

GetDlgItem(IDC_EDIT_Y2)->GetWindowText(StrDis);

Ypos[1] = atoi(StrDis);

GetDlgItem(IDC_EDIT_Y3)->GetWindowText(StrDis);

Ypos[2] = atoi(StrDis);

GetDlgItem(IDC_EDIT_Y4)->GetWindowText(StrDis);

Ypos[3] = atoi(StrDis);

GetDlgItem(IDC_EDIT_Y5)->GetWindowText(StrDis);

Ypos[4] = atoi(StrDis);

float OpenDelayTime = 0, OffDelayTime = 0;

CString StrTime = "";

GetDlgItem(IDC_EDIT_OPEN)->GetWindowText(StrTime);

OpenDelayTime = atoi(StrTime);

GetDlgItem(IDC_EDIT_OFF)->GetWindowText(StrTime);

OffDelayTime = atoi(StrTime);

uint32 nRemain = 0;

CString str = "";

//獲取控制能寫入文件的最大大小

ret = ZAux_Scan_3FileRamGetRemainSpace(g_handle, &nRemain);

//啟動三次文件下載

ret = ZAux_Scan_3FileRamDownBegin(g_handle, &nRemain);

//主軸號寫入

str = "base(4,5)\n";

//參數寫入

CString str2;

str2.Format("ATYPE = %d,%d\n", m_Atype, m_Atype);

str += str2;

//設置精準輸出 ,保證激光輸出正常

str2.Format("AXIS_ZSET(4) = 3\n");

str += str2;

str2.Format("units = %d,%d\n",m_units,m_units);

str += str2;

str2.Format("merge = 1,1\n");

str += str2;

str2.Format("speed = %f,%f\n", (float)m_speed, (float)m_speed);

str += str2;

str2.Format("force_speed = %f,%f\n", (float)m_speed, (float)m_speed);

str += str2;

str2.Format("accel = %f,%f\n", (float)m_acc, (float)m_acc);

str += str2;

str2.Format("decel = %f,%f\n", (float)m_dec, (float)m_dec);

str += str2;

str2.Format("sramp = %d,%d\n", m_sramp, m_sramp);

str += str2;

str += "move_op(47,on)";

str += "move_delay(100)";

//運動軌跡寫入

str += "movescanabs(0,0)\n";

for (int i = 0; i < 5; i++)

{

str2.Format("movescanabs(%f,%f)\n", Xpos[i], Ypos[i]);

str += str2;

if (i == 0)

{

str2.Format("moveop_delay = %f\n", OpenDelayTime / 1000);

str += str2;

str += "move_op(8,on)\n";

}

if (i == 4)

{

str2.Format("moveop_delay = %f\n", OffDelayTime / 1000);

str += str2;

str2.Format("move_delay(%f)\n", OffDelayTime / 1000);

str += str2;

str += "move_op(8,off)\n";

}

}

str += "move_op(47,off)";

//打包字符串下載到控制器運行

ret = ZAux_Scan_Motion3FileMem(g_handle, str, str.GetLength());

//運行三次文件

ret = ZAux_Scan_Motion3FileRun(g_handle, 2);

ret = ZAux_Scan_3FileRamDownEnd(g_handle);

m_starttime = GetTickCount();

SetTimer(2,100,NULL);

UpdateData(false);

}

(5)通過斷開按鈕的事件處理函數來斷開與控制卡的連接。

void CSingle_move_Dlg::OnClose() //斷開鏈接

{

// TODO: Add your control notification handler code here

if(NULL != g_handle)

{

KillTimer(1); //關定時器

KillTimer(2);

ZAux_Close(g_handle);

g_handle = NULL;

SetWindowText("未鏈接");

}

}

(6)通過坐標清零按鈕的事件處理函數移動振鏡軸回零到中心零點位置,不直接使用dpos=0,修改振鏡軸坐標。

void CSingle_move_Dlg::OnZero() //清零坐標

{

if(NULL == g_handle)

{

MessageBox(_T("鏈接斷開狀態"));

return ;

}

// TODO: Add your control notification handler code here

int axislist[2] = { 4,5 };

float dposlist[2] = { 0 };

ZAux_Direct_MoveAbs(g_handle,2,axislist,dposlist); //設置運動回零點

}

(7)通過停止運動的的事件處理函數將文件運行的任務停止,并取消當前運動,實現實時停止功能。

void CgalvmoveDlg::OnBnClickedStop()

{

// TODO: 在此添加控件通知處理程序代碼

if (NULL == g_handle)

{

MessageBox(_T("鏈接斷開狀態"));

return;

}

char retbuffer[2048];

ZAux_Execute(g_handle,"stoptask 2", retbuffer,2048);

Sleep(10);

ZAux_Direct_Single_Cancel(g_handle, 4, 2); //

}


三調試與監控

編譯運行例程,同時通過ZDevelop軟件連接控制器對控制器狀態進行監控。

1.ZDevelop軟件連接控制器監控控制器的狀態,查看振鏡軸對應參數,并可搭配示波器檢測振鏡軌跡。

設置振鏡軸運動,首先需要將軸類型配置成21振鏡軸類型,并對應配置振鏡軸的速度加減速等參數才可操作振鏡進行運動。并可通過狀態顯示部分,查看到當前軸的位置以及運行軌跡所用時間。

PSO位置同步輸出在激光振鏡加工中的應用

2.通過ZDevelop軟件的示波器監控振鏡運動運行軌跡,并可監控到運行軌跡所用時間,實際調節開關光延時參數效果如下所示。

PSO位置同步輸出在激光振鏡加工中的應用

PSO位置同步輸出在激光振鏡加工中的應用

本次,正運動技術開放式激光振鏡+運動控制器(四):PSO位置同步輸出在激光振鏡加工中的應用,就分享到這里。更多精彩內容請關注“。

審核編輯:湯梓紅

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 控制器
    +關注

    關注

    114

    文章

    16966

    瀏覽量

    182896
  • 激光
    +關注

    關注

    20

    文章

    3423

    瀏覽量

    65794
  • 加工
    +關注

    關注

    0

    文章

    88

    瀏覽量

    16574
收藏 人收藏

    評論

    相關推薦
    熱點推薦

    激光焊接機的激光器類型選擇

    在深入探討激光焊接機所使用的激光器類型時,我們首先要明確的是,無論是YAG激光器還是脈沖激光
    的頭像 發表于 04-08 10:39 ?345次閱讀

    激光技術在材料加工的應用

    隨著科技的飛速發展,激光技術以其獨特的優勢在材料加工領域占據了越來越重要的地位。尤其在高精度切割和焊接方面,激光技術的應用已經取得了明顯的成果。本文將探討激光技術如何在材料
    的頭像 發表于 03-12 14:22 ?502次閱讀

    XBLW/芯伯樂產品應用在高速驅動上的開發設計

    、高精度控制、高穩定性和寬頻率范圍等特點,能夠滿足不同應用場景的需求。在激光加工,高速用于激光
    的頭像 發表于 02-21 18:35 ?253次閱讀
    XBLW/芯伯樂產品應用在高速<b class='flag-5'>振</b><b class='flag-5'>鏡</b>驅動上的開發設計

    激光運動控制器在多鏡頭布料激光切割解決方案

    正運動多鏡頭布料激光切割解決方案
    的頭像 發表于 02-18 14:10 ?314次閱讀
    <b class='flag-5'>激光</b><b class='flag-5'>振</b><b class='flag-5'>鏡</b>運動控制器在多<b class='flag-5'>振</b>鏡頭布料<b class='flag-5'>激光</b>切割解決方案

    激光焊接的擺動原理

    激光錫焊是非常高效的一種焊接方式,通過的擺動來對焊接的區域進行掃描、松盛光電來分享激光
    的頭像 發表于 01-17 14:02 ?870次閱讀
    <b class='flag-5'>激光</b>焊接<b class='flag-5'>中</b><b class='flag-5'>振</b><b class='flag-5'>鏡</b>的擺動原理

    激光運動控制器在智能激光打砂機應用

    智能集觸屏交互和語音控制于一身,是智能家居的科技產物之一。其生產涉及剝漆、磨砂等工藝。傳統工藝復雜,無法滿足消費者的個性化需求;現代技術采用激光去除漆層和打砂,不產生廢料且環保,無需掩膜,操作簡便,成型快,精度高,適合生產大幅面智能
    的頭像 發表于 12-14 11:41 ?504次閱讀
    <b class='flag-5'>激光</b><b class='flag-5'>振</b><b class='flag-5'>鏡</b>運動控制器在智能<b class='flag-5'>鏡</b><b class='flag-5'>激光</b>打砂機應用

    喜訊!正運動榮獲激光星銳獎“最佳激光設備配套產品技術創新獎”

    運動控制,控制,激光控制一站式開發——開放式激光運動控制器
    的頭像 發表于 11-29 14:24 ?456次閱讀
    喜訊!正運動榮獲<b class='flag-5'>激光</b>星銳獎“最佳<b class='flag-5'>激光</b>設備配套產品技術創新獎”

    共聚焦激光顯微在材料科學的應用

    材料科學是研究材料的結構、性質、加工和應用的學科。隨著科技的發展,對材料性能的要求越來越高,這就需要更精確的表征手段來研究材料的微觀結構。共聚焦激光顯微(CLSM)因其高分辨率和三維成像能力,在
    的頭像 發表于 10-30 09:44 ?667次閱讀

    SLM激光加工系統與加工系統兩用光路案例分享

    原有光路 01、實驗背景 隨著精密激光加工需求的增長,如何在現有系統基礎上增加空間光調制器(SLM)作為加工設備,搭建一套靈活的雙模式光
    的頭像 發表于 10-29 15:56 ?731次閱讀
    SLM<b class='flag-5'>激光</b><b class='flag-5'>加工</b>系統與<b class='flag-5'>振</b><b class='flag-5'>鏡</b><b class='flag-5'>加工</b>系統兩用光路案例分享

    開放式激光運動控制器在Ubuntu+Qt下自定義圖形標刻

    開放式激光運動控制器在Ubuntu+Qt下自定義圖形標刻
    的頭像 發表于 10-08 10:45 ?948次閱讀
    開放式<b class='flag-5'>激光</b><b class='flag-5'>振</b><b class='flag-5'>鏡</b>運動控制器在Ubuntu+Qt下自定義圖形標刻

    開放式激光運動控制器在Ubuntu+Qt下CAD圖形標刻

    開放式激光運動控制器再Ubuntu+Qt下CAD圖形標刻
    的頭像 發表于 09-18 15:12 ?613次閱讀
    開放式<b class='flag-5'>激光</b><b class='flag-5'>振</b><b class='flag-5'>鏡</b>運動控制器在Ubuntu+Qt下CAD圖形標刻

    開放式激光運動控制器的激光清洗應用

    開放式激光運動控制器的激光清洗解決方案。
    的頭像 發表于 07-18 09:44 ?642次閱讀
    開放式<b class='flag-5'>激光</b><b class='flag-5'>振</b><b class='flag-5'>鏡</b>運動控制器的<b class='flag-5'>激光</b>清洗應用

    激光切割機參數設置中焦點位置是什么?

    ? ? ? 激光切割機是一種利用高功率激光束對材料進行切割的設備,廣泛應用于金屬加工、廣告制作、服裝加工等領域。在激光切割機的操作過程
    的頭像 發表于 06-23 15:38 ?2899次閱讀

    激光切割如何調整焦點位置

    激光切割是一種高精度的加工技術,廣泛應用于金屬、非金屬等多種材料的加工。在激光切割過程,焦點位置
    的頭像 發表于 06-14 09:33 ?4156次閱讀

    激光切割機參數設置中焦點位置是什么

    激光切割機是一種利用高功率激光束對材料進行切割的設備,廣泛應用于金屬加工、廣告制作、服裝加工等領域。在激光切割機的操作過程
    的頭像 發表于 06-14 09:28 ?2619次閱讀