欧美韩国日本桃色,一区二区三区国产私人毛片,精品极品精品,亚洲一区人妻,久久久久久久久亚洲免费,青娱乐91,亚洲情涩,久久久成人毛片,日本欧美不卡二区在线

首頁(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é)
步進(jìn)控制的光柵尺全閉環(huán)EtherCAT運(yùn)動(dòng)控制器ZMC432CL-V2快速入門:二維螺距補(bǔ)償(下)
深圳市正運(yùn)動(dòng)技術(shù)有限公司
收藏本文     查看收藏

今天,正運(yùn)動(dòng)小助手以QT(C++)為例,為大家介紹如何通過(guò)上位機(jī)編程來(lái)啟用ZMC432CL-V2的二維螺距補(bǔ)償功能。

更多關(guān)于ZMC432CL-V2運(yùn)動(dòng)控制器的詳情點(diǎn)擊→步進(jìn)控制的光柵尺全閉環(huán)解決方案:32軸EtherCAT總線運(yùn)動(dòng)控制器ZMC432CL-V2查看。

01  產(chǎn)品簡(jiǎn)介

ZMC432CL-V2高性能多軸運(yùn)動(dòng)控制器是一款兼容EtherCAT總線和脈沖型的獨(dú)立式運(yùn)動(dòng)控制器,具備高速實(shí)時(shí)反饋功能,支持脈沖全閉環(huán)控制,能夠?qū)崿F(xiàn)高精度、高響應(yīng)速度的運(yùn)動(dòng)控制。高精度定位,有效消除機(jī)械傳動(dòng)誤差,滿足高精密加工場(chǎng)景應(yīng)用要求。

正運(yùn)動(dòng)ZMC432CL-V2高性能多軸運(yùn)動(dòng)控制器.webp

ZMC432CL-V2硬件功能:

  • 豐富的運(yùn)動(dòng)控制功能:支持直線、圓弧、空間圓弧、螺旋插補(bǔ)等。

  • 硬件接口豐富:支持脈沖軸(帶編碼器反饋)和EtherCAT總線軸,具備24路輸入和12路輸出的通用IO,部分為高速IO,2路模擬量輸出(DA)。

  • EtherCAT刷新周期最快達(dá)250us,滿足高速通信需求。

  • 支持4通道硬件比較輸出、硬件定時(shí)器、運(yùn)動(dòng)中精準(zhǔn)輸出,適用于多通道視覺(jué)飛拍等場(chǎng)合。

  • 支持掉電檢測(cè)、掉電存儲(chǔ),多種程序加密方式,能夠有效防止系統(tǒng)故障,保護(hù)項(xiàng)目工程文件數(shù)據(jù),并提高系統(tǒng)的可靠性。

  • 通過(guò)純國(guó)產(chǎn)IDE開(kāi)發(fā)環(huán)境RTSys進(jìn)行項(xiàng)目開(kāi)發(fā),可實(shí)時(shí)仿真、在線跟蹤以及診斷與調(diào)試,簡(jiǎn)便易用,支持多種高級(jí)上位機(jī)語(yǔ)言聯(lián)合編程進(jìn)行二次開(kāi)發(fā)。

ZMC432CL-V2產(chǎn)品介紹視頻請(qǐng)點(diǎn)擊→步進(jìn)控制的光柵尺全閉環(huán)解決方案:32軸EtherCAT總線運(yùn)動(dòng)控制器ZMC432CL-V2

02 硬件接口

正運(yùn)動(dòng)ZMC432CL-V2硬件接口.webp

正運(yùn)動(dòng)ZMC432CL-V2硬件接口說(shuō)明.webp

03 硬件接線

1.數(shù)字量輸入口IN接線

正運(yùn)動(dòng)ZMC432CL-V2運(yùn)動(dòng)控制器硬件接線1.webp

圖1 輸入口通用接線圖

正運(yùn)動(dòng)ZMC432CL-V2運(yùn)動(dòng)控制器硬件接線1圖2~1.webp

圖2 輸入口單端編碼器接線圖

2.數(shù)字量輸出口接線

正運(yùn)動(dòng)ZMC432CL-V2運(yùn)動(dòng)控制器硬件接線2圖3.webp

圖3 輸出口通用接線圖

