ZMC408CE 高性能總線型運動控制器
ZMC408CE是正運動推出的一款多軸高性能EtherCAT總線運動控制器,具有EtherCAT、EtherNET、RS232、CAN和U盤等通訊接口,ZMC系列運動控制器可應(yīng)用于各種需要脫機(jī)或聯(lián)機(jī)運行的場合。
ZMC408CE支持PLC、Basic、HMI組態(tài)三種編程方式。PC上位機(jī)API編程支持C#、C++、LabVIEW、Matlab、Qt、Linux、VB.Net、Python等接口。
ZMC408CE硬件功能特性:
1.支持8軸運動控制(脈沖+EtherCAT總線),EtherCAT同步周期可快至125us;
2.24路通用輸入、16路通用輸出,模擬量AD/DA各兩路;
3.8路10MHz高速差分脈沖輸出,總線軸、脈沖軸可混合插補(bǔ);
4.高性能處理器,提升運算速度、響應(yīng)時間和掃描周期等;
5.一維/二維/三維、多通道視覺飛拍,高速高精;
6.位置同步輸出PSO,連續(xù)軌跡加工中對精密點膠膠量控制和激光能量控制等;
7.多軸同步控制,多坐標(biāo)系獨立控制等;
8.直線插補(bǔ)、任意空間圓弧插補(bǔ)、螺旋插補(bǔ)、樣條插補(bǔ)等;
9.應(yīng)用靈活,可PC上位機(jī)開發(fā),也可脫機(jī)獨立運行;
ZMC408CE視頻介紹,點擊→“高性能EtherCAT總線運動控制器,帶你玩轉(zhuǎn)“8通道獨立PSO”應(yīng)用場景”查看。
更多關(guān)于ZMC408CE的詳情介紹,點擊“推薦|8通道PSO的高性能EtherCAT總線運動控制器”查看。
PCIE464M PCIe EtherCAT總線運動控制卡
PCIE464M是一款基于PCIe的PCI Express的EtherCAT總線運動控制卡,具有多項實時和高精度運動控制控制功能。
PCIE464M運動控制卡上自帶16進(jìn)16出,第三方圖像處理工控機(jī)或PC無需額外配置IO數(shù)據(jù)采集卡和PLC,即可實現(xiàn)IPC形態(tài)的機(jī)器視覺運動控制一體機(jī),簡化硬件架構(gòu),節(jié)省成本,軟硬件一體化。
PCIE464M硬件功能特性:
1.可選6-64軸運動控制,支持EtherCAT總線/脈沖/步進(jìn)伺服驅(qū)動器;
2.聯(lián)動軸數(shù)最高可達(dá)16軸,運動周期最小為100μs;
3.標(biāo)配16進(jìn)16出,其中4路高速鎖存輸入、4路高速PWM和12路高速硬件比較輸出PSO;
4.支持PWM輸出、1D/2D/3D PSO硬件位置比較輸出、視覺飛拍、連續(xù)軌跡插補(bǔ)等;
5.支持30+機(jī)械手模型正逆解模型算法,比如SCARA、Delta、UVW、4軸/5軸 RTCP...;
6.支持掉電存儲和掉電中斷,多重加密,提供程序更安全機(jī)制;
7.8路單端脈沖軸、4路單端編碼器軸;
8.具有一維、二維螺距補(bǔ)償控制,實現(xiàn)更高的加工精度;
PCIE464M視頻介紹,點擊→“超高速PCle EtherCAT控制卡PCIE464M,即刻提升高速高精智能裝備生產(chǎn)力!”查看。
更多關(guān)于PCIE464M的詳情介紹,點擊“PCIE464M-高速高精,超高速PCIe EthrtCAT實時運動控制卡”查看。
ECI2A18B 高性價比10軸運動控制卡
ECI2A18B是正運動推出的一款高性價比10軸脈沖型、模塊化的網(wǎng)絡(luò)型運動控制卡,采用優(yōu)化的網(wǎng)絡(luò)通訊協(xié)議可以實現(xiàn)實時的運動控制,同時支持多種通信協(xié)議,方便與其他工業(yè)控制設(shè)備連接和集成。安裝配置相對便捷,適合于模塊化和靈活性要求較高的控制系統(tǒng)。
ECI2A18B控制卡最大可擴(kuò)展至12脈沖軸,支持8路高速輸入和4路高速輸出,集成豐富的運動控制功能,包含多軸點位運動、電子凸輪,直線插補(bǔ),圓弧插補(bǔ),連續(xù)插補(bǔ)運動等,滿足多樣化的工業(yè)應(yīng)用需求。
ECI2A18B硬件功能特性:
1.支持6路差分脈沖軸+4路單端脈沖軸運動控制;
2.支持1路專用的手輪輸入接口;
3.差分脈沖軸最大輸出脈沖頻率10MHz;
4.標(biāo)配24+12進(jìn)16+6出,其中支持4路高速鎖存,4路高速PWM,2路高速硬件比較輸出PSO(可選支持HW2功能);
5.可支持RTSys+其他高級上位機(jī)編程語言的混合編程支持;
6.支持RTBasic多任務(wù)編程;
ECI2A18B視頻介紹,點擊→“【加量不加價】高性價比十軸脈沖運動控制卡ECI2A18B 讓您的設(shè)備在自動化行業(yè)內(nèi)卷中脫穎而出!”查看。
更多關(guān)于ECI2A18B的詳情介紹,點擊“【加量不加價】正運動網(wǎng)絡(luò)型運動控制卡ECI2618B/ECI2A18B”查看。
本文案例java開發(fā)環(huán)境:
操作系統(tǒng)環(huán)境:Win11_64位
Java版本:Oracle OpenJDK 22.0.2
IntelliJ IDEA版本:IntelliJ IDEA 2024.1.2
Java開發(fā)流程
1 新建項目
打開IntelliJ IDEA 2024.1.2,新建項目,生成器選擇Spring Boot,語言選java,類型選擇Maven,選擇JDK版本(此處選擇JDK22.0.2),選擇java版本(此處是17)。
2 配置構(gòu)建
配置構(gòu)建,添加main下面的application,運行一遍程序,沒有問題就進(jìn)行下一步。
3 創(chuàng)建接口
(1)按照標(biāo)準(zhǔn)開發(fā),在當(dāng)前軟件包路徑下創(chuàng)建接口ZmotionDao。
(2)ZmotionDao接口繼承自StdCallLibrary,并添加相應(yīng)的Maven依賴項。
4 導(dǎo)入DLL庫
添加正運動DLL庫函數(shù)文件至resource路徑下。
5 接口實例
通過Native.load方法加載“zauxdll.dll”的DLL,并創(chuàng)建一個ZMotionDao接口的實例INSTANCE,并聲明需要調(diào)用的PC函數(shù),PC函數(shù)可查詢ZMotion PC函數(shù)庫編程手冊。
6 數(shù)據(jù)類型
函數(shù)聲明中JNA對應(yīng)C語言中的數(shù)據(jù)類型需要修改,PC函數(shù)原型在ZMotion PC函數(shù)庫編程手冊查詢。比如打開網(wǎng)口連接函數(shù)ZAux_OpenEth(char * ipaddr,ZMC_HANDLE*phandle)中的char *用String替換,ZMC_HANDLE*對應(yīng)void**用PointerByReference替換。
簡單應(yīng)用
1 句柄初始化
PC函數(shù)均需傳入?yún)?shù)句柄handle,而ZMC_HANDLE實際封裝是void*,則傳入的參數(shù)類型是void**,根據(jù)上面的數(shù)據(jù)類型轉(zhuǎn)化表,void**需要用PointerByReference()創(chuàng)建一個PointerByReference對象intptr,即句柄初始化完成,把intptr傳入函數(shù)即可。
2 網(wǎng)口連接
打開網(wǎng)口連接,函數(shù)參數(shù)填入控制器的IP地址(此處控制器IP地址為192.168.0.11),注意電腦IP的網(wǎng)段和控制器的網(wǎng)段一致(即電腦IP設(shè)置為192.168.0.XX),查看打印結(jié)果返回值X1,為0則控制器連接成功。
3 設(shè)置軸參數(shù)
此處函數(shù)第一個參數(shù)的數(shù)據(jù)類型ZMC_HANDLE封裝是void*,前面已初始化的二級指針對象(此處為intptr)的數(shù)據(jù)類型是void**,需要調(diào)用方法intptr.getValue()來獲取一級指針才能傳入函數(shù),否則參數(shù)無法設(shè)置成功,查看打印結(jié)果X檢驗控制器參數(shù)是否設(shè)置成功。
4 打印結(jié)果
查看打印結(jié)果X檢驗控制器參數(shù)是否設(shè)置成功,返回的結(jié)果為0即說明設(shè)置成功。
5 簡單軸運動
軸0往正方向持續(xù)運動。
6 指針類型的參數(shù)處理
注意獲取位置函數(shù)的第三個參數(shù)是一級指針類型,此處需用數(shù)組去接收函數(shù)返回的數(shù)據(jù)。
此時數(shù)組第一個元素dpos[0]即對應(yīng)軸0的位置,程序上死循環(huán)不斷獲取軸0位置,直至DPOS為100停止運動并關(guān)閉控制器的連接。
五角星軌跡代碼如下:
(1)變量定義。
int[] piAxislist = {0,1}; //運動軸列表 inta =30; //五角星的邊長 int[] status_x = {0}; //x軸的運動狀態(tài) int[] status_y = {0}; //y軸的運動狀態(tài) float[][] pfDisancelists =newfloat[11][2]; // 初始化運動距離列表 int[] GetValue = {0}; //當(dāng)前剩余緩沖數(shù)
(2)用二維數(shù)組來存放五角星軌跡的位置。
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)通過函數(shù)ZAux_Direct_MoveAbs根據(jù)五角星軌跡點位運動。
// 循環(huán)調(diào)用運動函數(shù) for(float[] pfDisancelist : pfDisancelists) { ZMotionDao.INSTANCE.ZAux_Direct_GetRemain_Buffer( intptr.getValue(),0, GetValue);//獲取軸 0 剩余緩沖數(shù) System.out.printf("當(dāng)前剩余緩沖數(shù)為%dn",GetValue[0]); if(GetValue[0]>0) { ZMotionDao.INSTANCE.ZAux_Direct_MoveAbs(intptr.getValue(),2, piAxislist, pfDisancelist); } }
(4)通過函數(shù)ZAux_Direct_GetIfIdle得到的status_x[0]和status_y[0]判斷運動是否結(jié)束。
// 判斷運動是否結(jié)束 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示波器監(jiān)控軌跡
RTSys是正運動推出的集成運動控制+機(jī)器視覺功能的開發(fā)軟件,先用RTSys軟件連接控制器,控制器默認(rèn)IP是192.168.0.11,軸參數(shù)窗口監(jiān)控參數(shù)設(shè)置是否成功,打開示波器,通過示波器觀察軌跡是否正確。
教學(xué)視頻可點擊→“EtherCAT運動控制卡應(yīng)用開發(fā)教程之Java_嗶哩嗶哩_bilibili”查看。
完整代碼獲取地址
▼
本次,正運動技術(shù)EtherCAT運動控制卡應(yīng)用開發(fā)教程之Java,就分享到這里。
更多精彩內(nèi)容請關(guān)注“正運動小助手”公眾號,需要相關(guān)開發(fā)環(huán)境與例程代碼,請咨詢正運動技術(shù)銷售工程師:400-089-8936。
本文由正運動技術(shù)原創(chuàng),歡迎大家轉(zhuǎn)載,共同學(xué)習(xí),一起提高中國智能制造水平。文章版權(quán)歸正運動技術(shù)所有,如有轉(zhuǎn)載請注明文章來源。
審核編輯 黃宇
-
JAVA
+關(guān)注
關(guān)注
20文章
2986瀏覽量
107069 -
運動控制
+關(guān)注
關(guān)注
4文章
641瀏覽量
33405 -
ethercat
+關(guān)注
關(guān)注
19文章
1032瀏覽量
39677
發(fā)布評論請先 登錄
控制系統(tǒng)調(diào)優(yōu)必備知識:“運動控制卡 控制周期怎么算”你真的懂了嗎?


PCIe EtherCAT實時運動控制卡PCIE464的CAD導(dǎo)圖與刀向跟隨應(yīng)用#正運動技術(shù) #運動控制卡

運動控制看的更清楚細(xì)致!RTSys示波器功能簡介 #正運動技術(shù) #運動控制器 #運動控制系統(tǒng) #運動控制卡
TMDSCNCD2800137控制卡信息指南


【加量不加價】高性價比十軸脈沖運動控制卡ECI2A18B 讓您的設(shè)備在自動化行業(yè)內(nèi)卷中脫穎而出!# 運動控制卡

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

PCIe EtherCAT實時運動控制卡PCIE464的IO與編碼器讀寫應(yīng)用# 正運動技術(shù)# 運動控制卡
PCIe EtherCAT實時運動控制卡PCIE464的IO與編碼器讀寫應(yīng)用

評論