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

ZMC408CE運動控制器支持PLC、Basic、HMI組態(tài)三種編程方式。PC上位機API編程支持C#、C++、LabVIEW、Matlab、Qt、Linux、VB.Net、Python等接口。

ZMC408CE硬件功能特性
1.支持8軸運動控制(脈沖+EtherCAT總線),EtherCAT同步周期可快至125us;
2.24路通用輸入、16路通用輸出,模擬量AD/DA各兩路;
3.8路10MHz高速差分脈沖輸出,總線軸、脈沖軸可混合插補;
4.高性能處理器,提升運算速度、響應(yīng)時間和掃描周期等;
5.一維/二維/三維、多通道視覺飛拍,高速高精;
6.位置同步輸出PSO,連續(xù)軌跡加工中對精密點膠膠量控制和激光能量控制等;
7.多軸同步控制,多坐標(biāo)系獨立控制等;
8.直線插補、任意空間圓弧插補、螺旋插補、樣條插補等;
9.應(yīng)用靈活,可PC上位機開發(fā),也可脫機獨立運行。
更多關(guān)于ZMC408CE詳情點擊“推薦 | 8通道PSO的高性能EtherCAT總線運動控制器”查看。
PCIE464是正運動推出的一款EtherCAT總線+脈沖型、PCIE接口式的運動控制卡,可選6-64軸運動控制,支持多路高速數(shù)字輸入輸出,可輕松實現(xiàn)多軸同步控制和高速數(shù)據(jù)傳輸。

PCIE464運動控制卡適合于多軸點位運動、插補運動、軌跡規(guī)劃、手輪控制、編碼器位置檢測、IO控制、位置鎖存等功能的應(yīng)用。
PCIE464運動控制卡適用于3C電子加工、檢測設(shè)備、半導(dǎo)體設(shè)備、SMT加工、激光加工、光通訊設(shè)備、鋰電及光伏設(shè)備、以及非標(biāo)自動化設(shè)備等高速高精應(yīng)用場合。

PCIE464硬件功能特性
1.可選6-64軸運動控制,支持EtherCAT總線/脈沖/步進伺服驅(qū)動器;
2.聯(lián)動軸數(shù)最高可達16軸,運動周期最小為100μs;
3.標(biāo)配8進8出,其中4路高速鎖存輸入和8路高速PWM、PSO輸出,更多IO請選配ACC37接線板擴展板;
4.支持PWM輸出、精準(zhǔn)輸出、PSO硬件位置比較輸出、視覺飛拍等;
5.支持30+機械手模型正逆解模型算法,比如SCARA、Delta、UVW、4軸/5軸 RTCP...;
6.支持掉電存儲和掉電中斷,提供程序更安全機制;
7.具有螺距補償控制,在單軸上通過多個補償點進行精確調(diào)整,從而實現(xiàn)更高的加工精度。
更多關(guān)于PCIE464詳情點擊“PCIE464 — 高速高精,超高實時性的PCIe EtherCAT實時運動控制卡”查看。
XPCIE1032H是一款基于PCI Express的EtherCAT總線運動控制卡,可選6-64軸運動控制,支持多路高速數(shù)字輸入輸出,可輕松實現(xiàn)多軸同步控制和高速數(shù)據(jù)傳輸。

XPCIE1032H運動控制卡集成了強大的運動控制功能,結(jié)合MotionRT7運動控制實時軟核,解決了高速高精應(yīng)用中,PC Windows開發(fā)的非實時痛點,指令交互速度比傳統(tǒng)的PCI/PCIe快10倍。

XPCIE1032H硬件功能特性
1.6-64軸EtherCAT總線+脈沖可選,其中4路單端500KHz脈沖輸出;
2.16軸EtherCAT同步周期500us,支持多卡聯(lián)動;
3.板載16點通用輸入,16點通用輸出,其中8路高速輸入和16路高速輸出;
4.通過EtherCAT總線,可擴展到512個隔離輸入或輸出口;
5.支持PWM輸出、精準(zhǔn)輸出、PSO硬件位置比較輸出、視覺飛拍等;
6.支持直線插補、圓弧插補、連續(xù)軌跡加工(速度前瞻);
7.支持電子凸輪、電子齒輪、位置鎖存、同步跟隨、虛擬軸、螺距補償?shù)裙δ埽?/p>
8.支持30+機械手模型正逆解模型算法,比如SCARA、Delta、UVW、4軸/5軸 RTCP...
更多關(guān)于PCIE464詳情點擊“不止10倍提速!PCIe EtherCAT實時運動控制卡XPCIE1032H 等您評測!”查看。
01 C#進行單旋轉(zhuǎn)臺XYR項目開發(fā)
1.在VS2019菜單“文件”→“新建”→“項目”,啟動創(chuàng)建項目向?qū)А?/p>

