0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

開放式激光振鏡運(yùn)動控制器在Ubuntu+Qt下CAD圖形標(biāo)刻

正運(yùn)動技術(shù) ? 來源:正運(yùn)動技術(shù) ? 作者:正運(yùn)動技術(shù) ? 2024-09-18 15:12 ? 次閱讀

前面課程我們講述了如何通過Ubuntu+Qt進(jìn)行振鏡校正(詳情點(diǎn)擊→開放式激光振鏡運(yùn)動控制器在Ubuntu+Qt下的激光振鏡校正),本節(jié)CAD圖形標(biāo)刻是在振鏡校正的前提下實現(xiàn)的。

在正式學(xué)習(xí)之前,我們先了解一下正運(yùn)動ZMC408SCAN-V22運(yùn)動控制器,ZMC408SCAN-V22控制器支持在Linux環(huán)境下進(jìn)行開發(fā)使用。

01ZMC408SCAN-V22硬件介紹

ZMC408SCAN-V22是正運(yùn)動技術(shù)推出的高性能雙振鏡運(yùn)動控制器,集成了2個百兆以太網(wǎng)口,支持EtherCAT、EtherNET、CAN、RS232RS485、24路通用數(shù)字輸入、20路通用數(shù)字輸出、2路通用模擬量輸出、2路通用模擬量輸入、4個本地差分脈沖軸接口、1個MPG手輪編碼器接口、2個帶反饋振鏡接口、1個LASER激光專用接口、1個FIBER激光器接口。開放式系統(tǒng)框圖如下所示:

wKgaombqfMmAENTdAAefVd_mB44283.png

ZMC408SCAN-V22總線控制器支持EtherCAT總線連接,支持最快500μs的刷新周期,支持最多達(dá)16軸運(yùn)動控制,支持直線插補(bǔ)、任意圓弧插補(bǔ)、空間圓弧、螺旋插補(bǔ)、電子凸輪、電子齒輪、同步跟隨、虛擬軸設(shè)置等;采用優(yōu)化的網(wǎng)絡(luò)通訊協(xié)議可以實現(xiàn)實時的運(yùn)動控制。

wKgaombqfM6AMYffAAK1OSOaHPw424.png

ZMC408SCAN-V22通過CAN、EtherCAT總線可以連接各個擴(kuò)展模塊,從而擴(kuò)展數(shù)字量、模擬量或運(yùn)動軸??梢栽?/p>

Windows,Linux,Mac,Android,Wince各種操作系統(tǒng)下開發(fā),提供vc,c#,vb.net,labview等各種環(huán)境的dll庫。上位機(jī)軟件編程參考《ZMotion PC函數(shù)庫編程手冊》。

wKgaomagX2SAGZXJAAFWXI2sSnE360.png

02 Ubuntu+Qt進(jìn)行CAD圖形標(biāo)刻項目的開發(fā)

1.在Qt Creator菜單選擇“文件”→“新建文件或項目...”,打開創(chuàng)建項目向?qū)?。選擇Application項目集,創(chuàng)建Qt Widgets Application項目,設(shè)置項目名稱和保存位置。

wKgaombqfOSAINhrAAEgl86JlkI453.png

2.導(dǎo)入廠家提供的相關(guān)函數(shù)庫及頭文件。

(1)將zmotion.h和zmcaux.h、zmcaux.cpp、ZmotionCad3.h以及l(fā)ibzmotion.so和libZmotionCAD3.so庫復(fù)制到新建的項目文件夾中。

wKgaombqfOiAa4z7AACeGZd_deU114.png

(2)在Qt Creator選擇新建的Qt項目右擊選擇“添加庫...”→“外部庫”點(diǎn)擊下一步,將剛才復(fù)制到項目文件夾上的libzmotion.so和libZmotionCAD3.so庫文件導(dǎo)入到項目中。

wKgaombqfO2AcXVUAADJ3jnJcTE356.png

(3)在Qt Creator下右擊新建的Qt項目,選擇“添加現(xiàn)有文件...”,將之前復(fù)制到項目文件下的頭文件zmotion.h和ZScancorrect.h以及zmcaux.cpp和zmcaux.h添加到項目中。

wKgZombqfPGAUNX3AAHE7r5eRu4838.png

(4)函數(shù)庫添加成功后,打開pro文件可以看到相關(guān)的函數(shù)庫和頭文件信息。此時已經(jīng)將例程需要用到的函數(shù)庫和頭文件都加入到項目中了,接下來開始實現(xiàn)例程。

wKgaombqfPWALwRJAACw_f5w6-U891.png

