在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

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

如何通過Qt編程實(shí)現(xiàn)小線段軌跡連續(xù)加工

正運(yùn)動技術(shù) ? 來源:正運(yùn)動技術(shù) ? 作者:正運(yùn)動技術(shù) ? 2022-05-13 17:29 ? 次閱讀

今天,正運(yùn)動小助手給大家分享一下EtherCAT運(yùn)動控制卡開發(fā)教程之Qt,主要介紹一下如何通過Qt編程實(shí)現(xiàn)小線段軌跡連續(xù)加工,暫停與繼續(xù)。

ECI2828運(yùn)動控制卡的硬件介紹

ECI2828系列控制卡支持最多達(dá)16軸直線插補(bǔ)、任意圓弧插補(bǔ)、空間圓弧、螺旋插補(bǔ)、電子凸輪、電子齒輪、同步跟隨、虛擬軸、機(jī)械手指令等;采用優(yōu)化的網(wǎng)絡(luò)通訊協(xié)議可以實(shí)現(xiàn)實(shí)時(shí)的運(yùn)動控制。

ECI2828系列運(yùn)動控制卡支持以太網(wǎng),232通訊接口電腦相連,接收電腦的指令運(yùn)行,可以通過EtherCAT總線和CAN總線去連接各個(gè)擴(kuò)展模塊,從而擴(kuò)展輸入輸出點(diǎn)數(shù)或運(yùn)動軸。

ECI2828系列運(yùn)動控制卡的應(yīng)用程序可以使用VC、VB、VS、C++C#等多種高級語言編程來開發(fā),程序運(yùn)行時(shí)需要動態(tài)庫zmotion.dll。調(diào)試時(shí)可以把ZDevelop軟件同時(shí)連接到控制器,從而方便調(diào)試、方便觀察。

1.png

一、Qt進(jìn)行運(yùn)動控制卡開發(fā)的流程

1.新建Qt項(xiàng)目。

2.png

圖1:新建Qt項(xiàng)目

3.png

圖2:選擇項(xiàng)目路徑

4.png

圖3:選擇Qt編譯套件(kits)

5.png

圖4:選擇基類

2.將函數(shù)庫相關(guān)的文件復(fù)制到新建的項(xiàng)目中。

6.png

3.向新建的項(xiàng)目里面添加函數(shù)庫的靜態(tài)庫。(zmotion.lib)

7.png

第一步:添加函數(shù)庫1

8.png

第二步:添加函數(shù)庫2

9.png

第三步:添加函數(shù)庫3

4.添加函數(shù)庫相關(guān)的頭文件到項(xiàng)目中。

10.png

5.聲明相關(guān)頭文件,并定義連接句柄。

11.png

二、PC函數(shù)介紹

1.PC函數(shù)手冊也在光盤資料里面,具體路徑如下:“光盤資料\8.PC函數(shù)\函數(shù)庫2.1\ZMotion函數(shù)庫編程手冊 V2.1.pdf”。

12.png

2.PC編程,一般如果網(wǎng)口對控制器和工控機(jī)進(jìn)行鏈接。網(wǎng)口鏈接函數(shù)接口是ZAux_OpenEth();如果鏈接成功,該接口會返回一個(gè)鏈接句柄。通過操作這個(gè)鏈接句柄可以實(shí)現(xiàn)對控制器的控制。

ZAux_OpenEth()接口說明:

13.png

3.連續(xù)插補(bǔ)和S曲線設(shè)置相關(guān)指令介紹。

14.png

4.拐角模式設(shè)置相關(guān)指令介紹。

15.png
16.png
17.png

三、Qt開發(fā)實(shí)現(xiàn)小線段軌跡連續(xù)加工、暫停與繼續(xù)

1.Qt例程界面如下。

18.png

2.在構(gòu)造函數(shù)里面調(diào)用鏈接控制器的接口ZAux_OpenEth(),與控制器進(jìn)行鏈接,鏈接成功后啟動定時(shí)器監(jiān)控控制器的軸信息

MainWindow::MainWindow(QWidget *parent) :

QMainWindow(parent),

ui(new Ui::MainWindow)

{

int rint=0;

ui->setupUi(this);

//系統(tǒng)啟動自動連接控制器

rint = ZAux_OpenEth("192.168.0.223", &g_handle);

//如果鏈接成功則啟動定時(shí)器

if(rint==0)

{

startTimer(50);

}

}

