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

ZMC408CE運動控製器支持PLC、Basic、HMI組態三種編程方式。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,連續軌跡加工中對精密點膠膠量控製和激光能量控製等;
7.多軸同步控製,多坐標係獨立控製等;
8.直線插補、任意空間圓弧插補、螺旋插補、樣條插補等;
9.應用靈活,可PC上位機開發,也可脫機獨立運行。
更多關於ZMC408CE詳情點擊“推薦 | 8通道PSO的高性能EtherCAT總線運動控製器”查看。
PCIE464是正運動推出的一款EtherCAT總線+脈衝型、PCIE接口式的運動控製卡,可選6-64軸運動控製,支持多路高速數字輸入輸出,可輕鬆實現多軸同步控製和高速數據傳輸。

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

PCIE464硬件功能特性
1.可選6-64軸運動控製,支持EtherCAT總線/脈衝/步進伺服驅動器;
2.聯動軸數最高可達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是一款基於PCI Express的EtherCAT總線運動控製卡,可選6-64軸運動控製,支持多路高速數字輸入輸出,可輕鬆實現多軸同步控製和高速數據傳輸。

XPCIE1032H運動控製卡集成了強大的運動控製功能,結合MotionRT7運動控製實時軟核,解決了高速高精應用中,PC Windows開發的非實時痛點,指令交互速度比傳統的PCI/PCIe快10倍。

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

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

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

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文件放入bin\debug文件夾中。

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

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

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

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

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

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

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

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

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

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

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

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

(4)通過RTSys軟件查看IO映射的地址成功與否。成功連接控製器後,在菜單欄中找到【控製器】→【控製器狀態】→【槽位0節點】,可以看到所有節點對應的IO起始地址。可以在總線初始化完成後觀看此界麵確認IO起始地址映射正常。

3.相關軸參數配置界麵介紹。
選(xuan)擇(ze)軸(zhou)號(hao),配(pei)置(zhi)軸(zhou)類(lei)型(xing),電(dian)機(ji)一(yi)圈(quan)脈(mai)衝(chong)數(shu),加(jia)速(su)度(du),減(jian)速(su)度(du)等(deng)相(xiang)關(guan)軸(zhou)參(can)數(shu)後(hou)點(dian)擊(ji)立(li)即(ji)生(sheng)效(xiao)按(an)鈕(niu),將(jiang)這(zhe)些(xie)參(can)數(shu)配(pei)置(zhi)對(dui)應(ying)軸(zhou)上(shang)。默(mo)認(ren)旋(xuan)轉(zhuan)中(zhong)心(xin)(X,Y)坐標為(0,0),接著選擇旋轉軸實際正向旋轉方向,再點擊寫入參數配置按鈕,將機械手參數寫入機械手模型結構中。

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


(2)參can考kao單dan旋xuan轉zhuan台tai旋xuan轉zhuan中zhong心xin標biao定ding界jie麵mian的de步bu驟zhou,通tong過guo手shou動dong運yun動dong示shi教jiao三san組zu坐zuo標biao。示shi教jiao完wan成cheng後hou點dian擊ji標biao定ding旋xuan轉zhuan中zhong心xin按an鈕niu,通tong過guo三san點dian確que認ren圓yuan心xin計ji算suan旋xuan轉zhuan中zhong心xin的de坐zuo標biao。
注意:α,β,γ三個角度不重合即可,原理是3點確定一個圓心,角度範圍覆蓋可以盡量大一些。

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

函數介紹:當(dang)點(dian)擊(ji)標(biao)定(ding)旋(xuan)轉(zhuan)中(zhong)心(xin)按(an)鈕(niu)後(hou),首(shou)先(xian)會(hui)判(pan)斷(duan)當(dang)前(qian)模(mo)式(shi)是(shi)否(fou)處(chu)於(yu)正(zheng)解(jie)模(mo)式(shi),標(biao)定(ding)旋(xuan)轉(zhuan)中(zhong)心(xin)時(shi)機(ji)械(xie)手(shou)必(bi)須(xu)處(chu)於(yu)正(zheng)解(jie)模(mo)式(shi)。然(ran)後(hou)再(zai)調(tiao)用(yong)機(ji)械(xie)手(shou)參(can)數(shu)矯(jiao)正(zheng)指(zhi)令(ling),開(kai)始(shi)計(ji)算(suan)旋(xuan)轉(zhuan)中(zhong)心(xin)將(jiang)計(ji)算(suan)的(de)坐(zuo)標(biao)賦(fu)值(zhi)給(gei)軸(zhou)參(can)數(shu)配(pei)置(zhi)界(jie)麵(mian)的(de)文(wen)本(ben)框(kuang)。
private void Calculate_rotation_center(object sender, EventArgs e)
{
float[] conter = new float[2]; //存儲旋轉中心坐標
int cali_table = 1000; //關節坐標存儲的table起始編號
int space = 3; //坐標存儲間隔
int groups = 3; //坐標個數
int tableaux = 1500; //輔助參數的table編號
int zeroout = 1200; //計算出來理論零點時關節軸的絕對坐標的table編號
int zeroout2 = 1300; //計算出來的機械手參數存儲的位置,不填時直接存儲原參數的位置
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("當前處於正解模式");
}
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點坐標。完成示教後,即可點擊啟動按鈕,對手機邊框進行檢測。

