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

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

EtherCAT運動控制卡應用開發教程之Java

正運動技術 ? 來源:正運動技術 ? 作者:正運動技術 ? 2025-06-13 14:29 ? 次閱讀

ZMC408CE 高性能總線型運動控制器

ZMC408CE是正運動推出的一款多軸高性能EtherCAT總線運動控制器,具有EtherCAT、EtherNETRS232CAN和U盤等通訊接口,ZMC系列運動控制器可應用于各種需要脫機或聯機運行的場合。

wKgZO2hLxVmADa5cAAHzCyibW3Q890.png

ZMC408CE支持PLC、Basic、HMI組態三種編程方式。PC上位機API編程支持C#C++LabVIEWMatlab、Qt、Linux、VB.Net、Python等接口。

wKgZPGhLxVmAfMLuAAD6H1vc1rg748.png

ZMC408CE硬件功能特性:

1.支持8軸運動控制(脈沖+EtherCAT總線),EtherCAT同步周期可快至125us;

2.24路通用輸入、16路通用輸出,模擬AD/DA各兩路;

3.8路10MHz高速差分脈沖輸出,總線軸、脈沖軸可混合插補;

4.高性能處理器,提升運算速度、響應時間和掃描周期等;

5.一維/二維/三維、多通道視覺飛拍,高速高精;

6.位置同步輸出PSO,連續軌跡加工中對精密點膠膠量控制和激光能量控制等;

7.多軸同步控制,多坐標系獨立控制等;

8.直線插補、任意空間圓弧插補、螺旋插補、樣條插補等;

9.應用靈活,可PC上位機開發,也可脫機獨立運行;

ZMC408CE視頻介紹,點擊→“高性能EtherCAT總線運動控制器,帶你玩轉“8通道獨立PSO”應用場景”查看。

更多關于ZMC408CE的詳情介紹,點擊“推薦|8通道PSO的高性能EtherCAT總線運動控制器”查看。

PCIE464M PCIe EtherCAT總線運動控制卡

PCIE464M是一款基于PCIe的PCI Express的EtherCAT總線運動控制卡,具有多項實時和高精度運動控制控制功能。

wKgZO2hLxVmAAvo2AAP3FWF5h1E222.png

PCIE464M運動控制卡上自帶16進16出,第三方圖像處理工控機或PC無需額外配置IO數據采集卡和PLC,即可實現IPC形態的機器視覺運動控制一體機,簡化硬件架構,節省成本,軟硬件一體化。

wKgZPGhLxVmAC6NrAAMN1vlErZo639.png

PCIE464M硬件功能特性:

1.可選6-64軸運動控制,支持EtherCAT總線/脈沖/步進伺服驅動器

2.聯動軸數最高可達16軸,運動周期最小為100μs;

3.標配16進16出,其中4路高速鎖存輸入、4路高速PWM和12路高速硬件比較輸出PSO;

4.支持PWM輸出、1D/2D/3D PSO硬件位置比較輸出、視覺飛拍、連續軌跡插補等;

5.支持30+機械手模型正逆解模型算法,比如SCARA、Delta、UVW、4軸/5軸 RTCP...;

6.支持掉電存儲和掉電中斷,多重加密,提供程序更安全機制;

7.8路單端脈沖軸、4路單端編碼器軸;

8.具有一維、二維螺距補償控制,實現更高的加工精度;

PCIE464M視頻介紹,點擊→“超高速PCle EtherCAT控制卡PCIE464M,即刻提升高速高精智能裝備生產力!”查看。

更多關于PCIE464M的詳情介紹,點擊“PCIE464M-高速高精,超高速PCIe EthrtCAT實時運動控制卡”查看。

ECI2A18B 高性價比10軸運動控制卡

ECI2A18B是正運動推出的一款高性價比10軸脈沖型、模塊化的網絡型運動控制卡,采用優化的網絡通訊協議可以實現實時的運動控制,同時支持多種通信協議,方便與其他工業控制設備連接和集成。安裝配置相對便捷,適合于模塊化和靈活性要求較高的控制系統

