国产91九色_日本68xxxx_欧美高清另类自拍视频在线看_欧美人禽_99久久婷婷国产综合精品青牛牛_亚洲射情

首頁 新聞 工控搜 論壇 廠商論壇 產品 方案 廠商 人才 文摘 下載 展覽
中華工控網首頁
  P L C | 變頻器與傳動 | 傳感器 | 現場檢測儀表 | 工控軟件 | 人機界面 | 運動控制
  D C S | 工業以太網 | 現場總線 | 顯示調節儀表 | 數據采集 | 數傳測控 | 工業安全
  電 源 | 嵌入式系統 | PC based | 機柜箱體殼體 | 低壓電器 | 機器視覺
開放式激光振鏡運動控制器在Ubuntu+Qt下自定義圖形標刻
深圳市正運動技術有限公司
收藏本文     查看收藏

001.gif

前面課程我們講述了如何通過Ubuntu+Qt進行振鏡校正(詳情點擊→開放式激光振鏡運動控制器在Ubuntu+Qt下的激光振鏡校正),本節自定義圖形標刻是在振鏡校正的前提下實現的。在正式學習之前,我們先了解一下正運動技術的ZMC408SCAN-V22運動控制器,ZMC408SCAN-V22支持在Linux環境進行開發使用。



 

01 ZMC408SCAN-V22硬件介紹

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

1.png

ZMC408SCAN-V22總線控制器支持EtherCAT總線連接,支持最快500μs的刷新周期,支持最多達16軸運動控制,支持直線插補、任意圓弧插補、空間圓弧、螺旋插補、電子凸輪、電子齒輪、同步跟隨、虛擬軸設置等;采用優化的網絡通訊協議可以實現實時的運動控制。

2.png

ZMC408SCAN-V22通過CAN、EtherCAT總線可以連接各個擴展模塊,從而擴展數字量、模擬量或運動軸。可以在 Windows,Linux,Mac,Android,Wince各種操作系統下開發,提供vc,c#,vb.net,labview等各種環境的dll庫。上位機軟件編程參考《ZMotion PC函數庫編程手冊》。

3.png

02 Ubuntu+Qt進行自定義圖形標刻項目的開發

1.在Qt Creator菜單選擇“文件”→“新建文件或項目...”,打開創建項目向導。選擇Application項目集,創建Qt Widgets Application項目,設置項目名稱和保存位置。

4.png

2.導入廠家提供的相關函數庫及頭文件。

(1) 將zmotion.h和zmcaux.h、zmcaux.cpp以及libzmotion.so庫復制到新建的項目文件夾中。

5.png

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

6.png

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

7.png

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

8.png

03 自定義圖形標刻流程以及相關函數介紹

1.自定義圖形標刻流程圖

9.png

2.相關函數介紹

(1)連接控制器


10.png

(2)通用命令執行接口


11.png

(3)三次文件初始化


12.png

(4)生成空移字符串


13.png

(5)生成開光字符串


14.png

(6)生成關光字符串


15.png

(7)生成標刻點字符串


16.png

(8)下載三次文件


17.png

(9)設置輸出口狀態


18.png

(10)設置模擬量輸出


19.png

(11)設置pwm占空比


20.png

(12)設置pwm頻率


21.png

04 自定義圖形標刻的實現例程

自定義圖形標刻例程主要是通過選擇簡單圖形來生成標刻的三次文件,控制器運行三次文件標刻對應的圖形,例程中的三次文件主要通過字符串追加的形式生成,在將所有圖形的繪制過程生成三次文件后下載到控制器即可。

1.建立控制器連接,設置相關的振鏡和工藝參數,可以通過設置模擬量口和pwm以及激光器使能信號,可以打開或者關閉激光。