3.通過定時(shí)器更新控制器各個(gè)軸的位置和速度信息。

//定時(shí)器事件

void MainWindow::timerEvent(QTimerEvent *event)

{

QString StrText;

float AxisDpos[3]={0};

float AxisMspeed[3]={0};

if(NULL != g_handle)

{

for(int i=0;i<3;i++)

{

//獲取軸0的位置信息

ZAux_Direct_GetDpos(g_handle,i,&AxisDpos[i]);

//獲取軸0的速度信息

ZAux_Direct_GetMspeed(g_handle,i,&AxisMspeed[i]);

}

StrText = QString("#軸0位置:(%1) #軸1位置:(%2) #軸2位置:(%3)").arg(AxisDpos[0]).arg(AxisDpos[1]).arg(AxisDpos[2]);

ui->AxisDpos->setText(StrText);

StrText = QString("#軸0速度:(%1) #軸1速度:(%2) #軸2速度:(%3)").arg(AxisMspeed[0]).arg(AxisMspeed[1]).arg(AxisMspeed[2]);

ui->AxisMspeed->setText(StrText);

}

}

4.連續(xù)小線段的加工。(1)通過ZCADToMore2.0導(dǎo)圖工具將“dxf”格式的CAD圖紙導(dǎo)成“Z3P”文件的格式并下載到控制器里面。

(點(diǎn)擊控制器→發(fā)送到控制器按鈕,即可把代碼顯示窗口中的代碼發(fā)送到控制器中,在控制器中的文件名為:ZCAD.z3p)

19.png

(2)搜索控制器里面的Z3P文件。

//搜索Z3P文件

void MainWindow::on_Search_clicked()

{

char Buff[1024]={"123"};

//搜索Z3P文件,結(jié)果放到VR(0) 開始的寄存器存儲

ZAux_Execute(g_handle, "FILE "FLASH_FIRST", ".z3p",0", NULL, 0);

//獲取VR寄存器里面的文件名

ZAux_Execute(g_handle, "?vrstring(0,128)", Buff, 1024);

//去除文件名的\n

int Len = strlen(Buff);

Buff[Len-1]=0;

QString Str = QString(QLatin1String(Buff));

//更新到UI界面上

ui->lineEdit->setText(Str);

qDebug()<<

}

(3)通過啟動按鈕啟動Z3P文件。

//啟動按鈕槽函數(shù):設(shè)置拐角模式,開始運(yùn)行Z3P文件

void MainWindow::on_RunButton_clicked()

{

QString Text;

int AxisList[3] = {0,1,2};

float DisList[3]={0};

//設(shè)置軸參數(shù)

for(int i=0; i<3; i++)

{

//軸類型設(shè)置為脈沖軸

ZAux_Direct_SetAtype(g_handle,i,1);

//設(shè)置脈沖當(dāng)量,一般設(shè)置成機(jī)臺運(yùn)動1mm需要的脈沖數(shù)

ZAux_Direct_SetUnits(g_handle,i,1000);

//設(shè)置軸運(yùn)動速度

ZAux_Direct_SetSpeed(g_handle,i,200);

//設(shè)置軸的加速度

ZAux_Direct_SetAccel(g_handle,i,2000);

//設(shè)置軸的減速度

ZAux_Direct_SetDecel(g_handle,i,2000);

//打開連續(xù)插補(bǔ)

ZAux_Direct_SetMerge(g_handle,i,1);

//設(shè)置S曲線參數(shù)

ZAux_Direct_SetSramp(g_handle,i,250);

}

//設(shè)置拐角模式

int CornerMode=0;

//是否打開自動倒角

if(ui->IsChamfer->checkState())

{

CornerMode = 32+CornerMode;

}

//是否打開拐角減速

if(ui->IsSlowDown->checkState())

{

CornerMode = 2+CornerMode;

//設(shè)置開始減速角度

Text = ui->StartAngle->toPlainText();

ZAux_Direct_SetDecelAngle(g_handle,AxisList[0],Text.toFloat()*3.14/180);

//設(shè)置停止減速角度

Text = ui->StopAngle->toPlainText();

ZAux_Direct_SetStopAngle(g_handle,AxisList[0],Text.toFloat()*3.14/180);

//設(shè)置參數(shù)速度

Text = ui->SpSpeed->toPlainText();

ZAux_Direct_SetForceSpeed(g_handle,AxisList[0],Text.toFloat());

}

//是否打開小圓限速

if(ui->IsMinCir->checkState())

{

CornerMode = 8+CornerMode;

//設(shè)置限速半徑

Text = ui->CirRadius->toPlainText();

ZAux_Direct_SetFullSpRadius(g_handle,AxisList[0],Text.toFloat());

//設(shè)置參數(shù)速度

Text = ui->SpSpeed->toPlainText();

ZAux_Direct_SetForceSpeed(g_handle,AxisList[0],Text.toFloat());

}

ZAux_Direct_SetCornerMode(g_handle,AxisList[0],CornerMode);

//停止線程1

ZAux_Execute(g_handle, "STOPTASK 1", NULL, 0);

//啟動Z3P文件

char CmdBuff[64];

char *str = ui->lineEdit->text().toLatin1().data();

sprintf(CmdBuff, "FILE3_RUN "%s",1",str);

ZAux_Execute(g_handle, CmdBuff, NULL, 0);

}