wKgZO2hLxVqAOVFfAAHdTrsR7V0779.png

ECI2A18B控制卡最大可擴展至12脈沖軸,支持8路高速輸入和4路高速輸出,集成豐富的運動控制功能,包含多軸點位運動、電子凸輪,直線插補,圓弧插補,連續插補運動等,滿足多樣化的工業應用需求。

wKgZPGhLxVqATo71AAIYEaphP_0789.png

ECI2A18B硬件功能特性:

1.支持6路差分脈沖軸+4路單端脈沖軸運動控制;

2.支持1路專用的手輪輸入接口;

3.差分脈沖軸最大輸出脈沖頻率10MHz;

4.標配24+12進16+6出,其中支持4路高速鎖存,4路高速PWM,2路高速硬件比較輸出PSO(可選支持HW2功能);

5.可支持RTSys+其他高級上位機編程語言的混合編程支持;

6.支持RTBasic多任務編程;

ECI2A18B視頻介紹,點擊→“【加量不加價】高性價比十軸脈沖運動控制卡ECI2A18B 讓您的設備在自動化行業內卷中脫穎而出!”查看。

更多關于ECI2A18B的詳情介紹,點擊“【加量不加價】正運動網絡型運動控制卡ECI2618B/ECI2A18B”查看。

本文案例java開發環境:

操作系統環境:Win11_64位

Java版本:Oracle OpenJDK 22.0.2

IntelliJ IDEA版本:IntelliJ IDEA 2024.1.2



Java開發流程

1 新建項目

打開IntelliJ IDEA 2024.1.2,新建項目,生成器選擇Spring Boot,語言選java,類型選擇Maven,選擇JDK版本(此處選擇JDK22.0.2),選擇java版本(此處是17)。

wKgZO2hLxVqAborJAAHHCPNU9RQ478.png

wKgZPGhLxVqAAnSRAAIrNK7rC68308.png

2 配置構建

配置構建,添加main下面的application,運行一遍程序,沒有問題就進行下一步。

wKgZO2hLxVuALtRXAAGButI6wBc200.png

wKgZPGhLxVuAE-lIAAFnafr6pCM407.png

3 創建接口

(1)按照標準開發,在當前軟件包路徑下創建接口ZmotionDao。

wKgZO2hLxVyAEb3iAAGxWqpEeho221.png

wKgZPGhLxVyAZepIAAFoIf95XXA895.png

(2)ZmotionDao接口繼承自StdCallLibrary,并添加相應的Maven依賴項。

wKgZO2hLxV2AUP_OAAB-2YlWogk456.png

wKgZPGhLxV2AQ_nGAAD6mQsMpBk868.png

4 導入DLL庫

添加正運動DLL庫函數文件至resource路徑下。

wKgZO2hLxV6AQv5dAAGAomdkAsQ512.png

5 接口實例

通過Native.load方法加載“zauxdll.dll”的DLL,并創建一個ZMotionDao接口的實例INSTANCE,并聲明需要調用的PC函數,PC函數可查詢ZMotion PC函數庫編程手冊。

wKgZPGhLxV6AQoxmAAGYi56BR9U362.png

6 數據類型

函數聲明中JNA對應C語言中的數據類型需要修改,PC函數原型在ZMotion PC函數庫編程手冊查詢。比如打開網口連接函數ZAux_OpenEth(char * ipaddr,ZMC_HANDLE*phandle)中的char *用String替換,ZMC_HANDLE*對應void**用PointerByReference替換。

wKgZO2hLxV6AILLnAAEW_QhBbXM061.png

wKgZPGhLxV-AAjkAAAKryLwaEIs903.png


簡單應用

1 句柄初始化

PC函數均需傳入參數句柄handle,而ZMC_HANDLE實際封裝是void*,則傳入的參數類型是void**,根據上面的數據類型轉化表,void**需要用PointerByReference()創建一個PointerByReference對象intptr,即句柄初始化完成,把intptr傳入函數即可。