03CAD圖形標(biāo)刻流程以及相關(guān)函數(shù)介紹

1.CAD圖形標(biāo)刻流程圖

wKgaombqfPiATgrhAAC3PqA-zs0527.png

2.相關(guān)函數(shù)介紹

(1)連接控制器。

wKgaombqfP6ALsmSAAEAl8rMWQk886.png

(2)導(dǎo)入CAD圖形。

wKgZombqfQKAHqs-AAFOiZILLc4266.png

(3)取消CAD圖形導(dǎo)入,釋放整個圖層鏈表。

wKgaombqfQeANqblAACub07k9TY921.png

(4)獲取CAD圖形的范圍。

wKgaombqfQ2AAAMQAAFT1LLXzbc193.png

(5)CAD圖形解析后的鏈表結(jié)構(gòu),CAD庫通過雙向循環(huán)鏈表來存放具體的圖形數(shù)據(jù)以及解析后的坐標(biāo)數(shù)據(jù)。

typedef struct Struct_ZCad_VectGroup
{
    int m_itemtype; //類型
    struct Struct_ZCad_VectGroup *m_prev;
    struct Struct_ZCad_VectGroup *m_pnext;
    int     m_GroupNum;       //組號
    uint32  m_ColorPen;       //顏色 DWORD
    Struct_ZCad_Vect *m_pVect; //曲線列表    
}Struct_ZCad_VectGroup;

(6)下載三次文件。

wKgZombqfZGAevlNAAD7PD1RkCw654.png

(7)通用命令執(zhí)行接口。

wKgZombqfZyATK9bAAEireRLb1A740.png

(8)獲取輸出口的狀態(tài)。

wKgZombqfaOAPxTQAADXjBpAlxA876.png

04 CAD圖形標(biāo)刻的實現(xiàn)例程

CAD圖形標(biāo)刻例程主要是使用CAD庫對CAD圖形進(jìn)行解析,將圖形數(shù)據(jù)解析為鏈表結(jié)構(gòu),通過對鏈表的遍歷,獲取圖形的坐標(biāo)數(shù)據(jù),將所有坐標(biāo)點(diǎn)數(shù)據(jù)生成三次文件字符串,下載到控制器中,即可實現(xiàn)CAD圖形的標(biāo)刻。

1.導(dǎo)入CAD圖形。

void MainWindow::on_import_2_clicked()
{
    data_Load();  //獲取界面的設(shè)置參數(shù)
    strFile3.clear();
    LaserScan_z3p_Init();  //三次文件字符串初始化
    QString qstr = ui->file_route->text();  //獲取CAD圖形的路徑和文件名
    QByteArray byteArray = qstr.toUtf8();
    const char* cstr = byteArray.constData();
    m_pGraph = ZMotionCad3_ImportVectGraph(cstr,1016,0,0.001,0); // 導(dǎo)入圖形生成軌跡
    update();  //更新界面圖形
}

2.遍歷鏈表,生成三次文件字符串,首先獲取CAD圖形 數(shù)據(jù),開始遍歷鏈表,通過內(nèi)部實現(xiàn)的空移、開光、標(biāo)刻、關(guān)光函數(shù)接口生成三次文件字符串。以下是部分實現(xiàn)代碼。

if(m_pGraph !=NULL)
{
    Struct_ZCad_VectGroup *ps = m_pGraph;
    do
    {
        Struct_ZCad_Vect * pVect = ps->m_pVect;
        do
        {
            Struct_ZCad_Seg * pSeg = pVect->m_pLine;
            //空移到起點(diǎn)
            LaserScan_z3p_EmptyMove(strFile3,pSeg->x1,pSeg->y1,markPara.JumpSpeed,markPara.JumpDelay);
            //開光
            LaserScan_z3p_OpenLight(strFile3,io_value.emit_io,markPara.OpenDelay,markPara.MarkSpeed);
            int i = 0;
            do
            {
                if(!pSeg->m_Param1)
                {
                    // 運(yùn)動
                    strFile3 += QString("MOVESCANABS(%1,%2)n").arg(pSeg->x2).arg(pSeg->y2);
                }
                i++;
                pSeg = pSeg->m_pnext;
            }while(pSeg != pVect->m_pLine);
            //關(guān)光
            LaserScan_z3p_CloseLight(strFile3,io_value.emit_io,markPara.CloseDelay,markPara.JumpDelay);
            pVect = pVect->m_pnext;
        }while(pVect != ps->m_pVect);
        ps = ps->m_pnext;
    }while(ps != m_pGraph);
}