5.通過停止按鈕的槽函數(shù)調(diào)用軸運(yùn)動停止指令停止軸運(yùn)動

//停止軸運(yùn)動

void MainWindow::on_StopButton_clicked()

{

//停止線程1

ZAux_Execute(g_handle, "STOPTASK 1", NULL, 0);

//停止軸運(yùn)動

ZAux_Direct_Rapidstop(g_handle,2);

}

6.小線段連續(xù)軌跡加工的暫停與繼續(xù)。

//暫停運(yùn)動

void MainWindow::on_Suspended_clicked()

{

//暫停軸運(yùn)動

ZAux_Direct_MovePause(g_handle,0,0);

//暫停線程1

ZAux_Execute(g_handle, "PAUSETASK 1", NULL, 0);

}

//恢復(fù)運(yùn)動

void MainWindow::on_Restore_clicked()

{

//恢復(fù)軸運(yùn)動

ZAux_Direct_MoveResume(g_handle,0);

//恢復(fù)線程1

ZAux_Execute(g_handle, "RESUMETASK 1", NULL, 0);

}

四、例程移植到Linux設(shè)備上

1.Linux對應(yīng)架構(gòu)的庫復(fù)制到項(xiàng)目文件夾里面。

20.png

2.向新建的項(xiàng)目里面添加函數(shù)庫的靜態(tài)庫。(libzmotion.so)

21.png

添加函數(shù)庫1

22.png

添加函數(shù)庫2

23.png

添加函數(shù)庫3

→至此,重新編譯即可運(yùn)行。

3.調(diào)試與監(jiān)控。

編譯運(yùn)行例程,同時(shí)連接ZDevelop軟件進(jìn)行調(diào)試,對運(yùn)動控制的軸參數(shù)和運(yùn)動情況進(jìn)行監(jiān)控。

(1)小線段軌跡加工的X-Y位置波形圖。

24.png

(2)小線段軌跡加工的速度波形圖。(連續(xù)插補(bǔ)未打開拐角減速)

25.png

(3)小線段軌跡加工的速度波形圖。

(連續(xù)插補(bǔ)設(shè)置拐角減速)

26.png

本次,正運(yùn)動技術(shù)EtherCAT運(yùn)動控制卡開發(fā)教程之Qt(中):小線段連續(xù)軌跡加工、暫停與繼續(xù),就分享到這里。

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

    關(guān)注

    4

    文章

    585

    瀏覽量

    32915
  • ethercat
    +關(guān)注

    關(guān)注

    18

    文章

    719

    瀏覽量

    38765
  • qt編程
    +關(guān)注

    關(guān)注

    0

    文章

    4

    瀏覽量

    6259
