无码中文字幕色专区_91av俱乐部_无码人妻h动漫_26uuu成人_91九色丨porny丨国产jk_青青视频在线播放_国内自拍第二页_国产又粗又长又爽又黄的视频_色哟哟免费网站_久久出品必属精品_a级黄色一级片_99日在线视频

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

Ubuntu是一款免費且開源的操作系統,基于強大的Linux內核,它支持多用戶、多任務、多線程操作,擁有多CPU架構,可以簡化開發過程,具備出色的移植性。

今天,正運動小助手給大家分享一下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激光器接口。開放式系統框圖如下所示:

ZMC408SCAN-V22開放式架構圖.png

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

ZMC408SCAN-V22總線控制器.png

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

多種上位機開發方式.png

02  Linux下使用Ubuntu+Qt進行振鏡校正軟件的開發

(一) 振鏡校正的目的

振鏡本身在制造過程中或者在長時間使用后可能會存在一些畸變,振鏡校正的一個主要目的就是檢測和修正這些畸變,以確保激光的精度。

通過定期的校正和調整,可以有效地管理和糾正振鏡的畸變,從而提高激光系統的整體性能和穩定性。

未進行振鏡校正時標刻的矩形.png

未進行振鏡校正時標刻的矩形

振鏡校正后標刻的矩形.png

振鏡校正后標刻的矩形

(二)新建 Qt 項目并添加函數庫

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

1.png

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

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

2.png

(2)在Qt Creator選擇新建的Qt項目右擊選擇“Add Library...” → “External library”點擊next,將剛才復制到項目文件夾上的libzmotion.so和libZScanCorrect.so庫文件導入到項目中。

3.png

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

4.png

(4)函數庫添加成功后,打開pro文件可以看到相關的函數庫和頭文件信息。

5.png

03  振鏡校正例程流程和相關函數介紹

1.振鏡校正流程圖

6.png

2.主要函數的介紹

(1)取消校正
7.png

(2)下載三次文件
8.png

(3)多點迭代校正
9.png

(4)保存校正數據到文件
10.png

(5)讀取校正文件
11.png

(6)使用校正文件進行校正
12.png

(7)誤差補償后校正
13.png

(8)相關錯誤碼
14.png

04  振鏡校正例程的實現及原理

1.預校正并標刻

原理: 預校正通過標刻圖形得到實際的標刻大小,通過實際的大小計算出與目標標刻尺寸的縮放比例,當預校正的實際大小和目標標刻的大小一致時,可以進行采點操作。

void MainWindow::on_beforeCheck_mark_clicked()
{    
    if( 0 == g_handle)    
    {
        QMessageBox::warning(this,"提示","控制器未連接!");        
        return;    
    }    
    dataRenew();    //更新獲取頁面數據    
    ZScan_CancelCorrect(g_handle, ui->scan_list->currentIndex(), ui->Units->text().toDouble(), 1.0, tableStartNum);    // 先取消校正    
    int RowNum = sqrt(countRow());//獲取當前選擇的校正點數    
    QString strFile3 = CreateMakingString(RealCorrectSizeX, RealCorrectSizeY, RowNum, XLineLenght, YLineLenght);    // 生成三次文件字符串    
    Down3File(strFile3);     // 下載三次文件到控制器中    
    // 刷新列表,將列表數據插入為標準點坐標    
    model->removeRows(0, model->rowCount());    
    ZPoint *tmp = pointData(RowNum,dScanSize);    
    for (int i = 0; i < RowNum * RowNum; i++)    
    {        
        QList rowItems;        
        rowItems << new QStandardItem(QString::number(tmp[i].x,'f',3))<< new QStandardItem(QString::number(tmp[i].x,'f',3))<< new QStandardItem(0,'f',3))<< new QStandardItem(0,'f',3);        
        model->insertRow(i, rowItems);    
    }    
    delete [] tmp;    
    PreCorrectFlag = 0;//標記為預校正
}

2.多點迭代校正的方式進行振鏡校正

原理: 多點迭代校正,通過實際測量得到標刻點數據,和標準點數據比較可以直觀的看到誤差,振鏡校正函數通過實際點數據對振鏡進行校正,在經過多次迭代校正后可以明顯看出實際點位數據和標準點數據的誤差減小。