正運(yùn)動(dòng)ZMC432CL-V2運(yùn)動(dòng)控制器硬件接線2圖4~1.webp

圖4 輸出口單端脈沖軸接線圖

04 控制器開(kāi)發(fā)

1.PC開(kāi)發(fā)

支持以下語(yǔ)言進(jìn)行開(kāi)發(fā),我們所有的開(kāi)發(fā)語(yǔ)言和所有控制器提供的都是同一套API接口。

正運(yùn)動(dòng)控制器同一套API接口~1.webp

2.脫機(jī)開(kāi)發(fā)

使用自主自研的IDE RTSys進(jìn)行開(kāi)發(fā),支持Basic、梯形圖開(kāi)發(fā)。

正運(yùn)動(dòng)技術(shù)開(kāi)發(fā)環(huán)境及工具.webp

05 二維螺距補(bǔ)償應(yīng)用場(chǎng)景

正運(yùn)動(dòng)運(yùn)動(dòng)控制器ZMC432CL-V2二維螺距補(bǔ)償應(yīng)用場(chǎng)景.webp

06 二維螺距補(bǔ)償指令說(shuō)明

/*************************************************************
Description:    //二維螺距補(bǔ)償, 4系列特殊固件支持,該算法比較占CPU
Input:          //handle        句柄連接
Input:          //iaxisList     軸號(hào)列表
Input:          //iAxisNum      XY模式2個(gè)軸,XYY/XYX模式是3個(gè)軸
Input:          //iEnable       0- 關(guān)閉補(bǔ)償,1- XY補(bǔ)償 ,2- XYX補(bǔ)償,3- XYY補(bǔ)償
Input:          //StartPosX     起始補(bǔ)償MPOS位置X,
Input:          //StartPosY     起始補(bǔ)償MPOS位置Y,
Input:          //DisOneX       每個(gè)補(bǔ)償點(diǎn)間距X,
Input:          //DisOneY       每個(gè)補(bǔ)償點(diǎn)間距Y,
Input:          //maxpointX     補(bǔ)償區(qū)間X方向總點(diǎn)數(shù)
Input:          //maxpointy     補(bǔ)償區(qū)間Y方向總點(diǎn)數(shù)
Input:          //Tableindex    螺距補(bǔ)償表存儲(chǔ)的table位置,從StartPos下一個(gè)點(diǎn)開(kāi)始存儲(chǔ),脈沖數(shù)單位, 每個(gè)點(diǎn)存儲(chǔ)兩個(gè)數(shù)據(jù),表示X方向偏差值與Y方向偏差值. 先存儲(chǔ)第一行(X方向), 再存儲(chǔ)第二行.總共占用 maxpointx*maxpointy*2 個(gè)TABLE位置.
Input:          //pfDisancelist  區(qū)間補(bǔ)償值列表
Output:         //
Return:         //錯(cuò)誤碼
*************************************************************/
int32  ZAux_Direct_Pitch2set(ZMC_HANDLE handle,int * iaxisList,int iAxisNum,int iEnable,float StartPosX,float StartPosY,float DisOneX ,float DisOneY ,uint32 maxpointX,uint32 maxpointY,uint32 Tableindex,float * pfDisancelist);

正運(yùn)動(dòng)二維螺距補(bǔ)償指令使用的注意點(diǎn):

1.必須先設(shè)置ATYPE,然后設(shè)置補(bǔ)償;修改ATYPE時(shí),必須先關(guān)閉補(bǔ)償!

2.設(shè)置補(bǔ)償時(shí),軸要位于IDLE的停止?fàn)顟B(tài)!

3.開(kāi)始補(bǔ)償點(diǎn)的坐標(biāo)填寫(xiě)的是軸的MPOS坐標(biāo)!

4.帶編碼器反饋的軸類型,不同位置補(bǔ)多少個(gè)脈沖,是根據(jù)編碼器位置確定脈沖補(bǔ)償?shù)膫(gè)數(shù)的,所以一定要保證編碼器的反饋是正確的!

5.機(jī)臺(tái)斷使能前,需先關(guān)掉二維螺距補(bǔ)償功能,否則如果斷使能的情況下機(jī)臺(tái)有移動(dòng),會(huì)造成dpos跟mpos的數(shù)據(jù)對(duì)不上。

