ZMC408CE - 高性能總線型運動控制器
ZMC408CE是正運動推出的一款多軸高性能EtherCAT總線運動控制器,具有EtherCAT、EtherNET、RS232、CAN和U盤等通訊接口,ZMC系列運動控制器可應用于各種需要脫機或聯(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.高性能處理器,提升運算速度、響應時間和掃描周期等;
5.一維/二維/三維、多通道視覺飛拍,高速高精;
6.位置同步輸出PSO,連續(xù)軌跡加工中對精密點膠膠量控制和激光能量控制等;
7.多軸同步控制,多坐標系獨立控制等;
8.直線插補、任意空間圓弧插補、螺旋插補、樣條插補等;
9.應用靈活,可PC上位機開發(fā),也可脫機獨立運行。
更多關于ZMC408CE詳情點擊“推薦 | 8通道PSO的高性能EtherCAT總線運動控制器”查看。
PCIE464 - PCIe EtherCAT總線運動控制卡
PCIE464是正運動推出的一款EtherCAT總線+脈沖型、PCIE接口式的運動控制卡,可選6-64軸運動控制,支持多路高速數字輸入輸出,可輕松實現多軸同步控制和高速數據傳輸。

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

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

XPCIE1032H運動控制卡集成了強大的運動控制功能,結合MotionRT7運動控制實時軟核,解決了高速高精應用中,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輸出、精準輸出、PSO硬件位置比較輸出、視覺飛拍等;
6.支持直線插補、圓弧插補、連續(xù)軌跡加工(速度前瞻);
7.支持電子凸輪、電子齒輪、位置鎖存、同步跟隨、虛擬軸、螺距補償等功能;
8.支持30+機械手模型正逆解模型算法,比如SCARA、Delta、UVW、4軸/5軸 RTCP...
更多關于PCIE464詳情點擊“不止10倍提速!PCIe EtherCAT實時運動控制卡XPCIE1032H 等您評測!”查看。
01 C#進行單旋轉臺XYR項目開發(fā)
1.在VS2019菜單“文件”→“新建”→“項目”,啟動創(chuàng)建項目向導。

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

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

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

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

2)將zauxdll.dll和zmotion.dll文件放入bindebug文件夾中。

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

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

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

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

2.機械手參數矯正指令。

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

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

03 C#單旋轉臺XYR例程演示

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

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

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

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

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

3.相關軸參數配置界面介紹。
選擇軸號,配置軸類型,電機一圈脈沖數,加速度,減速度等相關軸參數后點擊立即生效按鈕,將這些參數配置對應軸上。默認旋轉中心(X,Y)坐標為(0,0),接著選擇旋轉軸實際正向旋轉方向,再點擊寫入參數配置按鈕,將機械手參數寫入機械手模型結構中。

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


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

(3)點擊單旋轉臺關節(jié)軸參數按鈕,可以看到的計算出的旋轉中心坐標,點擊寫入參數配置,將實際旋轉中心寫入機械手結構參數中。

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

