999国内精品永久免费视频,色偷偷9999www,亚洲国产成人爱av在线播放,6080亚洲人久久精品,欧美超高清xxxhd

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

001.gif

前面課程我們講述了如何通過Ubuntu+Qt進(jìn)行振鏡校正(詳情點(diǎn)擊→開放式激光振鏡運(yùn)動控制器在Ubuntu+Qt下的激光振鏡校正),本節(jié)自定義圖形標(biāo)刻是在振鏡校正的前提下實(shí)現(xiàn)的。在正式學(xué)習(xí)之前,我們先了解一下正運(yùn)動技術(shù)的ZMC408SCAN-V22運(yùn)動控制器,ZMC408SCAN-V22支持在Linux環(huán)境進(jìn)行開發(fā)使用。



 

01 ZMC408SCAN-V22硬件介紹

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

1.png

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

2.png

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

3.png

02 Ubuntu+Qt進(jìn)行自定義圖形標(biāo)刻項(xiàng)目的開發(fā)

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

4.png

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

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

5.png

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

6.png

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

7.png

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

8.png

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

1.自定義圖形標(biāo)刻流程圖

9.png

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

(1)連接控制器


10.png

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


11.png

(3)三次文件初始化


12.png

(4)生成空移字符串


13.png

(5)生成開光字符串


14.png

(6)生成關(guān)光字符串


15.png

(7)生成標(biāo)刻點(diǎn)字符串


16.png

(8)下載三次文件


17.png

(9)設(shè)置輸出口狀態(tài)


18.png

(10)設(shè)置模擬量輸出


19.png

(11)設(shè)置pwm占空比


20.png

(12)設(shè)置pwm頻率


21.png

04 自定義圖形標(biāo)刻的實(shí)現(xiàn)例程

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

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

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);   //設(shè)置模擬量
    ZAux_Direct_SetPwmDuty(g_handle,markPara.PwmIo,0.5);   //設(shè)置占空比
    ZAux_Direct_SetPwmFreq(g_handle,markPara.PwmIo,markPara.PwmFreq);   //設(shè)置頻率
    ZAux_Direct_SetOp(g_handle,io_value.emit_io,0);   //關(guān)閉激光輸出口
    ZAux_Direct_SetOp(g_handle,io_value.enable_io,0);  //關(guān)閉激光器使能
}

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

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

void MainWindow::LaserScan_z3p_Init()
{
    strFile3.clear();
    strFile3 += QString("BASE(%1,%2)\n").arg(4).arg(5); //設(shè)置軸號
    strFile3 += "ATYPE = 21,21\n"; //設(shè)置軸類型
    strFile3 += "UNITS = 100,100\n"; //設(shè)置脈沖當(dāng)量
    strFile3 += "AXIS_ZSET = 3,3\n"; // 開啟精準(zhǔn)輸出
    strFile3 += "MERGE = 1,1\n"; //開啟連續(xù)插補(bǔ)
    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.生成標(biāo)刻自定義圖形的三次文件字符串

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

void MainWindow::on_create_File3_clicked()
{
    LaserScan_z3p_Init(strFile3);
    ListNode *ps = layers->next;
    do
    {
        Coordinate * pData = ps->data;
        if(ps->type == 1)//標(biāo)刻點(diǎn)
        {
            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)//標(biāo)刻直線
        {
            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)//標(biāo)刻圓弧
        {
            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)//標(biāo)刻整圓
        {
            LaserScan_z3p_Arc(pData->next->x + ps->radius,pData->next->y - ps->radius,ps->radius,0,360,0,0);
        }
        ......        //標(biāo)刻其他類型
        ps = ps->next;
    }while(ps != layers);
}

4.設(shè)置運(yùn)行任務(wù)號,啟動任務(wù)進(jìn)行標(biāo)刻

三次文件已經(jīng)下載到控制器中,這個時候可以通過ZMC_Execute函數(shù)輸入命令去運(yùn)行生成的三次文件,完成圖形的標(biāo)刻。下面的啟動任務(wù),進(jìn)行標(biāo)刻的部分實(shí)現(xiàn)代碼。

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

5.設(shè)置配置文件信息,保留配置參數(shù)

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

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

05 自定義圖形標(biāo)刻的實(shí)現(xiàn)效果

1. 打開Qt繪制的基本圖形界面,設(shè)置基本的激光器參數(shù)和運(yùn)動參數(shù)。

22.png

2. 添加想要標(biāo)刻的自定義圖形,設(shè)置圖形參數(shù),選擇添加圖形,例程中添加的圖形為點(diǎn)、矩形、整圓、圓弧、直線,點(diǎn)擊生成三次文件后,查看三次文件的內(nèi)容。

23.png

3. 點(diǎn)擊標(biāo)刻即可完成已選自定義圖形的標(biāo)刻。

4.分析生成的三次文件信息,下面是生成三次文件的部分內(nèi)容,三次文件的開頭都是對軸參數(shù)加工參數(shù)的設(shè)置,當(dāng)移動到運(yùn)動起始點(diǎn)時,設(shè)置開光參數(shù)和延時參數(shù),在軌跡完成時設(shè)置關(guān)光延時和關(guān)光操作。

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 激光標(biāo)刻過程

激光標(biāo)刻的過程,初始化、空移、開光、標(biāo)刻、關(guān)光都封裝成函數(shù)接口,在進(jìn)行標(biāo)刻時,調(diào)用相關(guān)的函數(shù)接口即可生成對應(yīng)的三次文件字符串。

24.png

完整代碼獲取地址

25.png

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

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

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

企業(yè)微信截圖_20240321153031.png

正運(yùn)動技術(shù)專注于運(yùn)動控制技術(shù)研究和通用運(yùn)動控制軟硬件產(chǎn)品的研發(fā),是國家級高新技術(shù)企業(yè)。正運(yùn)動技術(shù)匯集了來自華為、中興等公司的優(yōu)秀人才,在堅持自主創(chuàng)新的同時,積極聯(lián)合各大高校協(xié)同運(yùn)動控制基礎(chǔ)技術(shù)的研究,是國內(nèi)工控領(lǐng)域發(fā)展最快的企業(yè)之一,也是國內(nèi)少有、完整掌握運(yùn)動控制核心技術(shù)和實(shí)時工控軟件平臺技術(shù)的企業(yè)。


 

狀 態(tài): 離線

公司簡介
產(chǎn)品目錄

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

關(guān)于我們 | 聯(lián)系我們 | 廣告服務(wù) | 本站動態(tài) | 友情鏈接 | 法律聲明 | 不良信息舉報
工控網(wǎng)客服熱線:0755-86369299
版權(quán)所有 中華工控網(wǎng) Copyright©2022 Gkong.com, All Rights Reserved