6.如下圖假設(shè)開(kāi)始補(bǔ)償點(diǎn)是坐標(biāo)系的原點(diǎn),補(bǔ)償間距分別是【DisX,DisY】補(bǔ)償?shù)狞c(diǎn)是【4*4】的話,螺距補(bǔ)償表存儲(chǔ)的點(diǎn)位數(shù)據(jù)就是以下【點(diǎn)1】到【點(diǎn)16】的位置下的補(bǔ)償數(shù)據(jù)。

正運(yùn)動(dòng)二維螺距補(bǔ)償指令注意點(diǎn)~1.webp

07 上位機(jī)編程驗(yàn)證效果

假設(shè)客戶有一個(gè)激光切割機(jī)的機(jī)臺(tái)需要使用二維螺距補(bǔ)償指令來(lái)解決機(jī)臺(tái)在不同位置受力不同【導(dǎo)致】機(jī)臺(tái)形變不同【從而】導(dǎo)致的精度丟失問(wèn)題。

步驟一:
以軸坐標(biāo)【0,0】作為二維補(bǔ)償?shù)拈_(kāi)始補(bǔ)償?shù)奈恢谩?/strong>

 

步驟二:
以軸坐標(biāo)【40,40】作為第一個(gè)圓的圓心,然后以陣列的方式通過(guò)激光在板子是畫(huà)出4行4列的16個(gè)圓,陣列X軸方向間距為40mm,Y軸方向間距為40mm,16個(gè)圓的大致位置如下:

07步驟二.webp

步驟三:
設(shè)置二維螺距補(bǔ)償?shù)摹据o助參數(shù)】,并運(yùn)動(dòng)到【開(kāi)始補(bǔ)償點(diǎn)】的位置點(diǎn)擊【教導(dǎo)編碼器】,把當(dāng)前編碼器位置更新到【開(kāi)始補(bǔ)償點(diǎn)】的編碼器原始值里面。

二位螺距補(bǔ)償輔助參數(shù).webp

步驟四:
通過(guò)視覺(jué)找出這16個(gè)圓的圓心的實(shí)際坐標(biāo),并把坐標(biāo)填入到Ui界面的表格里面。

步驟四~1.webp

步驟五:
運(yùn)動(dòng)到各個(gè)補(bǔ)償點(diǎn)驗(yàn)證效果,具體補(bǔ)償效果如下:

步驟五1.webp

步驟五2.webp

步驟五3.webp


步驟六:
上位機(jī)編程詳情。

①如何啟用二維螺距補(bǔ)償功能。