函數介紹:點擊啟動檢測后,會根據A點坐標,產品長度,產品寬度和拐角半徑,計算出所需坐標點位。結合實際情況在拐角處使用圓心螺距指令實現拐角軌跡,走出實際產品軌跡。根據拍照線寬,使用硬件比較輸出模式5周期脈沖模式,每隔線寬距離觸發(fā)一次比較。
privatevoidmove_path(objectsender, EventArgs e)
{
//設置拐角模式,用Speed限制單軸速度
ret = zmcaux.ZAux_Direct_SetCornerMode(g_handle, VirAxis_List[0],corner_mode);
//設置運行速度
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);
intidle =0;
while(true)
{
Thread.Sleep(10);
//獲取軸運行狀態(tài)
zmcaux.ZAux_Direct_GetIfIdle(g_handle, VirAxis_List[0],refidle);
if(idle ==-1){break;}
}
//清空矢量坐標
ret = zmcaux.ZAux_Direct_SetParam(g_handle,"VECTOR_MOVED", VirAxis_List[0],0);
floatline_width = Convert.ToSingle(textBox31.Text); //拍照線寬
floatarc_length =Convert.ToSingle(2* Math.PI* product_para[2]); //四個拐角弧長
intout_num = Convert.ToInt32((product_para[0]*2+2* product_para[1] - product_para[2]*8+ arc_length) / line_width);//輸出點數
intout_mode =5; //輸出模式
intout_port =0; //輸出端口
intout_state =1; //輸出狀態(tài)
floatstart_vector =0; //起始矢量
floatout_vector =0.5f; //輸出脈沖
floatdelay_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);
//設置周期脈沖模式的硬件比較輸出
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);
//設置直線速度
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
//設置拐角速度
ret = zmcaux.ZAux_Direct_MovePara(g_handle, (uint)VirAxis_List[0],"Speed", (uint)VirAxis_List[2], product_para[7]);
//圓心螺旋指令實現拐角
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
//設置直線速度
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
//設置拐角速度
ret = zmcaux.ZAux_Direct_MovePara(g_handle, (uint)VirAxis_List[0],"Speed", (uint)VirAxis_List[2], product_para[7]);
//圓心螺旋指令實現拐角
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
//設置直線速度
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
//設置拐角速度
ret = zmcaux.ZAux_Direct_MovePara(g_handle, (uint)VirAxis_List[0],"Speed", (uint)VirAxis_List[2], product_para[7]);
//圓心螺旋指令實現拐角
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
//設置直線速度
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
//設置拐角速度
ret = zmcaux.ZAux_Direct_MovePara(g_handle, (uint)VirAxis_List[0],"Speed", (uint)VirAxis_List[2], product_para[7]);
//圓心螺旋指令實現拐角
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軟件中的示波器可以方便直觀的觀察輸出的次數。選擇菜單欄中的【工具】→【示波器】。打開示波器后配置水平刻度通道數量,接著選擇數據源的類型,再確認通道號的顯示是否被勾選,最后勾選連續(xù)采集和跟隨。配置好這些參數后即可點擊藍色三角按鈕開始抓取數據。


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

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

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

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

5.教學視頻可點擊→“單旋轉臺XYR在精密點膠外觀檢測精密焊接的C#應用_嗶哩嗶哩_bilibili”查看。
完整代碼獲取地址
▼

本次,正運動技術單旋轉臺XYR在精密點膠/外觀檢測/精密焊接的C#應用,就分享到這里。
更多精彩內容請關注“正運動小助手”公眾號,需要相關開發(fā)環(huán)境與例程代碼,請咨詢正運動技術銷售工程師:400-089-8936。
本文由正運動技術原創(chuàng),歡迎大家轉載,共同學習,一起提高中國智能制造水平。文章版權歸正運動技術所有,如有轉載請注明文章來源。
審核編輯 黃宇
-
運動控制器
+關注
關注
2文章
470瀏覽量
25875
發(fā)布評論請先 登錄
激光錫絲焊接在精密電子制造領域的應用
博特精密激光焊接機:高精度焊接,賦能多行業(yè)生產
AST埃斯特SEL-32D在線選擇性焊接機:高效精密PCB焊接解決方案效精密PCB焊接
電芯單節(jié)精密焊接機:以先進功能與特點賦能電池制造科技升級
焊接電流精密控制技術研究進展
精科睿 深夜訪談在制作電子PCBA中需要進行的各類檢測方法
精密焊接電壓監(jiān)測設備的創(chuàng)新應用與優(yōu)勢分析
精密焊接熱量監(jiān)測儀:確保焊接質量與安全的關鍵技術
精密焊接監(jiān)測系統(tǒng):提升制造精度與效率的關鍵技術

單旋轉臺XYR在精密點膠/外觀檢測/精密焊接的C#應用
評論