wKgZPGhLxV-ALexyAAHxIu1tiJk482.png

2 網口連接

打開網口連接,函數參數填入控制器的IP地址(此處控制器IP地址為192.168.0.11),注意電腦IP的網段和控制器的網段一致(即電腦IP設置為192.168.0.XX),查看打印結果返回值X1,為0則控制器連接成功。

wKgZO2hLxV-AXsC6AAHwCQ4zo50553.png

3 設置軸參數

wKgZPGhLxWCAWjmgAARIeaj10kU263.png

此處函數第一個參數的數據類型ZMC_HANDLE封裝是void*,前面已初始化的二級指針對象(此處為intptr)的數據類型是void**,需要調用方法intptr.getValue()來獲取一級指針才能傳入函數,否則參數無法設置成功,查看打印結果X檢驗控制器參數是否設置成功。

wKgZO2hLxWCAX-RCAAIfmTGVWT0132.png

4 打印結果

查看打印結果X檢驗控制器參數是否設置成功,返回的結果為0即說明設置成功。

wKgZPGhLxWCANjahAAIzahBsIB4219.png

5 簡單軸運動

軸0往正方向持續運動。

wKgZO2hLxWGADnohAAIKnFOiGps257.png

6 指針類型的參數處理

注意獲取位置函數的第三個參數是一級指針類型,此處需用數組去接收函數返回的數據。

此時數組第一個元素dpos[0]即對應軸0的位置,程序上死循環不斷獲取軸0位置,直至DPOS為100停止運動并關閉控制器的連接。

wKgZPGhLxWGAYHIMAAGlIrENr7Q434.png

wKgZO2hLxWKAd8iaAAIKnFOiGps905.png


五角星軌跡代碼如下:

(1)變量定義。

int[] piAxislist = {0,1}; //運動軸列表
inta =30;      //五角星的邊長
int[] status_x = {0}; //x軸的運動狀態
int[] status_y = {0}; //y軸的運動狀態
float[][] pfDisancelists =newfloat[11][2]; // 初始化運動距離列表
int[] GetValue = {0};   //當前剩余緩沖數

(2)用二維數組來存放五角星軌跡的位置。

float[][] pfDisancelists = new float[11][2];  // 初始化運動距離列表
   pfDisancelists[0] = new float[]{0, (float) (a * Math.cos(0.1* Math.PI))};
   pfDisancelists[1] = new float[]{(float) (a * Math.sin(0.1* Math.PI)),0};
   pfDisancelists[2] = new float[]{(float) (a + a * Math.sin(0.1* Math.PI)),0};
   pfDisancelists[3] = new float[]{(float) (a * Math.sin(0.1* Math.PI) + a * Math.sin(0.2* Math.PI) * Math.tan(0.1* Math.PI)), (float) (-a * Math.sin(0.2* Math.PI))};
   pfDisancelists[4] = new float[]{(float) (a * Math.cos(0.2* Math.PI)), (float) (-(a + a * Math.sin(0.1* Math.PI)) * Math.tan(0.2* Math.PI) - a * Math.sin(0.2* Math.PI))};
   pfDisancelists[5] = new float[]{0, (float) (-(a + a * Math.sin(0.1* Math.PI)) * Math.tan(0.2* Math.PI))};
   pfDisancelists[6] = new float[]{(float) (-a * Math.cos(0.2* Math.PI)), (float) (-(a + a * Math.sin(0.1* Math.PI)) * Math.tan(0.2* Math.PI) - a * Math.sin(0.2* Math.PI))};
   pfDisancelists[7] = new float[]{(float) (-a * Math.sin(0.1* Math.PI) - a * Math.sin(0.2* Math.PI) * Math.tan(0.1* Math.PI)), (float) (-a * Math.sin(0.2* Math.PI))};
   pfDisancelists[8] = new float[]{(float) (-a - a * Math.sin(0.1* Math.PI)),0};   pfDisancelists[9] = new float[]{(float) (-a * Math.sin(0.1* Math.PI)),0};
   pfDisancelists[10] = new float[]{0, (float) (a * Math.cos(0.1* Math.PI))};