2.選擇開發(fā)語言為“C#”和Windows窗體應(yīng)用程序,點擊下一步。

3.配置好項目名稱和位置,以及相應(yīng)框架,點擊創(chuàng)建。

4.找到廠家提供的光盤資料里面的C#函數(shù)庫,路徑如下(64位庫為例)。進入廠商提供的光盤資料,找到zauxdll.dll,zmotion.dll和Zmcaux.cs這三個庫文件。
庫文件路徑:【00光盤資料】→【04PC函數(shù)】→【01PC函數(shù)庫V2.1】→【W(wǎng)indows平臺】→【C#】→【64位】→【庫文件】。

5.將廠商提供的C#的庫文件以及相關(guān)文件復(fù)制到新建的項目中。
1)將zmcaux.cs文件復(fù)制到新建的項目里面中。

2)將zauxdll.dll和zmotion.dll文件放入bin\debug文件夾中。

3)將Zmcaux.cs文件添加進項目中。右鍵項目名稱,選擇添加,再選擇現(xiàn)有項,選擇Zmcaux.cs文件。

6.雙擊Form1.cs里面的Form1,出現(xiàn)代碼編輯界面,在文件開頭寫入using cszmcaux,并聲明控制器句柄g_handle。

7.至此,項目新建完成,可進行C#項目開發(fā)。
02 相關(guān)PC函數(shù)介紹
PC函數(shù)手冊可在光盤資料獲取,具體路徑如下:“00光盤資料\03編程手冊\03ZMotion PC函數(shù)庫編程手冊”。

1.鏈接控制器,獲取鏈接句柄。

2.機械手參數(shù)矯正指令。

3.硬件比較輸出指令使用介紹。

4.圓心螺旋指令使用介紹。

03 C#單旋轉(zhuǎn)臺XYR例程演示

1.上位機軟件界面如下,首先選擇連接方式。
可以選擇網(wǎng)口IP連接,串口COM連接,PCI卡卡號連接以及Local MotionRT連接。選擇好連接字符串后,這里以網(wǎng)口IP連接為例,再連接字符串中輸入控制器IP地址,再點擊連接。若彈出鏈接成功提示框,則可正常操作。若連接失敗,檢測連接字符串是否正確,網(wǎng)線是否松動等情況。

2.總線驅(qū)動器初始化界面的介紹。
(1)配置好總線起始軸號,總線節(jié)點個數(shù),本地脈沖軸起始軸號和本地脈沖軸個數(shù)四個參數(shù)后,點擊總線初始化按鈕,進行總線掃描。

(2)等待初始化完成后,表格出現(xiàn)廠商ID和設(shè)備ID等相關(guān)節(jié)點信息,則代表初始化完成。

(3)如需將對應(yīng)總線節(jié)點的IO狀態(tài)信息映射到控制器上查看,則填寫對應(yīng)節(jié)點需要映射IO的起始地址,若無需映射默認-1不需要修改,填寫完成后,點擊保存,再次點擊總線初始化按鈕進行總線掃描。

(4)通過RTSys軟件查看IO映射的地址成功與否。成功連接控制器后,在菜單欄中找到【控制器】→【控制器狀態(tài)】→【槽位0節(jié)點】,可以看到所有節(jié)點對應(yīng)的IO起始地址?梢栽诳偩初始化完成后觀看此界面確認IO起始地址映射正常。

3.相關(guān)軸參數(shù)配置界面介紹。
選擇軸號,配置軸類型,電機一圈脈沖數(shù),加速度,減速度等相關(guān)軸參數(shù)后點擊立即生效按鈕,將這些參數(shù)配置對應(yīng)軸上。默認旋轉(zhuǎn)中心(X,Y)坐標(biāo)為(0,0),接著選擇旋轉(zhuǎn)軸實際正向旋轉(zhuǎn)方向,再點擊寫入?yún)?shù)配置按鈕,將機械手參數(shù)寫入機械手模型結(jié)構(gòu)中。