函數介紹:點擊啟動檢測後,會根據Adianzuobiao,chanpinchangdu,chanpinkuanduheguaijiaobanjing,jisuanchusuoxuzuobiaodianwei。jieheshijiqingkuangzaiguaijiaochushiyongyuanxinluojuzhilingshixianguaijiaoguiji,zouchushijichanpinguiji。genjupaizhaoxiankuan,使用硬件比較輸出模式5周期脈衝模式,每隔線寬距離觸發一次比較。
private void move_path(object sender, 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);
int idle = 0;
while (true)
{
Thread.Sleep(10);
//獲取軸運行狀態
zmcaux.ZAux_Direct_GetIfIdle(g_handle, VirAxis_List[0], ref idle);
if (idle == -1){break;}
}
//清空矢量坐標
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);//輸出點數
int out_mode = 5; //輸出模式
int out_port = 0; //輸出端口
int out_state = 1; //輸出狀態
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);
//設置周期脈衝模式的硬件比較輸出
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軟件中的示波器可以方便直觀的觀察輸出的次數。
選擇菜單欄中的【工具】→【示波器】。打da開kai示shi波bo器qi後hou配pei置zhi水shui平ping刻ke度du通tong道dao數shu量liang,接jie著zhe選xuan擇ze數shu據ju源yuan的de類lei型xing,再zai確que認ren通tong道dao號hao的de顯xian示shi是shi否fou被bei勾gou選xuan,最zui後hou勾gou選xuan連lian續xu采cai集ji和he跟gen隨sui。配pei置zhi好hao這zhe些xie參can數shu後hou即ji可ke點dian擊ji藍lan色se三san角jiao按an鈕niu開kai始shi抓zhua取qu數shu據ju。

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

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

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

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

5.教學視頻可點擊→“單旋轉台XYR在精密點膠外觀檢測精密焊接的C#應用”查看。
本次,正運動技術單旋轉台XYR在精密點膠/外觀檢測/精密焊接的C#應用,就分享到這裏。
更多精彩內容請關注“正運動小助手”公眾號,需要相關開發環境與例程代碼,請谘詢正運動技術銷售工程師:400-089-8936。
本ben文wen由you正zheng運yun動dong技ji術shu原yuan創chuang,歡huan迎ying大da家jia轉zhuan載zai,共gong同tong學xue習xi,一yi起qi提ti高gao中zhong國guo智zhi能neng製zhi造zao水shui平ping。文wen章zhang版ban權quan歸gui正zheng運yun動dong技ji術shu所suo有you,如ru有you轉zhuan載zai請qing注zhu明ming文wen章zhang來lai源yuan。

正運動技術專注於運動控製技術研究和通用運動控製軟硬件產品的研發,是國家級高新技術企業。正運動技術彙集了來自華為、中(zhong)興(xing)等(deng)公(gong)司(si)的(de)優(you)秀(xiu)人(ren)才(cai),在(zai)堅(jian)持(chi)自(zi)主(zhu)創(chuang)新(xin)的(de)同(tong)時(shi),積(ji)極(ji)聯(lian)合(he)各(ge)大(da)高(gao)校(xiao)協(xie)同(tong)運(yun)動(dong)控(kong)製(zhi)基(ji)礎(chu)技(ji)術(shu)的(de)研(yan)究(jiu),是(shi)國(guo)內(nei)工(gong)控(kong)領(ling)域(yu)發(fa)展(zhan)最(zui)快(kuai)的(de)企(qi)業(ye)之(zhi)一(yi),也(ye)是(shi)國(guo)內(nei)少(shao)有(you)、完整掌握運動控製核心技術和實時工控軟件平台技術的企業。主要業務有:運動控製卡_運動控製器_EtherCAT運動控製卡_EtherCAT控製器_運動控製係統_視覺控製器__運動控製PLC_運動控製_機器人控製器_視覺定位_XPCIe/XPCI係列運動控製卡等等。
|