void MainWindow::on_ip_open_clicked()
{
    char * tmp_buff = new char[16];
    QString str = ui->ip_Address->text();
    QByteArray ba = str.toLatin1();
    tmp_buff = ba.data();
    if(0 != g_handle)
    {
        ZAux_Close(g_handle);
    }
    int32 iresult= ZMC_FastOpen(ZMC_CONNECTION_ETH,tmp_buff,1000,&g_handle);
    if( 0 != iresult)
    {
        QMessageBox::warning(this,"提示","連接失敗");
        return;
    }
    ZAux_Direct_SetDA(g_handle,markPara.PowerDA,markPara.Power);   //設置模擬量
    ZAux_Direct_SetPwmDuty(g_handle,markPara.PwmIo,0.5);   //設置占空比
    ZAux_Direct_SetPwmFreq(g_handle,markPara.PwmIo,markPara.PwmFreq);   //設置頻率
    ZAux_Direct_SetOp(g_handle,io_value.emit_io,0);   //關閉激光輸出口
    ZAux_Direct_SetOp(g_handle,io_value.enable_io,0);  //關閉激光器使能
}

2.生成初始化的三次文件字符串

可以將標刻過程中初始化的部分寫到相關的函數里面,包括設置初始化的激光器參數、標刻起點、延時參數等,方便在標刻自定義圖形的過程中直接使用。三次文件字符串本質是將basic指令進行拼接處理,將所有指令拼接完成后,可以直接寫入控制器中執行。

void MainWindow::LaserScan_z3p_Init()
{
    strFile3.clear();
    strFile3 += QString("BASE(%1,%2)\n").arg(4).arg(5); //設置軸號
    strFile3 += "ATYPE = 21,21\n"; //設置軸類型
    strFile3 += "UNITS = 100,100\n"; //設置脈沖當量
    strFile3 += "AXIS_ZSET = 3,3\n"; // 開啟精準輸出
    strFile3 += "MERGE = 1,1\n"; //開啟連續插補
    strFile3 += QString("OP(%1,ON)\n").arg(io_value.enable_io);
    strFile3+=QString("MOVE_AOUT(%1,%2)\n").arg(markPara.PowerDA).arg(static_cast(markPara.Power * 255 / 100));           
    strFile3+=QString("MOVE_PWM(%1,0.5,%2)\n").arg(markPara.PwmIo).arg(markPara.PwmFreq);
    strFile3 +=QString("DECEL_ANGLE= %1,%2\n").arg(15.0/180.0*M_PI).arg(15.0/180.0*M_PI);
    strFile3 += QString("STOP_ANGLE = %1,%2\n").arg(90.0/180.0*M_PI).arg(90.0/180.0*M_PI);
    strFile3 += QString("ZSMOOTH= %1,%2\n").arg(markPara.CorDelay).arg(markPara.CorDelay); //拐角延時時間
    strFile3 += QString("FORCE_SPEED = %1\n").arg(markPara.JumpSpeed); //空移速度
    strFile3 += "MOVESCANABS(0,0)\n"; //移動到 0 位
}

3.生成標刻自定義圖形的三次文件字符串

自定義圖形本質上可以分解為線段進行繪制,在進行激光標刻時也是采用線段的形式,在生成自定義圖形時,只需要控制每一條線段的起始點和結束點位置,同時在起始點和結束點的位置控制延時參數,最后在完成繪制時關閉激光和使能即可。下面是部分生成三次文件字符串以及下載的代碼。

void MainWindow::on_create_File3_clicked()
{
    LaserScan_z3p_Init(strFile3);
    ListNode *ps = layers->next;
    do
    {
        Coordinate * pData = ps->data;
        if(ps->type == 1)//標刻點
        {
            LaserScan_z3p_EmptyMove(strFile3,pData->next->x,pData->next->y,markPara.JumpSpeed,markPara.JumpDelay);
            LaserScan_z3p_OpenLight(strFile3,io_value.emit_io,markPara.OpenDelay,markPara.MarkSpeed);
            LaserScan_z3p_MarkPoint(strFile3,pData->next->x,pData->next->y);
            LaserScan_z3p_CloseLight(strFile3,io_value.emit_io,markPara.CloseDelay,markPara.JumpDelay);
        }
        else if(ps->type == 2)//標刻直線
        {
            LaserScan_z3p_EmptyMove(strFile3,pData->next->x,pData->next->y,markPara.JumpSpeed,markPara.JumpDelay);
            LaserScan_z3p_OpenLight(strFile3,io_value.emit_io,markPara.OpenDelay,markPara.MarkSpeed);
            LaserScan_z3p_MarkPoint(strFile3,pData->next->x2,pData->next->y2);
            LaserScan_z3p_CloseLight(strFile3,io_value.emit_io,markPara.CloseDelay,markPara.JumpDelay);
         }
        else if(ps->type == 3)//標刻圓弧
        {
            LaserScan_z3p_Arc(pData->next->x + ps->radius,pData->next->y - ps->radius,ps->radius,ps->angle,ps->radian,0,0);
        }
        else if(ps->type == 4)//標刻整圓
        {
            LaserScan_z3p_Arc(pData->next->x + ps->radius,pData->next->y - ps->radius,ps->radius,0,360,0,0);
        }
        ......        //標刻其他類型
        ps = ps->next;
    }while(ps != layers);
}