4.旋轉(zhuǎn)中心標(biāo)定界面介紹。
(1)首先點擊手動運動,選擇正解機模式,接著點擊寸動按鈕選擇寸動還是點動模式,最后配置好速度。


(2)參考單旋轉(zhuǎn)臺旋轉(zhuǎn)中心標(biāo)定界面的步驟,通過手動運動示教三組坐標(biāo)。示教完成后點擊標(biāo)定旋轉(zhuǎn)中心按鈕,通過三點確認圓心計算旋轉(zhuǎn)中心的坐標(biāo)。
注意:α,β,γ三個角度不重合即可,原理是3點確定一個圓心,角度范圍覆蓋可以盡量大一些。

(3)點擊單旋轉(zhuǎn)臺關(guān)節(jié)軸參數(shù)按鈕,可以看到的計算出的旋轉(zhuǎn)中心坐標(biāo),點擊寫入?yún)?shù)配置,將實際旋轉(zhuǎn)中心寫入機械手結(jié)構(gòu)參數(shù)中。

函數(shù)介紹:當(dāng)點擊標(biāo)定旋轉(zhuǎn)中心按鈕后,首先會判斷當(dāng)前模式是否處于正解模式,標(biāo)定旋轉(zhuǎn)中心時機械手必須處于正解模式。然后再調(diào)用機械手參數(shù)矯正指令,開始計算旋轉(zhuǎn)中心將計算的坐標(biāo)賦值給軸參數(shù)配置界面的文本框。
private void Calculate_rotation_center(object sender, EventArgs e)
{
float[] conter = new float[2]; //存儲旋轉(zhuǎn)中心坐標(biāo)
int cali_table = 1000; //關(guān)節(jié)坐標(biāo)存儲的table起始編號
int space = 3; //坐標(biāo)存儲間隔
int groups = 3; //坐標(biāo)個數(shù)
int tableaux = 1500; //輔助參數(shù)的table編號
int zeroout = 1200; //計算出來理論零點時關(guān)節(jié)軸的絕對坐標(biāo)的table編號
int zeroout2 = 1300; //計算出來的機械手參數(shù)存儲的位置,不填時直接存儲原參數(shù)的位置
int ret;
int[] iAxisMtype = new int[2];
ret=zmcaux.ZAux_Direct_GetMtype(g_handle,Axis[0],ref iAxisMtype[0]);
if (iAxisMtype[0] == 33)
{
Console.WriteLine("當(dāng)前處于正解模式");
}
else
{
//建立正解
ret = zmcaux.ZAux_Direct_Connreframe(g_handle, reframe_num, VirAxis_List, robot_mode, store_table, frame_num, Axis);
}
//計算旋轉(zhuǎn)中心坐標(biāo)
ret = zmcaux.ZAux_Direct_FrameCal(g_handle, VirAxis_List, 2, cali_table, space, groups, tableaux, zeroout, zeroout2);
if (ret != 0)
{
MessageBox.Show("旋轉(zhuǎn)中心計算失敗");
return;
}
ret = zmcaux.ZAux_Direct_GetTable(g_handle, zeroout2, 2, conter);
textBox61.Text = conter[0].ToString();
textBox60.Text = conter[1].ToString();
}
5.產(chǎn)品參數(shù)配置界面。
配置好產(chǎn)品長度,產(chǎn)品寬度等相關(guān)參數(shù)以及不同段的速度后,點擊手動運動將加工軸通過手動運動移動到A點位置,點擊示教坐標(biāo)按鈕,將當(dāng)前位置保存為A點坐標(biāo)。完成示教后,即可點擊啟動按鈕,對手機邊框進行檢測。