3.取消圖形導(dǎo)入,清空圖形鏈表,調(diào)用接口函數(shù),清空鏈表,同時更新界面即可。

void MainWindow::on_cancel_clicked()
{
    ZMotionCad3_DeleteChain((Struct_ZCad_Item *)m_pGraph);
    m_pGraph = NULL;
    update();
}

4.將三次文件字符串下載到控制器中。

void MainWindow::on_create_File3_clicked()
{
    ZMC_DownMem3File(g_handle,strFile3.toLatin1().data(),strFile3.length(),"Zmc_CAD.z3p");
    QString filePath = "Zmc_CAD.z3p";
    QFile file(filePath);
    if (file.open(QIODevice::WriteOnly | QIODevice::Text))
    {
        QTextStream stream(&file);
        stream 

5.使用在線命令執(zhí)行三次文件,標(biāo)刻CAD圖形。

void MainWindow::on_but_Mark_clicked()
{
    if( 0 == g_handle)
    {
        QMessageBox::warning(this,"提示","控制器未連接!");
        return;
    }
    char Response[1024];
    ZMC_Execute(g_handle,"FILE3_RUN  "Zmc_CAD.z3p",7 ",500,Response,1024);
}

05 CAD圖形標(biāo)刻的實現(xiàn)效果

1.連接控制器,設(shè)置激光器以及工藝參數(shù)。

wKgaombqfWiAEFyiAABMILHOz5A941.jpg

2.選擇CAD圖形導(dǎo)入,繪制圖形。

wKgaombqfWyANoZQAABNLCgubkU243.jpg

3.生成三次文件,標(biāo)刻CAD圖形。

wKgZombqfW2AKAxWAABg3G45lvk670.jpg

4.使用示波器抓取標(biāo)刻的CAD圖形。

wKgaombqfW2AOUYjAABxhG0zW10216.jpg

本次,正運(yùn)動技術(shù)開放式激光振鏡運(yùn)動控制器在Ubuntu+Qt下CAD圖形標(biāo)刻,就分享到這里。

更多精彩內(nèi)容請關(guān)注“正運(yùn)動小助手”公眾號,需要相關(guān)開發(fā)環(huán)境與例程代碼,請咨詢正運(yùn)動技術(shù)銷售工程師

本文由正運(yùn)動技術(shù)原創(chuàng),歡迎大家轉(zhuǎn)載,共同學(xué)習(xí),一起提高中國智能制造水平。文章版權(quán)歸正運(yùn)動技術(shù)所有,如有轉(zhuǎn)載請注明文章來源。

審核編輯 黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 運(yùn)動控制器
    +關(guān)注

    關(guān)注

    2

    文章

    386

    瀏覽量

    24590
  • CAD
    CAD
    +關(guān)注

    關(guān)注

    17

    文章

    1069

    瀏覽量

    72199
  • Ubuntu
    +關(guān)注

    關(guān)注

    5

    文章

    554

    瀏覽量

    29429
  • 開放式
    +關(guān)注

    關(guān)注

    0

    文章

    24

    瀏覽量

    9186
  • 激光振鏡
    +關(guān)注

    關(guān)注

    1

    文章

    18

    瀏覽量

    3259
收藏 人收藏

    評論

    相關(guān)推薦

    開放式激光運(yùn)動控制器Ubuntu+Qt下自定義圖形標(biāo)

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

    開放式激光運(yùn)動控制器Ubuntu+Qt的文本標(biāo)

    基于Ubuntu+Qt的文本標(biāo)例程的實現(xiàn)
    的頭像 發(fā)表于 09-10 10:37 ?207次閱讀
    <b class='flag-5'>開放式</b><b class='flag-5'>激光</b><b class='flag-5'>振</b><b class='flag-5'>鏡</b><b class='flag-5'>運(yùn)動</b><b class='flag-5'>控制器</b><b class='flag-5'>在</b><b class='flag-5'>Ubuntu+Qt</b><b class='flag-5'>下</b>的文本<b class='flag-5'>標(biāo)</b><b class='flag-5'>刻</b>

    機(jī)器視覺運(yùn)動控制一體機(jī)VPLC532E汽車膠帶纏繞的開放式CNC應(yīng)用

    機(jī)器視覺運(yùn)動控制一體機(jī)VPLC532E汽車膠帶纏繞的開放式CNC應(yīng)用
    的頭像 發(fā)表于 08-19 10:03 ?234次閱讀
    機(jī)器視覺<b class='flag-5'>運(yùn)動</b><b class='flag-5'>控制</b>一體機(jī)VPLC532E<b class='flag-5'>在</b>汽車膠帶纏繞的<b class='flag-5'>開放式</b>CNC應(yīng)用

    開放式激光運(yùn)動控制器激光清洗應(yīng)用

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

    探索高精密激光加工控制核心 開放式激光運(yùn)動控制器ZMC408SCAN-V22# 激光# 激光標(biāo)

    運(yùn)動控制器
    正運(yùn)動技術(shù)
    發(fā)布于 :2024年05月28日 17:29:37

    開放式激光運(yùn)動控制器的視覺校正精度解決方案

    想知道怎么實現(xiàn)自動校正嗎?快來點(diǎn)擊正運(yùn)動精囊!
    的頭像 發(fā)表于 04-26 14:36 ?521次閱讀
    <b class='flag-5'>開放式</b><b class='flag-5'>激光</b><b class='flag-5'>振</b><b class='flag-5'>鏡</b><b class='flag-5'>運(yùn)動</b><b class='flag-5'>控制器</b>的視覺校正<b class='flag-5'>振</b><b class='flag-5'>鏡</b>精度解決方案

    2024上海慕尼黑開放式激光運(yùn)動控制器解決方案

    運(yùn)動(E2.0602)與您不見不散!
    的頭像 發(fā)表于 03-20 10:34 ?459次閱讀
    2024上海慕尼黑<b class='flag-5'>開放式</b><b class='flag-5'>激光</b><b class='flag-5'>振</b><b class='flag-5'>鏡</b><b class='flag-5'>運(yùn)動</b><b class='flag-5'>控制器</b>解決方案

    EtherCAT運(yùn)動控制器ROS上的應(yīng)用(

    運(yùn)動技術(shù)動態(tài)鏈接庫環(huán)境配置以及EtherCAT運(yùn)動控制器ROS的單軸運(yùn)動。
    的頭像 發(fā)表于 03-13 14:54 ?448次閱讀
    EtherCAT<b class='flag-5'>運(yùn)動</b><b class='flag-5'>控制器</b><b class='flag-5'>在</b>ROS上的應(yīng)用(<b class='flag-5'>下</b>)

    運(yùn)動技術(shù)邀您共聚2024西安國際工業(yè)自動化機(jī)器人展

    運(yùn)動技術(shù)將攜手合作伙伴推進(jìn)全國產(chǎn)EtherCAT運(yùn)動控制邊緣控制器、開放式激光
    的頭像 發(fā)表于 03-08 15:51 ?271次閱讀
    正<b class='flag-5'>運(yùn)動</b>技術(shù)邀您共聚2024西安國際工業(yè)自動化機(jī)器人展

    開放式高實時高性能PLC控制器解決方案-基于米爾電子STM32MP135

    實時高性能需求尤其突出。面對以上挑戰(zhàn),合作伙伴翌控科技基于米爾STM32MP135開發(fā)板發(fā)布開放式高實時高性能PLC控制器解決方案,將高精準(zhǔn)數(shù)據(jù)采集、預(yù)處理、存儲、通信與高實時控制融為一體,為
    發(fā)表于 03-07 20:06

    LabVIEW開發(fā)二維激光掃描控制系統(tǒng)

    以及驅(qū)動底層驅(qū)動軟件的開發(fā)。此外,還對掃描圖形的幾何失真進(jìn)行了分析和校正。基于這些工作,二維激光掃描
    發(fā)表于 12-22 11:00

    解析起點(diǎn)爆點(diǎn)問題及解決方案

    PWM控制指令說明: 1、PWM_FREQ -- PWM 頻率 2、PWM_DUTY -- PWM占空比 本文使用產(chǎn)品介紹:ZMC408SCAN激光
    發(fā)表于 11-06 10:30

    開放式激光運(yùn)動控制器動力電池模組連接片的焊接應(yīng)用

    伴隨著國內(nèi)新能源汽車市場的強(qiáng)勁增長,國內(nèi)激光焊接產(chǎn)業(yè)迅速崛起。激光焊接在動力電池生產(chǎn)的中道和后道生產(chǎn)過程中得到廣泛應(yīng)用,包括電池模組連接片焊接、防爆閥焊接、以及極耳的焊接等關(guān)鍵工序。
    的頭像 發(fā)表于 10-30 10:05 ?377次閱讀
    <b class='flag-5'>開放式</b><b class='flag-5'>激光</b><b class='flag-5'>振</b><b class='flag-5'>鏡</b><b class='flag-5'>運(yùn)動</b><b class='flag-5'>控制器</b><b class='flag-5'>在</b>動力電池模組連接片的焊接應(yīng)用