(3)通過函數ZAux_Direct_MoveAbs根據五角星軌跡點位運動。

// 循環調用運動函數
for(float[] pfDisancelist : pfDisancelists) {
  ZMotionDao.INSTANCE.ZAux_Direct_GetRemain_Buffer( intptr.getValue(),0, GetValue);//獲取軸 0 剩余緩沖數
  System.out.printf("當前剩余緩沖數為%dn",GetValue[0]);
 if(GetValue[0]>0)
  {
    ZMotionDao.INSTANCE.ZAux_Direct_MoveAbs(intptr.getValue(),2, piAxislist, pfDisancelist);
  }
}

(4)通過函數ZAux_Direct_GetIfIdle得到的status_x[0]和status_y[0]判斷運動是否結束。

// 判斷運動是否結束
do{
 ZMotionDao.INSTANCE.ZAux_Direct_GetIfIdle(intptr.getValue(),0, status_x);
 ZMotionDao.INSTANCE.ZAux_Direct_GetIfIdle(intptr.getValue(),0, status_y);
}while(status_x[0] != -1|| status_y[0] != -1);


RTSys示波器監控軌跡

RTSys是正運動推出的集成運動控制+機器視覺功能的開發軟件,先用RTSys軟件連接控制器,控制器默認IP是192.168.0.11,軸參數窗口監控參數設置是否成功,打開示波器,通過示波器觀察軌跡是否正確。

wKgZPGhLxWKAW_dtAAHOUt3d6U0961.png

wKgZO2hLxWOAAsegAAA4etZykE0723.png

wKgZPGhLxWOATnE0AAIai8U3IAg583.png

wKgZO2hLxWSANM12AAGI9SQfdp4612.png

wKgZPGhLxWSASj58AAFwh-W6s2A127.png


教學視頻可點擊→“EtherCAT運動控制卡應用開發教程之Java_嗶哩嗶哩_bilibili”查看。


完整代碼獲取地址

wKgZO2hLxWSAVH9HAACZFz9P6Ic694.png


本次,正運動技術EtherCAT運動控制卡應用開發教程之Java,就分享到這里。

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

本文由正運動技術原創,歡迎大家轉載,共同學習,一起提高中國智能制造水平。文章版權歸正運動技術所有,如有轉載請注明文章來源。

審核編輯 黃宇

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • JAVA
    +關注

    關注

    20

    文章

    2987

    瀏覽量

    107330
  • 運動控制
    +關注

    關注

    4

    文章

    643

    瀏覽量

    33431
  • ethercat
    +關注

    關注

    19

    文章

    1062

    瀏覽量

    39736