函數(shù)介紹:點擊啟動檢測后,會根據(jù)A點坐標(biāo),產(chǎn)品長度,產(chǎn)品寬度和拐角半徑,計算出所需坐標(biāo)點位。結(jié)合實際情況在拐角處使用圓心螺距指令實現(xiàn)拐角軌跡,走出實際產(chǎn)品軌跡。根據(jù)拍照線寬,使用硬件比較輸出模式5周期脈沖模式,每隔線寬距離觸發(fā)一次比較。
private void move_path(object sender, EventArgs e)
{
//設(shè)置拐角模式,用Speed限制單軸速度
ret = zmcaux.ZAux_Direct_SetCornerMode(g_handle, VirAxis_List[0],corner_mode);
//設(shè)置運行速度
ret = zmcaux.ZAux_Direct_MovePara(g_handle, (uint)VirAxis_List[0], "Speed", (uint)VirAxis_List[0], product_para[6]);
//回到起始點
ret = zmcaux.ZAux_Direct_MoveAbs(g_handle, 3, VirAxis_List, distance_A1);
int idle = 0;
while (true)
{
Thread.Sleep(10);
//獲取軸運行狀態(tài)
zmcaux.ZAux_Direct_GetIfIdle(g_handle, VirAxis_List[0], ref idle);
if (idle == -1){break;}
}
//清空矢量坐標(biāo)
ret = zmcaux.ZAux_Direct_SetParam(g_handle, "VECTOR_MOVED", VirAxis_List[0], 0);
float line_width = Convert.ToSingle(textBox31.Text); //拍照線寬
float arc_length =Convert.ToSingle(2* Math.PI* product_para[2]); //四個拐角弧長
int out_num = Convert.ToInt32((product_para[0]*2 + 2 * product_para[1] - product_para[2]*8 + arc_length) / line_width);//輸出點數(shù)
int out_mode = 5; //輸出模式
int out_port = 0; //輸出端口
int out_state = 1; //輸出狀態(tài)
float start_vector = 0; //起始矢量
float out_vector = 0.5f; //輸出脈沖
float delay_vector = 0.5f; //延時矢量
//直線A1-B1
//清空矢量
zmcaux.ZAux_Direct_SetParam(g_handle, "VECTOR_MOVED", VirAxis_List[0], 0);
//清空上次未完成的輸出
zmcaux.ZAux_Direct_HwPswitch2(g_handle, VirAxis_List[0], 2, 0, 0, 0, 0, 0, 0);
//設(shè)置周期脈沖模式的硬件比較輸出
zmcaux.ZAux_Direct_HwPswitch2(g_handle, VirAxis_List[0], out_mode, out_port, out_state, start_vector+ delay_vector, out_num, line_width, out_vector);
//設(shè)置直線速度
ret = zmcaux.ZAux_Direct_MovePara(g_handle, (uint)VirAxis_List[0], "Speed", (uint)VirAxis_List[0], product_para[6]);
//直線插補運動
ret = zmcaux.ZAux_Direct_MoveAbs(g_handle, 3, VirAxis_List, distance_B1);
//拐角B1-B2
//設(shè)置拐角速度
ret = zmcaux.ZAux_Direct_MovePara(g_handle, (uint)VirAxis_List[0], "Speed", (uint)VirAxis_List[2], product_para[7]);
//圓心螺旋指令實現(xiàn)拐角
ret = zmcaux.ZAux_Direct_MHelicalAbs(g_handle, 3, VirAxis_List, distance_B2[0], distance_B2[1], distance_B1[0], distance_B2[1], 0, distance_B2[2], 1);
//直線B2-C1
//設(shè)置直線速度
ret = zmcaux.ZAux_Direct_MovePara(g_handle, (uint)VirAxis_List[0], "Speed", (uint)VirAxis_List[0], product_para[6]);
//直線插補運動
ret = zmcaux.ZAux_Direct_MoveAbs(g_handle, 3, VirAxis_List, distance_C1);//拐角C1-C2
//設(shè)置拐角速度
ret = zmcaux.ZAux_Direct_MovePara(g_handle, (uint)VirAxis_List[0], "Speed", (uint)VirAxis_List[2], product_para[7]);
//圓心螺旋指令實現(xiàn)拐角
ret = zmcaux.ZAux_Direct_MHelicalAbs(g_handle, 3, VirAxis_List, distance_C2[0], distance_C2[1], distance_C2[0], distance_C1[1], 0, distance_C2[2], 1);
//直線C2-D1
//設(shè)置直線速度
ret = zmcaux.ZAux_Direct_MovePara(g_handle, (uint)VirAxis_List[0], "Speed", (uint)VirAxis_List[0], product_para[6]);
//直線插補運動
ret = zmcaux.ZAux_Direct_MoveAbs(g_handle, 3, VirAxis_List, distance_D1);
//拐角D1-D2
//設(shè)置拐角速度
ret = zmcaux.ZAux_Direct_MovePara(g_handle, (uint)VirAxis_List[0], "Speed", (uint)VirAxis_List[2], product_para[7]);
//圓心螺旋指令實現(xiàn)拐角
ret = zmcaux.ZAux_Direct_MHelicalAbs(g_handle, 3, VirAxis_List, distance_D2[0], distance_D2[1], distance_D1[0], distance_D2[1], 0, distance_D2[2], 1);
//直線D2-A2
//設(shè)置直線速度
ret = zmcaux.ZAux_Direct_MovePara(g_handle, (uint)VirAxis_List[0], "Speed", (uint)VirAxis_List[0], product_para[6]);
//直線插補運動
ret = zmcaux.ZAux_Direct_MoveAbs(g_handle, 3, VirAxis_List, distance_A2);
//拐角A2-A1
//設(shè)置拐角速度
ret = zmcaux.ZAux_Direct_MovePara(g_handle, (uint)VirAxis_List[0], "Speed", (uint)VirAxis_List[2], product_para[7]);
//圓心螺旋指令實現(xiàn)拐角
ret = zmcaux.ZAux_Direct_MHelicalAbs(g_handle, 3, VirAxis_List, distance_A1[0], distance_A1[1], distance_A1[0], distance_A2[1], 0, 360, 1);
}
04 使用RTSys抓取輸出和軌跡
1.打開【RTSys】軟件,點擊【常用】→【連接】→【控制器】。