4.設置運行任務號,啟動任務進行標刻

三次文件已經下載到控制器中,這個時候可以通過ZMC_Execute函數輸入命令去運行生成的三次文件,完成圖形的標刻。下面的啟動任務,進行標刻的部分實現代碼。

void MainWindow::on_but_Mark_clicked()
{
    if( 0 == g_handle)
    {
        QMessageBox::warning(this,"提示","控制器未連接!");
        return;
    }
    QString Cmd;
    char Response[1024];
    //設置啟動任務號,執行Zmc_polyline.z3p
    ZMC_Execute(g_handle,"FILE3_RUN  \"Zmc_polyline.z3p\",7 ",500,Response,1024);
}

5.設置配置文件信息,保留配置參數

通過生成ini配置文件信息,在程序加載時讀取文件,程序關閉時將配置數據寫到ini配置文件中,以此實現保留最后一次的使用參數,方便下一次加載使用。通過使用內部函數庫QSettings實現的,下面是部分的實現代碼。

void MainWindow::saveINI()
{
    //保存配置數據信息
    QSettings *iniWrite = new QSettings("config.ini",QSettings::IniFormat);
    iniWrite->setValue("laserType",ui->laser_List->currentIndex());
    .....
    delete iniWrite;
}
void MainWindow::readINI()
{
    //讀取配置文件數據
    QSettings *iniRead = new QSettings("config.ini",QSettings::IniFormat);
    int laserType = iniRead->value("laserType").toInt();
    ui->laser_List->setCurrentIndex(laserType);
    .....
    delete iniRead;
}

05 自定義圖形標刻的實現效果

1. 打開Qt繪制的基本圖形界面,設置基本的激光器參數和運動參數。

22.png

2. 添加想要標刻的自定義圖形,設置圖形參數,選擇添加圖形,例程中添加的圖形為點、矩形、整圓、圓弧、直線,點擊生成三次文件后,查看三次文件的內容。

23.png

3. 點擊標刻即可完成已選自定義圖形的標刻。

4.分析生成的三次文件信息,下面是生成三次文件的部分內容,三次文件的開頭都是對軸參數加工參數的設置,當移動到運動起始點時,設置開光參數和延時參數,在軌跡完成時設置關光延時和關光操作。

BASE(4,5)
ATYPE = 21,21
UNITS = 100,100
AXIS_ZSET = 3,3
MERGE = 1,1
OP(47,ON)
MOVE_AOUT(3,127)
MOVE_PWM(11,0.5,4000)
DECEL_ANGLE = 0.261799,0.261799
STOP_ANGLE = 1.5708,1.5708
ZSMOOTH = 1000,1000
FORCE_SPEED = 1000
MOVESCANABS(0,0)
FORCE_SPEED = 1000
MOVESCANABS(0.00000,0.00000)
MOVE_DELAY(0.2,1)
FORCE_SPEED = 500
MOVEOP_DELAY = -0.1
MOVE_OP(44,ON)
MOVESCANABS(0.00000,0.00000)
MOVEOP_DELAY = 0
MOVE_DELAY(1)
MOVE_OP(44,OFF)
FORCE_SPEED = 1000
MOVESCANABS(-5.00000,5.00000)
MOVE_DELAY(200,1)
FORCE_SPEED = 500
MOVEOP_DELAY = -0.1
MOVE_OP(44,ON)
MOVESCANABS(5.00000,5.00000)
MOVESCANABS(5.00000,-5.00000)
MOVESCANABS(-5.00000,-5.00000)
MOVESCANABS(-5.00000,5.00000)
MOVEOP_DELAY = 0
MOVE_DELAY(1)
MOVE_OP(44,OFF)

