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

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

001.gif

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



 

01 ZMC408SCAN-V22硬件介紹

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

1.png

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

2.png

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

3.png

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

1.在Qt Creator菜單選擇“文件”→“新建文件或項(xiàng)目...”,打開(kāi)創(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ù)庫(kù)及頭文件。

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

5.png

(2) 在Qt Creator選擇新建的Qt項(xiàng)目右擊選擇“添加庫(kù)...”→“外部庫(kù)”點(diǎn)擊下一步,將剛才復(fù)制到項(xiàng)目文件夾上的libzmotion.so庫(kù)文件導(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ù)庫(kù)添加成功后,打開(kāi)pro文件可以看到相關(guān)的函數(shù)庫(kù)和頭文件信息。此時(shí)已經(jīng)將例程需要用到的函數(shù)庫(kù)和頭文件都加入到項(xiàng)目中了,接下來(lái)開(kāi)始實(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)生成開(kāi)光字符串


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)刻例程主要是通過(guò)選擇簡(jiǎn)單圖形來(lái)生成標(biāo)刻的三次文件,控制器運(yùn)行三次文件標(biāo)刻對(duì)應(yīng)的圖形,例程中的三次文件主要通過(guò)字符串追加的形式生成,在將所有圖形的繪制過(guò)程生成三次文件后下載到控制器即可。

1.建立控制器連接,設(shè)置相關(guān)的振鏡和工藝參數(shù),可以通過(guò)設(shè)置模擬量口和pwm以及激光器使能信號(hào),可以打開(kāi)或者關(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ò)程中初始化的部分寫到相關(guān)的函數(shù)里面,包括設(shè)置初始化的激光器參數(shù)、標(biāo)刻起點(diǎn)、延時(shí)參數(shù)等,方便在標(biāo)刻自定義圖形的過(guò)程中直接使用。三次文件字符串本質(zhì)是將basic指令進(jìn)行拼接處理,將所有指令拼接完成后,可以直接寫入控制器中執(zhí)行。

void MainWindow::LaserScan_z3p_Init()
{
    strFile3.clear();
    strFile3 += QString("BASE(%1,%2)\n").arg(4).arg(5); //設(shè)置軸號(hào)
    strFile3 += "ATYPE = 21,21\n"; //設(shè)置軸類型
    strFile3 += "UNITS = 100,100\n"; //設(shè)置脈沖當(dāng)量
    strFile3 += "AXIS_ZSET = 3,3\n"; // 開(kāi)啟精準(zhǔn)輸出
    strFile3 += "MERGE = 1,1\n"; //開(kāi)啟連續(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); //拐角延時(shí)時(shí)間
    strFile3 += QString("FORCE_SPEED = %1\n").arg(markPara.JumpSpeed); //空移速度
    strFile3 += "MOVESCANABS(0,0)\n"; //移動(dòng)到 0 位
}

3.生成標(biāo)刻自定義圖形的三次文件字符串

自定義圖形本質(zhì)上可以分解為線段進(jìn)行繪制,在進(jìn)行激光標(biāo)刻時(shí)也是采用線段的形式,在生成自定義圖形時(shí),只需要控制每一條線段的起始點(diǎn)和結(jié)束點(diǎn)位置,同時(shí)在起始點(diǎn)和結(jié)束點(diǎn)的位置控制延時(shí)參數(shù),最后在完成繪制時(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ù)號(hào),啟動(dòng)任務(wù)進(jìn)行標(biāo)刻

三次文件已經(jīng)下載到控制器中,這個(gè)時(shí)候可以通過(guò)ZMC_Execute函數(shù)輸入命令去運(yùn)行生成的三次文件,完成圖形的標(biāo)刻。下面的啟動(dòng)任務(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è)置啟動(dòng)任務(wù)號(hào),執(zhí)行Zmc_polyline.z3p
    ZMC_Execute(g_handle,"FILE3_RUN  \"Zmc_polyline.z3p\",7 ",500,Response,1024);
}

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

通過(guò)生成ini配置文件信息,在程序加載時(shí)讀取文件,程序關(guān)閉時(shí)將配置數(shù)據(jù)寫到ini配置文件中,以此實(shí)現(xiàn)保留最后一次的使用參數(shù),方便下一次加載使用。通過(guò)使用內(nèi)部函數(shù)庫(kù)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. 打開(kāi)Qt繪制的基本圖形界面,設(shè)置基本的激光器參數(shù)和運(yùn)動(dòng)參數(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)容,三次文件的開(kāi)頭都是對(duì)軸參數(shù)加工參數(shù)的設(shè)置,當(dāng)移動(dòng)到運(yùn)動(dòng)起始點(diǎn)時(shí),設(shè)置開(kāi)光參數(shù)和延時(shí)參數(shù),在軌跡完成時(shí)設(shè)置關(guān)光延時(shí)和關(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)刻過(guò)程

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

24.png

完整代碼獲取地址

25.png

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

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

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

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

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


 

狀 態(tài): 離線

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

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

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