int TimeOut = 3000;
int TempI[AxisNum]={0,0};
int AxisList[AxisNum] = {AxisIdX,AxisIdY};
float PcTable[16*2];
//是否啟用二維螺距補(bǔ)償功能
if((0 == m_Enable)&&(ui->Enable->text() == "是"))
{
    //等待軸停止,軸停下來(lái)了才可以打開(kāi)二維螺距補(bǔ)償功能
    while (TimeOut>0) {
        ZAux_Direct_GetIfIdle(handle,MyAxisInfo[0].AxisId,&TempI[0]);
        ZAux_Direct_GetIfIdle(handle,MyAxisInfo[1].AxisId,&TempI[1]);
        if((TempI[0] != 0 ) &&(TempI[1] != 0))
        {
            break;
        }
        QThread::msleep(10);
        TimeOut = TimeOut -10;
    }
    if(TimeOut ==0)
    {
        qDebug()<<"等待軸停止時(shí)間超時(shí)!軸還未停止!";
        return;
    }
    int i=0,j=0;
    // 開(kāi)始更新表格點(diǎn)位數(shù)據(jù)到PcTable數(shù)組
    for (int row = 0; row < ui->TableData->rowCount(); row++) {
        QTableWidgetItem *xItem = ui->TableData->item(row, 1); // X列(索引1)
        QTableWidgetItem *yItem = ui->TableData->item(row, 2); // Y列(索引2)
        if (xItem && yItem) {
            // 直接讀取表格顯示的文本值
            QString xText = xItem->text();  // 如 "40.003800"
            QString yText = yItem->text();  // 如 "40.008700"
            // 轉(zhuǎn)換為浮點(diǎn)數(shù)
            bool xOk, yOk;
            float xValue = xText.toFloat(&xOk);
            float yValue = yText.toFloat(&yOk);
            if (xOk && yOk) {
                // 按原邏輯存儲(chǔ)到PcTable數(shù)組
                PcTable[i] = xValue;
                i = i + 1;
                PcTable[i] = yValue;
                i = i + 1;
            } else {
                qDebug() << "錯(cuò)誤: Row" << row << "數(shù)據(jù)轉(zhuǎn)換失敗"
                         << "X text:" << xText << "Y text:" << yText;
            }
        }
    }
   //開(kāi)始更新補(bǔ)償表的數(shù)據(jù)到TABLE數(shù)組
   for(i=0;iMaxPointY->text().toUInt();i++) //行
   {
       for(j=0;jMaxPointX->text().toUInt();j++) //列
       {
           PcTable[2*(i*4+j)] = ((1+j)*ui->DisX->text().toFloat()+ui->StartMposX->text().toFloat()-PcTable[2*(i*4+j)])* MyAxisInfo[0].Units;
           PcTable[2*(i*4+j)+1] = ((1+i)*ui->DisY->text().toFloat()+ui->StartMposY->text().toFloat()-PcTable[2*(i*4+j)+1])* MyAxisInfo[1].Units ;
       }
   }
   //啟用二維螺距補(bǔ)償功能
   /*************************************************************
   Description:    //二維螺距補(bǔ)償, 4系列(VERSION_BUILD > 230511)特殊固件支持.  比較占CPU, 標(biāo)準(zhǔn)固件不支持.
   Input:          //handle 句柄連接
   Input:          //AxisList	  軸號(hào)列表
   Input:          //iEnable  0- 關(guān)閉補(bǔ)償,  1- XY補(bǔ)償,2- XYX補(bǔ)償,3- XYY補(bǔ)償
   Input:          //StartMposX  起始補(bǔ)償MPOS位置X
,   Input:          //StartMposY  起始補(bǔ)償MPOS位置Y,
   Input:          //DisX	 每個(gè)補(bǔ)償點(diǎn)間距X,
   Input:          //DisY	 每個(gè)補(bǔ)償點(diǎn)間距Y,
   Input:          //MaxPointX  補(bǔ)償區(qū)間總點(diǎn)數(shù)
   Input:          //MaxPointY  補(bǔ)償區(qū)間總點(diǎn)數(shù)
   Input:          //TableStartId   螺距補(bǔ)償表存儲(chǔ)的table位置,從startpos下一個(gè)點(diǎn)開(kāi)始存儲(chǔ),脈沖數(shù)單位, 每個(gè)點(diǎn)存儲(chǔ)兩個(gè)數(shù)據(jù),表示X方向偏差值與Y方向偏差值. 先存儲(chǔ)第一行(X方向), 再存儲(chǔ)第二行.總共占用 maxpointx*maxpointy*2 個(gè)TABLE位置.
   Input:          //PcTable  區(qū)間補(bǔ)償值列表
   *************************************************************/
   ZAux_Direct_Pitch2set(handle,AxisList,2,1,ui->StartMposX->text().toFloat(),ui->StartMposY->text().toFloat(),
                         ui->DisX->text().toFloat() ,ui->DisY->text().toFloat(),
                         ui->MaxPointX->text().toUInt(),ui->MaxPointY->text().toUInt(),
                         ui->TableStartId->text().toUInt(),PcTable);   m_Enable=true;}

②定時(shí)器如何實(shí)時(shí)計(jì)算實(shí)際補(bǔ)償數(shù)據(jù)到UI界面。