bool MainWindow::ScanCorrection(int MakingRowNum)
{    
    //通過點數數據,進行振鏡校正    
    memset(PointDataX, 0, MakingRowNum);    
    memset(PointDataY, 0, MakingRowNum);    
    int cur_item = model->rowCount();    // 檢查當前數據項數量是否正確    
    if (cur_item != MakingRowNum)    
    {       
        QMessageBox::critical(this, "錯誤", "數據錯誤");       
        return false;    
    }    
    for (int row = 0; row < MakingRowNum; ++row)//將所有點數據取出,進行多點校正    
    {        
        QStandardItem *item = model->item(row, 2);        
        PointDataX[row] = item ? item->text().toDouble() : 0.0;        
        item = model->item(row, 3);        
        PointDataY[row] = item ? item->text().toDouble() : 0.0;    
    }    
    // 檢測數據是否正確    
    if (!CheckCorrectData(MakingRowNum,PointDataX,PointDataY))    
    {       
        if (QMessageBox::question(this, "警告", "數據可能不正確,請檢查數據\r\nyes表示退出校正\r\nno表示繼續校正", QMessageBox::Yes | QMessageBox::No) == QMessageBox::Yes)       
        {           
            return false;       
        }    
    }    
    double x1 = -RealCorrectSizeX / 2;    
    double y1 = -RealCorrectSizeY / 2;    
    double x2 = RealCorrectSizeX / 2;    
    double y2 = RealCorrectSizeY / 2;    
    // 調用 ZScan_CorrectMorePtIter 函數,傳遞適當的參數    
    int ret = ZScan_CorrectMorePtIter(g_handle, ui->scan_list->currentIndex(), PointDataX, PointDataY, ui->checkBox->isChecked(), sqrt(countRow()), ui->Units->text().toDouble(),x1, y1, x2, y2, ui->mark_Size->text().toDouble(), 1.0, tableStartNum, PreCorrectFlag);    
    if (CheckError(ret, "ZScan_CorrectMorePtIter"))        
        return false;    
    PreCorrectFlag = 1;    
    return true;
}

3.根據校正文件進行振鏡校正

原理: 校正文件本質上是通過多點迭代校正生成的,將校正點數據都存儲在文件中,通過讀取校正文件,將數據讀出,對振鏡進行校正,若文件校正完存在輕微誤差可以通過文件補償迭代校正的方式提高校正精度。

void MainWindow::on_but_Check_clicked()
{    
    if( 0 == g_handle)    
    {        
        QMessageBox::warning(this,"提示","控制器未連接!");        
        return;    
    }    
    QString fileName = QString::fromStdString(ui->file_Route->text()    
    .toLatin1().data());    
    if (fileName.isEmpty())    
    {        
        QMessageBox::critical(this, "錯誤", "請先選擇矯正文件!");        
        return;    
    }    
    if (ChangeDirMode == 1)    
    {        
        // 設置 X 和 Y 方向的步進比例        
        int ret = 0;        
        if (ui->x_Dir->text().toInt() == -1)        
        {            
            ret = ZAux_Direct_StepRatio(g_handle, markpara.AxisList[0], 1, -1);        
        }        
        else        
        {            
            ret = ZAux_Direct_StepRatio(g_handle, markpara.AxisList[0], 1, 1);        
        }        
        if (ret != 0)        
        {            
            QMessageBox::critical(this, "錯誤", QString("文件校正失敗  X方向設置失敗   錯誤碼:%1").arg(ret));            
            return;        
        }        
        if (ui->y_Dir->text().toInt() == -1)        
        {            
            ret = ZAux_Direct_StepRatio(g_handle, markpara.AxisList[1], 1, -1);        
        }        
        else        
        {            
            ret = ZAux_Direct_StepRatio(g_handle, markpara.AxisList[1], 1, 1);        
        }        
        if (ret != 0)        
        {            
            QMessageBox::critical(this, "錯誤", QString("文件校正失敗  Y方向設置失敗   錯誤碼:%1").arg(ret));            
            return;        
        }    
    }    
    int rest = ZScan_CorrectFromFile(g_handle, fileName.toLatin1().data(), scanNum, tableStartNum);//使用校正文件進行振鏡校正    
    if (rest != 0)    
    {        
        QMessageBox::critical(this, "錯誤", QString("文件校正錯誤   錯誤碼:%1").arg(rest));    
    }    
    else    
    {        
        QMessageBox::information(this, "信息", "文件校正完成");    
    }
}

05  通過振鏡校正例程對激光振鏡進行校正

1.多點迭代校正方式進行振鏡校正

(1)連接到控制器,并進行工藝參數設置,根據實際激光器類型和IO參數以及標刻參數進行設置。

15.png

(2)輸入需要實際標刻的尺寸,進行預校正標刻,使用預校正標刻的實際XY測量值來計算縮放比例,可以進行多次預校正標刻和測量,計算出較為精準的比例,這里的誤差越小,后續校正的次數將會減少。