06 激光標刻過程

激光標刻的過程,初始化、空移、開光、標刻、關光都封裝成函數接口,在進行標刻時,調用相關的函數接口即可生成對應的三次文件字符串。

24.png

完整代碼獲取地址

25.png

本次,正運動技術開放式激光振鏡運動控制器在Ubuntu+Qt下自定義圖形標刻,就分享到這里。

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

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

企業微信截圖_20240321153031.png

正運動技術專注于運動控制技術研究和通用運動控制軟硬件產品的研發,是國家級高新技術企業。正運動技術匯集了來自華為、中興等公司的優秀人才,在堅持自主創新的同時,積極聯合各大高校協同運動控制基礎技術的研究,是國內工控領域發展最快的企業之一,也是國內少有、完整掌握運動控制核心技術和實時工控軟件平臺技術的企業。


 

狀 態: 離線

公司簡介
產品目錄

公司名稱: 深圳市正運動技術有限公司
聯 系 人: 戴德弟
電  話: 0755-32976042
傳  真: 0755-2606 6955
地  址: 深圳市寶安區西鄉洲石路陽光工業園A1棟5樓
郵  編: 518100
主  頁:
 
該廠商相關技術文摘:
強實時運動控制內核MotionRT750(一):驅動安裝、內核配置與使用
AI視覺外觀檢測在全自動測包機中的應用
C#上位機與運動控制卡網絡通訊的周期上報
DELTA機械手多物料視覺分揀的應用
正運動×Eplan再啟新篇 | 24款新品模型上線,打造電氣設計全鏈路閉環
激光振鏡運動控制器在玻璃激光鉆孔上的應用
EtherCAT運動控制卡應用開發教程之Java
賦能柔性制造:MotionRT750實時運動控制內核,提效不止10%!
AI視覺外觀檢測技術在NR功率電感質量控制中的方案應用
PCIe EtherCAT實時運動控制卡PCIE464同步跟隨/皮帶跟隨加工應用
機器視覺運動控制一體機在背靠背點膠焊錫機上的應用
PCIe EtherCAT實時運動控制卡PCIE464點膠工藝中的同步/提前/延時開關膠
更多文摘...
立即發送詢問信息在線聯系該技術文摘廠商:
用戶名: 密碼: 免費注冊為中華工控網會員
請留下您的有效聯系方式,以方便我們及時與您聯絡

關于我們 | 聯系我們 | 廣告服務 | 本站動態 | 友情鏈接 | 法律聲明 | 不良信息舉報
工控網客服熱線:0755-86369299
版權所有 中華工控網 Copyright©2022 Gkong.com, All Rights Reserved

主站蜘蛛池模板: 又黄又爽一线毛片免费观看 | 国产精品久久久久久久久久久久 | 日本成人网址 | 一级看片 | 久久久久成人精品免费播放动漫 | 一区二区三区在线 | 久久久久亚洲精品视频 | 久久亚洲国产 | 亚洲一区二区成人 | 国产免费a | 国产精品网址 | 久久久久久九九 | 亚洲精品二区 | 特级a做爰全过程片 | 国产精品久久久久久久久久免 | 在线观看亚洲人 | 69视频在线播放 | 美女视频黄网站 | av片在线免费观看 | 范冰冰一级做a爰片久久毛片 | 久久免费看 | 亚洲一区在线电影 | 这里只有精品视频在线观看 | 免费国产网站 | www免费视频| 日韩精品一区二区三区中文字幕 | 欧美成人一区二区 | 国产一二三区免费 | 日韩一区二区视频 | 成人精品鲁一区一区二区 | 日本淫片| 国产在线高清 | 污视频在线观看免费 | 国产精品久久久久久久久久久免费看 | 欧美在线视频网站 | 国产性生活大片 | 久久精品青草 | 欧美一区二区 | 日韩毛片视频 | 免费观看高清韩国日本大全 | 在线欧美视频 |