float TempDpos[AxisNum]={0,0};
float TempActuaPul[AxisNum]={0,0};
//理論上發(fā)的脈沖數(shù)
ZAux_Direct_GetDpos(handle,MyAxisInfo[0].AxisId,&TempDpos[0]);
TempDpos[0] = (TempDpos[0] - ui->StartMposX->text().toFloat() )*(MyAxisInfo[0].Units);
ZAux_Direct_GetDpos(handle,MyAxisInfo[1].AxisId,&TempDpos[1]);
TempDpos[1] = (TempDpos[1] - ui->StartMposY->text().toFloat() )*(MyAxisInfo[1].Units);
//實(shí)際上發(fā)的脈沖數(shù)
ZAux_Direct_GetEncoder(handle,MyAxisInfo[0].AxisId,&TempActuaPul[0]);
TempActuaPul[0] = (TempActuaPul[0] - ui->StrarEncoderX->text().toFloat());
ZAux_Direct_GetEncoder(handle,MyAxisInfo[1].AxisId,&TempActuaPul[1]);
TempActuaPul[1] = (TempActuaPul[1] - ui->StrarEncoderY->text().toFloat());
//實(shí)際上發(fā)的脈沖數(shù) -理論上發(fā)的脈沖數(shù) = 實(shí)際補(bǔ)償?shù)拿}沖數(shù)  (除以脈沖當(dāng)量后表示實(shí)際補(bǔ)償?shù)木嚯x)
ui->CompenDataX->setText(QString("%1").arg((TempActuaPul[0]-TempDpos[0])/(MyAxisInfo[0].Units)));
ui->CompenDataY->setText(QString("%1").arg((TempActuaPul[1]-TempDpos[1])/(MyAxisInfo[1].Units)));完整代碼獲取地址

完整代碼獲取地址

代碼.webp

本次,正運(yùn)動(dòng)技術(shù)步進(jìn)控制的光柵尺全閉環(huán)EtherCAT運(yùn)動(dòng)控制器ZMC432CL-V2快速入門:二維螺距補(bǔ)償(下),就分享到這里。

更多精彩內(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。

二維碼.webp

正運(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ù)的研究。主要業(yè)務(wù)有:運(yùn)動(dòng)控制卡_運(yùn)動(dòng)控制器_EtherCAT運(yùn)動(dòng)控制卡_EtherCAT控制器_運(yùn)動(dòng)控制系統(tǒng)_視覺(jué)控制器__運(yùn)動(dòng)控制PLC_運(yùn)動(dòng)控制_機(jī)器人控制器_視覺(jué)定位_XPCIe/XPCI系列運(yùn)動(dòng)控制卡等等。


 

狀 態(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ù)文摘:
全國(guó)產(chǎn)自主可控運(yùn)動(dòng)控制器邀您相約2026北京國(guó)防展
深圳工博會(huì):深耕自主技術(shù),正運(yùn)動(dòng)技術(shù)助力智能制造
強(qiáng)實(shí)時(shí)運(yùn)動(dòng)控制卡XPCIE1032H在FPC補(bǔ)強(qiáng)機(jī)上的應(yīng)用解決方案
正運(yùn)動(dòng)磁驅(qū)多動(dòng)子柔性產(chǎn)線解決方案API接口(一):ZTS環(huán)境的創(chuàng)建和函數(shù)庫(kù)的使用
100%元器件全國(guó)產(chǎn)化認(rèn)證:EtherCAT運(yùn)動(dòng)控制器ZMC432HG
單旋轉(zhuǎn)臺(tái)XYR在外觀檢測(cè)/激光焊接/拋光打磨的LabVIEW應(yīng)用
EtherCAT運(yùn)動(dòng)控制器電子凸輪在包裝機(jī)的應(yīng)用
C#運(yùn)動(dòng)控制開(kāi)源(二): CAD導(dǎo)圖和小線段速度前瞻優(yōu)化
武漢光博會(huì):深耕自主技術(shù),正運(yùn)動(dòng)技術(shù)助力光電設(shè)備實(shí)現(xiàn)高速高精控制
蜘蛛手視覺(jué)柔振應(yīng)用快速部署
EtherCAT運(yùn)動(dòng)控制器與EtherCAT總線電缸的自定義PDO控制
所見(jiàn)即所得,快速實(shí)現(xiàn)運(yùn)動(dòng)控制與界面組態(tài)開(kāi)發(fā)!
更多文摘...
立即發(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

蓬莱市| 招远市| 丰城市| 陇川县| 铜山县| 宿松县| 奉化市| 郯城县| 环江| 扎兰屯市| 万盛区| 九龙城区| 神木县| 嘉定区| 观塘区| 平度市| 宁陕县| 阿克| 探索| 徐水县| 无棣县| 浦东新区| 怀宁县| 庄浪县| 涿州市| 云南省| 寿宁县| 麟游县| 南城县| 米林县| 乌拉特前旗| 福海县| 宁南县| 齐河县| 廊坊市| 芮城县| 利津县| 乐至县| 和顺县| 岚皋县| 右玉县|