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

首頁 新聞 工控搜 論壇 廠商論壇 產品 方案 廠商 人才 文摘 下載 展覽
中華工控網(wǎng)首頁
  P L C | 變頻器與傳動 | 傳感器 | 現(xiàn)場檢測儀表 | 工控軟件 | 人機界面 | 運動控制
  D C S | 工業(yè)以太網(wǎng) | 現(xiàn)場總線 | 顯示調節(jié)儀表 | 數(shù)據(jù)采集 | 數(shù)傳測控 | 工業(yè)安全
  電 源 | 嵌入式系統(tǒng) | PC based | 機柜箱體殼體 | 低壓電器 | 機器視覺
步進控制的光柵尺全閉環(huán)EtherCAT運動控制器ZMC432CL-V2快速入門:二維螺距補償(下)
深圳市正運動技術有限公司
收藏本文     查看收藏

今天,正運動小助手以QT(C++)為例,為大家介紹如何通過上位機編程來啟用ZMC432CL-V2的二維螺距補償功能。

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

01  產品簡介

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

正運動ZMC432CL-V2高性能多軸運動控制器.webp

ZMC432CL-V2硬件功能:

  • 豐富的運動控制功能:支持直線、圓弧、空間圓弧、螺旋插補等。

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

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

  • 支持4通道硬件比較輸出、硬件定時器、運動中精準輸出,適用于多通道視覺飛拍等場合。

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

  • 通過純國產IDE開發(fā)環(huán)境RTSys進行項目開發(fā),可實時仿真、在線跟蹤以及診斷與調試,簡便易用,支持多種高級上位機語言聯(lián)合編程進行二次開發(fā)。

ZMC432CL-V2產品介紹視頻請點擊→步進控制的光柵尺全閉環(huán)解決方案:32軸EtherCAT總線運動控制器ZMC432CL-V2

02 硬件接口

正運動ZMC432CL-V2硬件接口.webp

正運動ZMC432CL-V2硬件接口說明.webp

03 硬件接線

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

正運動ZMC432CL-V2運動控制器硬件接線1.webp

圖1 輸入口通用接線圖

正運動ZMC432CL-V2運動控制器硬件接線1圖2~1.webp

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

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

正運動ZMC432CL-V2運動控制器硬件接線2圖3.webp

圖3 輸出口通用接線圖

正運動ZMC432CL-V2運動控制器硬件接線2圖4~1.webp

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

04 控制器開發(fā)

1.PC開發(fā)

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

正運動控制器同一套API接口~1.webp

2.脫機開發(fā)

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

正運動技術開發(fā)環(huán)境及工具.webp

05 二維螺距補償應用場景

正運動運動控制器ZMC432CL-V2二維螺距補償應用場景.webp

06 二維螺距補償指令說明

/*************************************************************
Description:    //二維螺距補償, 4系列特殊固件支持,該算法比較占CPU
Input:          //handle        句柄連接
Input:          //iaxisList     軸號列表
Input:          //iAxisNum      XY模式2個軸,XYY/XYX模式是3個軸
Input:          //iEnable       0- 關閉補償,1- XY補償 ,2- XYX補償,3- XYY補償
Input:          //StartPosX     起始補償MPOS位置X,
Input:          //StartPosY     起始補償MPOS位置Y,
Input:          //DisOneX       每個補償點間距X,
Input:          //DisOneY       每個補償點間距Y,
Input:          //maxpointX     補償區(qū)間X方向總點數(shù)
Input:          //maxpointy     補償區(qū)間Y方向總點數(shù)
Input:          //Tableindex    螺距補償表存儲的table位置,從StartPos下一個點開始存儲,脈沖數(shù)單位, 每個點存儲兩個數(shù)據(jù),表示X方向偏差值與Y方向偏差值. 先存儲第一行(X方向), 再存儲第二行.總共占用 maxpointx*maxpointy*2 個TABLE位置.
Input:          //pfDisancelist  區(qū)間補償值列表
Output:         //
Return:         //錯誤碼
*************************************************************/
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);

正運動二維螺距補償指令使用的注意點:

1.必須先設置ATYPE,然后設置補償;修改ATYPE時,必須先關閉補償!

2.設置補償時,軸要位于IDLE的停止狀態(tài)!

3.開始補償點的坐標填寫的是軸的MPOS坐標!

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

5.機臺斷使能前,需先關掉二維螺距補償功能,否則如果斷使能的情況下機臺有移動,會造成dpos跟mpos的數(shù)據(jù)對不上。

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

正運動二維螺距補償指令注意點~1.webp

07 上位機編程驗證效果

假設客戶有一個激光切割機的機臺需要使用二維螺距補償指令來解決機臺在不同位置受力不同【導致】機臺形變不同【從而】導致的精度丟失問題。

步驟一:
以軸坐標【0,0】作為二維補償?shù)拈_始補償?shù)奈恢谩?/strong>

 

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

07步驟二.webp

步驟三:
設置二維螺距補償?shù)摹据o助參數(shù)】,并運動到【開始補償點】的位置點擊【教導編碼器】,把當前編碼器位置更新到【開始補償點】的編碼器原始值里面。

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

步驟四:
通過視覺找出這16個圓的圓心的實際坐標,并把坐標填入到Ui界面的表格里面。

步驟四~1.webp

步驟五:
運動到各個補償點驗證效果,具體補償效果如下:

步驟五1.webp

步驟五2.webp

步驟五3.webp


步驟六:
上位機編程詳情。

①如何啟用二維螺距補償功能。