16.png

(3)通過導入點數據或者手動填入點數據,進行標刻并校正,可以通過與標準點坐標數據對比,直觀看到誤差。

17.png

(4)繼續測量標刻點的數據,導入點數據或手動添加到程序中,重復步驟二三提高校正精度。 若精度還是達不到要求,可以繼續加點迭代校正來提高精度,若已達到精度則可以將校正數據保存到校正文件中,方便后續直接使用文件校正。

18.png

2.文件校正方式進行振鏡校正

(1)選擇校正文件進行振鏡校正

19.png

(2)進行實際測量,若測量數據無誤,則校正完成。若出現點位誤差可采取坐標補償的方式進行補償校正,將補償值填入,進行校正并標刻,重新測量數據,可多次進行補償操作,若誤差過大,或者較多點位存在問題,需要使用多點疊加迭代校正的方式進行振鏡校正。

20.png

完整代碼獲取地址

代碼下載地址.png

本次,正運動技術開放式激光振鏡運動控制器在Ubuntu+Qt下的激光振鏡校正,就分享到這里。

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

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

企業微信截圖_20240321153031.png

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


 

狀 態: 離線

公司簡介
產品目錄

公司名稱: 深圳市正運動技術有限公司
聯 系 人: 戴德弟
電  話: 0755-32976042
傳  真: 0755-2606 6955
地  址: 深圳市寶安區西鄉洲石路陽光工業園A1棟5樓
郵  編: 518100
主  頁:
 
該廠商相關技術文摘:
全國產EtherCAT運動控制邊緣控制器(二):統一的上位機API接口
全國產EtherCAT運動控制邊緣控制器(一):ZMC432H硬件接口
經濟型EtherCAT運動控制器(四):ModbusRTU或ModbusTcp與觸摸屏通訊
推薦 | 8通道PSO的高性能EtherCAT總線運動控制器
正運動技術運動控制器如何快速實現單軸/多軸同步跟隨功能?
VPLC系列機器視覺運動控制一體機快速入門(八)測量點/線/圓
VPLC系列機器視覺運動控制一體機快速入門(五)尺寸測量
經濟型EtherCAT運動控制器(三):PLC實現多軸直線插補與電子凸輪
經濟型EtherCAT運動控制器(二):ZBasic實現多軸直線插補運動
經濟型EtherCAT運動控制器(一):功能簡介與應用場景
VPLC系列機器視覺運動控制一體機快速入門(九)劃痕檢測
VPLC系列機器視覺運動控制一體機快速入門(六)標定功能
更多文摘...
立即發送詢問信息在線聯系該技術文摘廠商:
用戶名: 密碼: 免費注冊為中華工控網會員
請留下您的有效聯系方式,以方便我們及時與您聯絡

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