收藏 人收藏

    評論

    相關(guān)推薦

    AN-1310:通過MDIO實(shí)現(xiàn)閃存編程—協(xié)議類型8

    電子發(fā)燒友網(wǎng)站提供《AN-1310:通過MDIO實(shí)現(xiàn)閃存編程—協(xié)議類型8.pdf》資料免費(fèi)下載
    發(fā)表于 01-14 15:13 ?0次下載
    AN-1310:<b class='flag-5'>通過</b>MDIO<b class='flag-5'>實(shí)現(xiàn)</b>閃存<b class='flag-5'>編程</b>—協(xié)議類型8

    運(yùn)動控制中如何實(shí)現(xiàn)路徑軌跡預(yù)測

    在運(yùn)動控制中,軌跡執(zhí)行時(shí)間的預(yù)測對于多軸的協(xié)同、路徑預(yù)處理等方面有著重要的作用。CODESYS系列控制器提供了預(yù)測軌跡執(zhí)行時(shí)間功能塊。要實(shí)現(xiàn)完整的預(yù)測功能,需要使用到以下的功能塊
    的頭像 發(fā)表于 01-05 11:04 ?172次閱讀
    運(yùn)動控制中如何<b class='flag-5'>實(shí)現(xiàn)</b>路徑<b class='flag-5'>軌跡</b>預(yù)測

    數(shù)控車削中的粗加工編程方法

    數(shù)控車削中的粗加工編程方法 車削零件毛坯多為棒料或鍛坯,加工余量較大且不均勻,因此粗加工中往往要經(jīng)過多次走刀。在數(shù)控車床上加工時(shí),每次走刀必
    的頭像 發(fā)表于 12-03 11:02 ?232次閱讀
    數(shù)控車削中的粗<b class='flag-5'>加工</b>的<b class='flag-5'>編程</b>方法

    一種創(chuàng)新的動態(tài)軌跡預(yù)測方法

    本文提出了一種動態(tài)軌跡預(yù)測方法,通過結(jié)合歷史幀和歷史預(yù)測結(jié)果來提高預(yù)測的穩(wěn)定性和準(zhǔn)確性。它引入了歷史預(yù)測注意力模塊,以編碼連續(xù)預(yù)測之間的動態(tài)關(guān)系,并通過三重因子注意力模塊
    的頭像 發(fā)表于 10-28 14:34 ?474次閱讀
    一種創(chuàng)新的動態(tài)<b class='flag-5'>軌跡</b>預(yù)測方法

    園區(qū)封閉化管理之人員和車輛定位及軌跡追蹤

    定位及軌跡追蹤技術(shù)? 人車定位及軌跡追蹤技術(shù)是一種利用全球衛(wèi)星導(dǎo)航系統(tǒng)(GPS/北斗等)、無線通信技術(shù)(藍(lán)牙、UWB等)和互聯(lián)網(wǎng)技術(shù)來實(shí)現(xiàn)對人車位置和移動軌跡的精確追蹤的技術(shù)。
    的頭像 發(fā)表于 10-11 11:20 ?425次閱讀
    園區(qū)封閉化管理之人員和車輛定位及<b class='flag-5'>軌跡</b>追蹤

    人員軌跡分析算法有哪些?

    人員軌跡分析是一項(xiàng)重要的數(shù)據(jù)分析技術(shù),它可以幫助我們理解和預(yù)測人們的行為模式以及他們在特定時(shí)間和地點(diǎn)的活動。通過分析人員軌跡數(shù)據(jù),我們能夠從中獲取有價(jià)值的信息,例如人們的活動范圍、常去的地點(diǎn)、活動
    的頭像 發(fā)表于 09-26 10:42 ?459次閱讀

    EtherCAT運(yùn)動控制器上位機(jī)開發(fā)之Python+Qt(三):PDO配置與SDO讀寫

    PC上位機(jī)Python+Qt混合編程實(shí)現(xiàn)PDO配置與SDO讀寫
    的頭像 發(fā)表于 08-21 15:56 ?1202次閱讀
    EtherCAT運(yùn)動控制器上位機(jī)開發(fā)之Python+<b class='flag-5'>Qt</b>(三):PDO配置與SDO讀寫

    人員定位及軌跡管理技術(shù)原理及應(yīng)用領(lǐng)域

    監(jiān)控和管理。通過人員定位技術(shù)獲取到的位置信息可以被記錄和分析,以生成人員的移動軌跡。這些軌跡數(shù)據(jù)可以用于分析人員的活動模式、優(yōu)化工作流程以及改善安全性能。例如,在安全監(jiān)控領(lǐng)域,人員軌跡
    的頭像 發(fā)表于 08-14 11:06 ?744次閱讀
    人員定位及<b class='flag-5'>軌跡</b>管理技術(shù)原理及應(yīng)用領(lǐng)域

    嵌入式QT常見開發(fā)方式有哪些?

    : 使用Qt Designer設(shè)計(jì)圖形用戶界面,并將其導(dǎo)出為.ui文件。然后通過C++代碼加載這些UI文件,并實(shí)現(xiàn)與UI元素的交互邏輯。這種方式結(jié)合了可視化設(shè)計(jì)工具的優(yōu)勢以及C++編程
    發(fā)表于 08-12 10:05

    VPLC系列機(jī)器視覺運(yùn)動控制一體機(jī)在五軸聯(lián)動點(diǎn)膠上的應(yīng)用

    空間軌跡的追隨控制,實(shí)現(xiàn)點(diǎn)膠閥或工件邊點(diǎn)膠邊傾斜調(diào)整角度,點(diǎn)膠軌跡路徑始終與產(chǎn)品翻轉(zhuǎn)姿態(tài)保持一致,確保了點(diǎn)膠加工過程的連續(xù)性和平滑性,還顯著
    發(fā)表于 07-29 14:29

    數(shù)控銑削加工加工前數(shù)控程序需要編程

    、模具制造等行業(yè)。數(shù)控銑削加工的核心在于數(shù)控程序的編程,它是實(shí)現(xiàn)自動化加工的關(guān)鍵步驟。 1. 數(shù)控銑削加工的特點(diǎn) 高精度 :數(shù)控銑削
    的頭像 發(fā)表于 06-07 11:15 ?971次閱讀

    深圳恒興隆|自動換刀電主軸:實(shí)現(xiàn)加工自動化與高效化的關(guān)鍵.

    ,不僅簡化了傳統(tǒng)手動換刀的繁瑣過程,降低了工人的勞動強(qiáng)度,更重要的是提高了加工的自動化水平,為實(shí)現(xiàn)無人值守、連續(xù)加工提供了可能。 二、自動換刀電主軸的技術(shù)特點(diǎn)1、高精度換刀:自動換刀電主軸采用先進(jìn)
    發(fā)表于 05-08 10:24

    基于VPLC711的曲面外觀檢測XYR運(yùn)動控制解決方案

    驅(qū)動器,控制XYR軸運(yùn)動; ●EtherNET接口:千兆網(wǎng)口,接支持Gige協(xié)議的面陣相機(jī)和線掃相機(jī),實(shí)現(xiàn)視覺定位、旋轉(zhuǎn)中心點(diǎn)確定、軌跡糾偏、曲面連續(xù)采圖等應(yīng)用。 解決方案硬件配置 產(chǎn)品
    發(fā)表于 04-16 17:58

    機(jī)器視覺運(yùn)動控制一體機(jī)在喇叭跟隨點(diǎn)膠上的應(yīng)用

    等功能,可確保點(diǎn)膠加工軌跡平滑,控制膠點(diǎn)穩(wěn)定輸出大小,提高產(chǎn)品品質(zhì)和產(chǎn)能,可規(guī)避傳統(tǒng)系統(tǒng)存在的問題。同時(shí)支持點(diǎn)膠軌跡打點(diǎn)、線、圓、弧、連續(xù)線段
    發(fā)表于 04-16 17:37

    一種基于自然語言的軌跡修正方法

    LLMs實(shí)現(xiàn)用戶話語和特征描述的語義匹配,進(jìn)而將軌跡修改函數(shù)應(yīng)用于初始軌跡實(shí)現(xiàn)對未見過的軌跡和物體配置的泛化。
    的頭像 發(fā)表于 01-19 10:45 ?470次閱讀
    一種基于自然語言的<b class='flag-5'>軌跡</b>修正方法
    主站蜘蛛池模板: 人人草草| 久久精品国产免费观看99| 久久国产视频网站| 亚洲色图25p| 中国高清色视频www| 天堂最新版在线www在线| 色中色在线视频| 国产成人综合网在线播放| 欧美一级视频在线高清观看| 亚洲播播| 欧美极品bbbbⅹxxxx| 51vv福利视频在线精品| 午夜激情婷婷| 亚洲第成色999久久网站| 三级三级三级网站网址| 四虎国产精品永久在线| 亚洲欧洲日韩综合| 四虎影院www| 玖玖色视频| 农村妇女色又黄一级毛片卡| 日韩免费精品视频| 久久美女性网| 狠狠综合欧美综合欧美色| www.亚洲天堂.com| www.jizz在线观看| 日本wwwxx| 久久香蕉国产线看观看亚洲片| 2018天天干夜夜操| 狠狠色噜噜狠狠狠狠五月婷| 手机在线电影你懂的| 狠狠躁夜夜躁人人爽天天天天| 伊人操| 一区二区三区午夜| 国产综合精品久久久久成人影| 亚洲男人天堂岛| 亚洲第一页视频| 亚洲成人av| 久久就是精品| 天堂最新资源在线| 亚洲视频在线免费看| 午夜色网|