2.輸入控制器IP地址,點擊連接。

3.打開RTSys軟件中的示波器可以方便直觀的觀察輸出的次數(shù)。
選擇菜單欄中的【工具】→【示波器】。打開示波器后配置水平刻度通道數(shù)量,接著選擇數(shù)據(jù)源的類型,再確認通道號的顯示是否被勾選,最后勾選連續(xù)采集和跟隨。配置好這些參數(shù)后即可點擊藍色三角按鈕開始抓取數(shù)據(jù)。

4.運行C#手機外觀檢測例程。
(1)配置好軸參數(shù),機械手參數(shù)以及產(chǎn)品參數(shù)后,點擊啟動檢測。

(2)后勾選軸3,軸4和輸出口0,將模式切換為XYZ模式再配置好合適的垂直刻度,可以更直觀的看到輸出口的輸出次數(shù)以及的間距。

(3)勾選軸3和軸4的DPOS,將顯示模式切換為XY模式,即可直觀看到軸實際運行的軌跡。

(4)設(shè)置YT模式。抓取主軸軸3的VP_SPEED也就是加工合速度,可以看到在拐角處是減速運行的。

5.教學(xué)視頻可點擊→“單旋轉(zhuǎn)臺XYR在精密點膠外觀檢測精密焊接的C#應(yīng)用”查看。
本次,正運動技術(shù)單旋轉(zhuǎn)臺XYR在精密點膠/外觀檢測/精密焊接的C#應(yīng)用,就分享到這里。
更多精彩內(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)載請注明文章來源。

正運動技術(shù)專注于運動控制技術(shù)研究和通用運動控制軟硬件產(chǎn)品的研發(fā),是國家級高新技術(shù)企業(yè)。正運動技術(shù)匯集了來自華為、中興等公司的優(yōu)秀人才,在堅持自主創(chuàng)新的同時,積極聯(lián)合各大高校協(xié)同運動控制基礎(chǔ)技術(shù)的研究,是國內(nèi)工控領(lǐng)域發(fā)展最快的企業(yè)之一,也是國內(nèi)少有、完整掌握運動控制核心技術(shù)和實時工控軟件平臺技術(shù)的企業(yè)。主要業(yè)務(wù)有:運動控制卡_運動控制器_EtherCAT運動控制卡_EtherCAT控制器_運動控制系統(tǒng)_視覺控制器__運動控制PLC_運動控制_機器人控制器_視覺定位_XPCIe/XPCI系列運動控制卡等等。
|