无码中文字幕色专区_91av俱乐部_无码人妻h动漫_26uuu成人_91九色丨porny丨国产jk_青青视频在线播放_国内自拍第二页_国产又粗又长又爽又黄的视频_色哟哟免费网站_久久出品必属精品_a级黄色一级片_99日在线视频
中文一区一区三区高中清不卡免费| 日韩欧美精品| 美女免费视频一区| 午夜欧美精品| 老司机免费视频一区二区| 欧美日韩视频一区二区三区| 国产精品一卡| 男人的天堂亚洲一区| 成人国产精品一区二区免费麻豆| 亚洲黄色在线| 色婷婷精品视频| 国产成人精品一区二区三区免费 | 国产欧美日韩精品一区二区免费 | 欧美国产不卡| 免费在线观看精品| 亚洲v天堂v手机在线| 一区二区国产在线观看| 麻豆国产欧美一区二区三区| 日本不卡在线视频| 宅男噜噜噜66国产日韩在线观看| 美女国产一区二区三区| 午夜亚洲福利| 欧美成人基地 | 久久国产精品亚洲77777| 国产视频一区二区在线播放| 欧美在线综合| 国产一区白浆| 久久午夜视频| 亚洲精品国产日韩| 爽好久久久欧美精品| 久久尤物视频| 视频一区二区中文字幕| 国产精品一区二区美女视频免费看| 亚洲二区在线| 国产精品白丝久久av网站| 久久激情五月激情| 亚洲最新无码中文字幕久久| 精品三级久久久| 美女久久99| 久久久久久美女精品| 日韩视频久久| 婷婷综合五月| 美女被久久久| 国产香蕉精品| 欧美韩日一区| www成人在线视频| 啪啪国产精品| 免费日韩av片| 蜜桃一区二区三区在线| 日本麻豆一区二区三区视频| 国产欧美日本| 久久激情网站| 日韩一区二区三区免费视频 | 国产欧美一区二区三区精品酒店| av资源新版天堂在线| 日韩在线观看一区| 日韩一区二区免费看| 欧美一区自拍| 一区二区小说| 蜜桃久久久久久久| 免费精品一区| 欧美亚洲在线日韩| 日韩精品五月天| 另类专区亚洲| 亚洲精品影院在线观看| 国产一区二区视频在线看| 黄色日韩在线| 国产高清日韩| 91久久黄色| 麻豆一区二区99久久久久| 激情久久五月| 国产亚洲久久| 99久久夜色精品国产亚洲1000部| 亚洲乱亚洲高清| 日韩一区二区中文| 日本中文字幕视频一区| 97国产精品| 日韩二区在线观看| 亚洲香蕉网站| 久久午夜影院| 日韩av一区二区三区| 国产在线欧美| 国产精品精品| 91亚洲无吗| 免费精品视频| 99久久亚洲精品蜜臀| 麻豆精品久久久| 日韩精品亚洲专区| 99国产精品99久久久久久粉嫩| 久久久久久久久成人| 亚洲性视频在线| 亚洲香蕉网站| 天堂中文av在线资源库| 国产精品亚洲欧美一级在线| 黄色日韩在线| 久久久精品久久久久久96| 青青青国产精品| 丝袜a∨在线一区二区三区不卡| 日韩精品欧美| 亚洲国产欧美日本视频| 国产精品xxxav免费视频| 日韩一区二区三区免费视频| 香蕉成人久久| 久久国产66| 亚洲欧美日韩一区在线观看| 欧美亚洲在线日韩| 日韩国产综合| 在线中文字幕播放| 欧美香蕉视频| 日韩中文首页| 久久91导航| 亚洲一级少妇| 久久国产成人午夜av影院宅| 日本不卡免费高清视频在线| 精品精品久久| 黄在线观看免费网站ktv| sm捆绑调教国产免费网站在线观看| 国产精品毛片视频| 麻豆久久久久久久| 精品国产网站| 日韩一区欧美| 国产综合精品一区| 亚洲在线电影| 日韩一区欧美二区| 亚洲人成精品久久久| 日韩精品亚洲一区二区三区免费| 日本天堂一区| 国产精品日韩精品中文字幕| 国产极品久久久久久久久波多结野 | 99在线精品视频在线观看| 日韩成人亚洲| 成人精品亚洲| 国产精品普通话对白| 日韩高清三区| 韩国久久久久久| 日韩一级欧洲| 国产视频一区二区在线播放| 国产精品成久久久久| 亚洲福利精品| 日韩激情av在线| 国产一区调教| 香蕉精品视频在线观看| 中文字幕一区二区三区在线视频 | av亚洲一区二区三区| 欧美福利专区| 日韩中文字幕麻豆| 欧美午夜三级| 久久人人97超碰国产公开结果| 六月婷婷一区| аⅴ资源天堂资源库在线| 日韩视频中文| 欧美国产三级| 亚洲自拍另类| 日韩成人精品一区| 蜜臀av国产精品久久久久| 欧美激情网址| 六月婷婷一区| 视频二区不卡| 欧美影院精品| 五月天激情综合网| 久久精品xxxxx| 国产精品7m凸凹视频分类| 欧美一区久久| 9久re热视频在线精品| 国产成人免费| 青草av.久久免费一区| 欧美黄色网页| 日本精品另类| 99精品视频精品精品视频| 国产精品日韩精品中文字幕| 99国产成+人+综合+亚洲欧美| 欧美黄页在线免费观看| 香蕉成人久久| 久久久久久黄| 国产成人精品免费视| 日韩免费精品| 欧美特黄视频| 久久国产中文字幕| 91亚洲国产成人久久精品| 日韩国产91| 亚洲三级在线| 国产午夜精品一区二区三区欧美| 久久男人天堂| 国产欧美日韩视频在线| 日韩中文字幕1| 91久久视频| 欧美日韩精品一区二区视频| 国产一级成人av| 亚洲深深色噜噜狠狠爱网站| 米奇777超碰欧美日韩亚洲| 国产一区二区三区不卡av| 18国产精品| 欧美一区二区三区免费看| 一区二区91| 亚洲专区视频| 亚洲精品欧洲| 欧美一级一区| 国产乱码精品一区二区三区亚洲人| 中文字幕日韩亚洲| 综合激情一区|