收藏 人收藏

    評論

    相關推薦
    熱點推薦

    控制系統調優必備知識:“運動控制卡 控制周期怎么算”你真的懂了嗎?

    在工業自動化領域,運動控制卡控制周期這個參數常常被忽視,但它卻是影響整個系統穩定性、精度甚至產能的關鍵因素。你是不是也遇到過這些問題:電機總是抖動?軌跡跟蹤老是偏?想優化系統卻無從下手?大概率是你的
    的頭像 發表于 05-27 10:59 ?339次閱讀
    <b class='flag-5'>控制</b>系統調優必備知識:“<b class='flag-5'>運動</b><b class='flag-5'>控制卡</b> <b class='flag-5'>控制</b>周期怎么算”你真的懂了嗎?

    運動控制卡網絡通訊的心跳檢測之C#上位機編程

    使用C#上位機編程實現運動控制卡網絡通訊的心跳檢測功能
    的頭像 發表于 12-24 10:54 ?953次閱讀
    <b class='flag-5'>運動</b><b class='flag-5'>控制卡</b>網絡通訊的心跳檢測之C#上位機編程

    運動控制卡周期上報實時數據IO狀態之C++篇

    使用C++進行運動控制卡的周期上報功能實現
    的頭像 發表于 12-17 13:59 ?744次閱讀
    <b class='flag-5'>運動</b><b class='flag-5'>控制卡</b>周期上報實時數據IO狀態之C++篇

    TMDSCNCD2800137控制卡信息指南

    電子發燒友網站提供《TMDSCNCD2800137控制卡信息指南.pdf》資料免費下載
    發表于 11-18 15:31 ?0次下載
    TMDSCNCD2800137<b class='flag-5'>控制卡</b>信息指南

    AM263x控制卡硬件用戶指南

    電子發燒友網站提供《AM263x控制卡硬件用戶指南.pdf》資料免費下載
    發表于 11-07 09:47 ?0次下載
    AM263x<b class='flag-5'>控制卡</b>硬件用戶指南

    AM263Px控制卡評估模塊

    電子發燒友網站提供《AM263Px控制卡評估模塊.pdf》資料免費下載
    發表于 10-29 10:00 ?0次下載
    AM263Px<b class='flag-5'>控制卡</b>評估模塊

    PCIe實時運動控制卡的雙盤視覺篩選機上位機開發應用

    PCIe實時運動控制卡的雙盤視覺篩選機上位機開發應用
    的頭像 發表于 10-10 10:15 ?709次閱讀
    PCIe實時<b class='flag-5'>運動</b><b class='flag-5'>控制卡</b>的雙盤視覺篩選機上位機<b class='flag-5'>開發</b>應用

    AM263x控制卡快速入門指南

    電子發燒友網站提供《AM263x控制卡快速入門指南.pdf》資料免費下載
    發表于 08-27 10:35 ?0次下載
    AM263x<b class='flag-5'>控制卡</b>快速入門指南

    AM263Px控制卡快速入門指南

    電子發燒友網站提供《AM263Px控制卡快速入門指南.pdf》資料免費下載
    發表于 08-26 09:24 ?0次下載
    AM263Px<b class='flag-5'>控制卡</b>快速入門指南

    PCIe EtherCAT實時運動控制卡PCIE464的IO與編碼器讀寫應用# 正運動技術# 運動控制卡

    編碼器運動控制卡
    正運動技術
    發布于 :2024年07月23日 09:37:31

    PCIe EtherCAT實時運動控制卡PCIE464的IO與編碼器讀寫應用

    C#進行PCIe EtherCAT運動控制卡的項目開發和快速讀取多個IO和軸編碼器位置的例程。
    的頭像 發表于 07-17 14:47 ?1347次閱讀
    PCIe <b class='flag-5'>EtherCAT</b>實時<b class='flag-5'>運動</b><b class='flag-5'>控制卡</b>PCIE464的IO與編碼器讀寫應用
    主站蜘蛛池模板: 免费看大美女大黄大色 | 免费黄色大片在线观看 | 免费的黄色的视频 | 又黑又长黑人欧美三级 | 亚洲午夜久久久久久噜噜噜 | 九九福利视频 | 天天干天天操天天做 | 一本到卡二卡三卡福利 | aa亚洲 | 天天看片中文字幕 | 一区二区三区视频在线 | 欧美黑人粗硬大在线看 | 美女视频一区二区三区 | 日本黄免费 | 日本黄色免费片 | 欧美人成a视频www | 手机看片久久 | 国产精品一区二区三区四区 | 三级网站在线看 | 六月综合网 | 天天操天天插 | www激情五月| 亚洲香蕉电影 | 国产黄色三级网站 | 人人爽天天爽夜夜爽曰 | 狠狠操夜夜爱 | 亚洲精品国产美女在线观看 | 黄色大秀视频 | 爱情岛网站亚洲禁18进入 | 色播在线永久免费视频网站 | 亚洲第一网站快活影院 | 免费久久精品国产片香蕉 | free性欧美高清另类 | 日韩高清一级 | 欧美18在线 | 特黄特色大片免费播放路01 | 99午夜高清在线视频在观看 | 免费看黄色一级毛片 | 国产女人和拘做受视频免费 | 视频在线免费看 | 国产精品一区在线观看你懂的 |