int TimeOut = 3000;
int TempI[AxisNum]={0,0};
int AxisList[AxisNum] = {AxisIdX,AxisIdY};
float PcTable[16*2];
//是否啟用二維螺距補償功能
if((0 == m_Enable)&&(ui->Enable->text() == "是"))
{
    //等待軸停止,軸停下來了才可以打開二維螺距補償功能
    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()<<"等待軸停止時間超時!軸還未停止!";
        return;
    }
    int i=0,j=0;
    // 開始更新表格點位數(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"
            // 轉換為浮點數(shù)
            bool xOk, yOk;
            float xValue = xText.toFloat(&xOk);
            float yValue = yText.toFloat(&yOk);
            if (xOk && yOk) {
                // 按原邏輯存儲到PcTable數(shù)組
                PcTable[i] = xValue;
                i = i + 1;
                PcTable[i] = yValue;
                i = i + 1;
            } else {
                qDebug() << "錯誤: Row" << row << "數(shù)據(jù)轉換失敗"
                         << "X text:" << xText << "Y text:" << yText;
            }
        }
    }
   //開始更新補償表的數(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 ;
       }
   }
   //啟用二維螺距補償功能
   /*************************************************************
   Description:    //二維螺距補償, 4系列(VERSION_BUILD > 230511)特殊固件支持.  比較占CPU, 標準固件不支持.
   Input:          //handle 句柄連接
   Input:          //AxisList	  軸號列表
   Input:          //iEnable  0- 關閉補償,  1- XY補償,2- XYX補償,3- XYY補償
   Input:          //StartMposX  起始補償MPOS位置X
,   Input:          //StartMposY  起始補償MPOS位置Y,
   Input:          //DisX	 每個補償點間距X,
   Input:          //DisY	 每個補償點間距Y,
   Input:          //MaxPointX  補償區(qū)間總點數(shù)
   Input:          //MaxPointY  補償區(qū)間總點數(shù)
   Input:          //TableStartId   螺距補償表存儲的table位置,從startpos下一個點開始存儲,脈沖數(shù)單位, 每個點存儲兩個數(shù)據(jù),表示X方向偏差值與Y方向偏差值. 先存儲第一行(X方向), 再存儲第二行.總共占用 maxpointx*maxpointy*2 個TABLE位置.
   Input:          //PcTable  區(qū)間補償值列表
   *************************************************************/
   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ù)據(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);
//實際上發(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());
//實際上發(fā)的脈沖數(shù) -理論上發(fā)的脈沖數(shù) = 實際補償?shù)拿}沖數(shù)  (除以脈沖當量后表示實際補償?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

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

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

二維碼.webp

正運動技術專注于運動控制技術研究和通用運動控制軟硬件產品的研發(fā),是國家級高新技術企業(yè)。正運動技術匯集了來自華為、中興等公司的優(yōu)秀人才,在堅持自主創(chuàng)新的同時,積極聯(lián)合各大高校協(xié)同運動控制基礎技術的研究。主要業(yè)務有:運動控制卡_運動控制器_EtherCAT運動控制卡_EtherCAT控制器_運動控制系統(tǒng)_視覺控制器__運動控制PLC_運動控制_機器人控制器_視覺定位_XPCIe/XPCI系列運動控制卡等等。


 

狀 態(tài): 離線

公司簡介
產品目錄

公司名稱: 深圳市正運動技術有限公司
聯(lián) 系 人: 戴德弟
電  話: 0755-32976042
傳  真: 0755-2606 6955
地  址: 深圳市寶安區(qū)西鄉(xiāng)洲石路陽光工業(yè)園A1棟5樓
郵  編: 518100
主  頁:
 
該廠商相關技術文摘:
全國產自主可控運動控制器邀您相約2026北京國防展
深圳工博會:深耕自主技術,正運動技術助力智能制造
強實時運動控制卡XPCIE1032H在FPC補強機上的應用解決方案
正運動磁驅多動子柔性產線解決方案API接口(一):ZTS環(huán)境的創(chuàng)建和函數(shù)庫的使用
100%元器件全國產化認證:EtherCAT運動控制器ZMC432HG
單旋轉臺XYR在外觀檢測/激光焊接/拋光打磨的LabVIEW應用
EtherCAT運動控制器電子凸輪在包裝機的應用
C#運動控制開源(二): CAD導圖和小線段速度前瞻優(yōu)化
武漢光博會:深耕自主技術,正運動技術助力光電設備實現(xiàn)高速高精控制
蜘蛛手視覺柔振應用快速部署
EtherCAT運動控制器與EtherCAT總線電缸的自定義PDO控制
所見即所得,快速實現(xiàn)運動控制與界面組態(tài)開發(fā)!
更多文摘...
立即發(fā)送詢問信息在線聯(lián)系該技術文摘廠商:
用戶名: 密碼: 免費注冊為中華工控網(wǎng)會員
請留下您的有效聯(lián)系方式,以方便我們及時與您聯(lián)絡

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

富裕县| 天镇县| 皋兰县| 通海县| 怀柔区| 宁安市| 平武县| 漾濞| 广汉市| 泰和县| 平顶山市| 岳西县| 汉川市| 南充市| 巴彦县| 潍坊市| 白沙| 呼图壁县| 辉县市| 南和县| 高平市| 阿坝县| 寿宁县| 通州市| 安仁县| 平山县| 疏附县| 黑山县| 工布江达县| 城口县| 洞头县| 阜宁县| 万载县| 南江县| 西宁市| 镇康县| 秭归县| 久治县| 舒兰市| 本溪市| 夏邑县|