• <em id="6vhwh"><rt id="6vhwh"></rt></em>

    <style id="6vhwh"></style>

    <style id="6vhwh"></style>
    1. <style id="6vhwh"></style>
        <sub id="6vhwh"><p id="6vhwh"></p></sub>
        <p id="6vhwh"></p>
          1. 国产亚洲欧洲av综合一区二区三区 ,色爱综合另类图片av,亚洲av免费成人在线,久久热在线视频精品视频,成在人线av无码免费,国产精品一区二区久久毛片,亚洲精品成人片在线观看精品字幕 ,久久亚洲精品成人av秋霞

            EtherCAT運(yùn)動(dòng)控制卡開發(fā)教程之Qt(上):開發(fā)環(huán)境配置與簡(jiǎn)單運(yùn)動(dòng)控制應(yīng)用

            更新時(shí)間:2024-01-04 00:13:01 閱讀: 評(píng)論:0

            2024年1月4日發(fā)(作者:寶寶學(xué)水果)

            EtherCAT運(yùn)動(dòng)控制卡開發(fā)教程之Qt(上):開發(fā)環(huán)境配置與簡(jiǎn)單運(yùn)動(dòng)控制應(yīng)用

            EtherCAT運(yùn)動(dòng)控制卡開發(fā)教程之Qt(上):開發(fā)環(huán)境配置與簡(jiǎn)單運(yùn)動(dòng)控制應(yīng)用

            今天,正運(yùn)動(dòng)小助手給大家分享一下EtherCAT運(yùn)動(dòng)控制卡開發(fā)教程之Qt,主要介紹一下如何通過Qt編程實(shí)現(xiàn)直線插補(bǔ)的運(yùn)動(dòng)控制。

            一、ECI2828運(yùn)動(dòng)控制卡的硬件介紹

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

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

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

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

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

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

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

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

            圖4:選擇基類

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

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

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

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

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

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

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

            三、PC函數(shù)介紹

            函數(shù)手冊(cè)也在光盤資料里面,具體路徑如下:“光盤資料函數(shù)函數(shù)庫(kù)2.1ZMotion函數(shù)庫(kù)編程手冊(cè) ”。

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

            ZAux_OpenEth()接口說明:

            指令1 ZAux_OpenEth

            int32 __stdcall ZAux_OpenEth(char *ipaddr, ZMC_HA指令原型

            NDLE * phandle)

            指令說明

            輸入?yún)?shù)

            ipaddr

            輸出參數(shù)

            Phandle

            返回值

            以太網(wǎng)鏈接控制器。

            輸入?yún)?shù)1個(gè),詳細(xì)見下面說明。

            鏈接的IP地址。

            輸出參數(shù)1個(gè),詳細(xì)見下面說明。

            返回的鏈接句柄。

            詳細(xì)見錯(cuò)誤碼說明。

            3.多軸插補(bǔ)指令ZAux_Direct_MoveAbs介紹。

            指令2 ZAux_Direct_MoveAbs

            int32 __stdcall ZAux_Direct_MoveAbs(ZMC_HANDLE h指令原型 andle, int imaxaxis, int *piAxislist, float *pfDisancelist)

            指令說明

            輸入?yún)?shù)

            handle

            imaxaxis

            piAxislist

            pfDisancelist

            指令3

            絕對(duì)直線插補(bǔ)運(yùn)動(dòng)。

            共有4個(gè)輸入?yún)?shù),見下方說明。

            鏈接標(biāo)識(shí)。

            運(yùn)動(dòng)軸數(shù)。

            軸列表。

            運(yùn)動(dòng)的距離列表。

            ZAux_Direct_Move

            int32 __stdcall ZAux_Direct_Move(ZMC_HANDLE handl指令原型

            e, int imaxaxis, int *piAxislist,float *pfDisancelist)

            指令說明

            輸入?yún)?shù)

            handle

            imaxaxis

            piAxislist

            pfDisancelist

            多軸相對(duì)直線插補(bǔ)運(yùn)動(dòng)。

            共有4個(gè)輸入?yún)?shù),見下方說明。

            鏈接標(biāo)識(shí)。

            運(yùn)動(dòng)軸數(shù)。

            軸列表。

            運(yùn)動(dòng)的距離列表。

            4.獲取軸位置信息指令介紹。

            指令4 ZAux_Direct_GetDpos

            int32 __stdcall ZAux_Direct_GetDpos(ZMC_HANDLE ha指令原型

            ndle, int iaxis, float *pfValue)

            指令說明

            輸入?yún)?shù)

            handle

            iaxis

            輸出參數(shù)

            pfValue

            指令5

            讀取軸當(dāng)前位置。

            共有2個(gè)輸入?yún)?shù),見下方說明。

            鏈接標(biāo)識(shí)。

            軸號(hào)。

            共有1個(gè)輸出參數(shù),見下方說明。

            當(dāng)前軸位置。

            ZAux_Direct_GetMpos

            int32 __stdcall ZAux_Direct_GetMpos(ZMC_HANDLE h指令原型

            andle, int iaxis, float *pfValue)

            指令說明

            輸入?yún)?shù)

            handle

            iaxis

            輸出參數(shù)

            pfValue

            讀取軸反饋位置。

            共有2個(gè)輸入?yún)?shù),見下方說明。

            鏈接標(biāo)識(shí)。

            軸號(hào)。

            共有1個(gè)輸出參數(shù),見下方說明。

            當(dāng)前軸位置。

            5.獲取軸位置信息指令介紹。

            指令107 ZAux_Direct_GetMspeed

            int32 __stdcall ZAux_Direct_GetMspeed(ZMC_HANDLE指令原型

            handle, int iaxis, float *pfValue)

            指令說明

            輸入?yún)?shù)

            handle

            iaxis

            輸出參數(shù)

            pfValue

            讀取當(dāng)前反饋速度,單位units。

            共有2個(gè)輸入?yún)?shù),見下方說明。

            鏈接標(biāo)識(shí)。

            軸號(hào)。

            共有1個(gè)輸出參數(shù),見下方說明。

            返回的反饋速度。

            四、Qt開發(fā)實(shí)現(xiàn)多軸插補(bǔ)運(yùn)動(dòng)

            1.多軸插補(bǔ)運(yùn)動(dòng)Qt界面如下。

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

            MainWindow::MainWindow(QWidget *parent) :

            QMainWindow(parent),

            ui(new Ui::MainWindow)

            {

            int rint=0;

            ui->tupUi(this);

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

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

            //如果鏈接成功則啟動(dòng)定時(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->tText(StrText);

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

            ui->AxisMspeed->tText(StrText);

            }

            }

            4.通過啟動(dòng)按鈕的槽函數(shù)調(diào)用多軸插補(bǔ)命令進(jìn)行多軸插補(bǔ)運(yùn)動(dòng)。

            //啟動(dòng)按鈕槽函數(shù):開始直線插補(bǔ)運(yùn)動(dòng)

            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ī)臺(tái)運(yùn)動(dòng)1mm需要的脈沖數(shù)

            ZAux_Direct_SetUnits(g_handle,i,1000);

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

            ZAux_Direct_SetSpeed(g_handle,i,200);

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

            ZAux_Direct_SetAccel(g_handle,i,2000);

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

            ZAux_Direct_SetDecel(g_handle,i,2000);

            }

            //更新第一行的位置數(shù)據(jù)

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

            DisList[0] = t();

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

            DisList[1] = t();

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

            DisList[2] = t();

            ZAux_Direct_MoveAbs(g_handle,3,AxisList,DisList);

            //更新第二行的位置數(shù)據(jù)

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

            DisList[0] = t();

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

            DisList[1] = t();

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

            DisList[2] = t();

            //更新第三行的位置數(shù)據(jù)

            ZAux_Direct_MoveAbs(g_handle,3,AxisList,DisList);

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

            DisList[0] = t();

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

            DisList[1] = t();

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

            DisList[2] = t();

            ZAux_Direct_MoveAbs(g_handle,3,AxisList,DisList);

            }

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

            //停止軸運(yùn)動(dòng)

            void MainWindow::on_StopButton_clicked()

            {

            ZAux_Direct_Rapidstop(g_handle,2);

            }

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

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

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

            添加函數(shù)庫(kù)1

            添加函數(shù)庫(kù)2

            添加函數(shù)庫(kù)3

            3.重新編譯即可運(yùn)行。

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

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

            (1)多軸插補(bǔ)X-Y位置波形圖

            (2)多軸插補(bǔ)X-Y軸速度波形圖(未打開連續(xù)插補(bǔ))

            本次,正運(yùn)動(dòng)技術(shù)EtherCAT運(yùn)動(dòng)控制卡開發(fā)教程之Qt(上):開發(fā)環(huán)境配置與簡(jiǎn)單運(yùn)動(dòng)控制應(yīng)用,就分享到這里。完整代碼下載地址請(qǐng)關(guān)注“正運(yùn)動(dòng)小助手”公眾號(hào)獲取。

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

            EtherCAT運(yùn)動(dòng)控制卡開發(fā)教程之Qt(上):開發(fā)環(huán)境配置與簡(jiǎn)單運(yùn)動(dòng)控制應(yīng)用

            本文發(fā)布于:2024-01-04 00:13:01,感謝您對(duì)本站的認(rèn)可!

            本文鏈接:http://www.newhan.cn/zhishi/a/1704298381257643.html

            版權(quán)聲明:本站內(nèi)容均來自互聯(lián)網(wǎng),僅供演示用,請(qǐng)勿用于商業(yè)和其他非法用途。如果侵犯了您的權(quán)益請(qǐng)與我們聯(lián)系,我們將在24小時(shí)內(nèi)刪除。

            本文word下載地址:EtherCAT運(yùn)動(dòng)控制卡開發(fā)教程之Qt(上):開發(fā)環(huán)境配置與簡(jiǎn)單運(yùn)動(dòng)控制應(yīng)用.doc

            本文 PDF 下載地址:EtherCAT運(yùn)動(dòng)控制卡開發(fā)教程之Qt(上):開發(fā)環(huán)境配置與簡(jiǎn)單運(yùn)動(dòng)控制應(yīng)用.pdf

            標(biāo)簽:運(yùn)動(dòng)   插補(bǔ)   鏈接
            留言與評(píng)論(共有 0 條評(píng)論)
               
            驗(yàn)證碼:
            推薦文章
            排行榜
            Copyright ?2019-2022 Comsenz Inc.Powered by ? 實(shí)用文體寫作網(wǎng)旗下知識(shí)大全大全欄目是一個(gè)全百科類寶庫(kù)! 優(yōu)秀范文|法律文書|專利查詢|
            主站蜘蛛池模板: 国产一国产精品免费播放| 在线视频不卡在线亚洲| 北岛玲精品一区二区三区| 操国产美女| 天天躁日日躁狠狠躁中文字幕| 激情五月天一区二区三区| 最新的精品亚洲一区二区| 桃花岛亚洲成在人线AV| 亚洲av无码精品色午夜| 亚洲精品天堂无码中文字幕| 在线免费观看毛片av| 久久天天躁狠狠躁夜夜婷| 92国产福利午夜757小视频| 国产伦一区二区三区精品| 猫咪AV成人永久网站在线观看| 色综合天天综合天天更新| 日韩熟女熟妇久久精品综合| 亚洲欧美人成电影在线观看| 无码精品人妻一区二区三区中 | 日韩精品一二区在线观看| 成人又黄又爽又色的视频| 亚洲人成电影在线天堂色| 影视先锋av资源噜噜| 国产精品香港三级国产av| 欧美一区二区三区啪啪| 在线中文字幕精品第5页| 中文字幕一区二区三区在线毛片| 午夜福利波多野结衣人妻| 国产va免费精品高清在线观看| 国产一区二区丰满熟女人妻| 国产精品中文字幕av| 国产极品粉嫩学生一线天| 久久av色欲av久久蜜桃网| 日韩精品卡1卡2日韩在线| 精品国产大片中文字幕| 亚洲日韩性欧美中文字幕| 痉挛高潮喷水av无码免费 | 国产一区二三区日韩精品| 国产精品成人中文字幕| 日本福利视频免费久久久 | 亚洲老熟女一区二区三区|