本文以正運動技術具備專用手輪接口的運動控制器ZMC408CE為例,介紹手輪、手輪的作用及原理、控制器手輪接口接線以及手輪程序配置。
上節講解了使用正運動basic語言進行手輪應用配置,本節主要講解C++調用API函數庫接口實現手輪配置。
01手輪作用及原理
手輪也稱手搖脈沖發生器,主要用于數控機床、立體加工中心、臥式加工中心、龍門加工中心等數控設備。當手輪旋轉時,編碼器產生與手輪運動相對應的信號,通過數控系統選定座標并對座標進行定位。
手動脈沖發生器它中心有軸的光電碼盤,其上有環形通、暗的刻線,搖動手輪后,由光電發射和接收器件讀取,獲得2組正弦波信號HA、HB,每個正弦波相差90度相位差。由于HA、HB兩信號相差90度,可通過A相在前還是B相在前,給出正轉脈沖或反轉脈沖去控制伺服電機正轉或反轉。
02手輪介紹
1.通過手輪上的“軸選擇旋鈕”選擇需要移動的坐標軸;
2.通過“倍率選擇旋鈕”選擇合適的移動倍(×1/×10/×100);
3.旋轉“手輪搖柄”移動坐標軸。順時針旋轉為正向移動,逆時針旋轉為負向移動,旋轉速度快慢可以控制坐標軸的運動速度;
4.按鈕“急停”,緊急停止手輪運動;
5.控制器手輪接口為雙排標準DB15母頭,需要手輪接頭為雙排標準DB15公頭。
03控制器手輪接口接線
1.硬件介紹
案例采用ZMC408CE運動控制器,具備專用的手輪接口。
ZMC408CE是正運動技術推出的一款高性能EtherCAT總線運動控制器,核心技術采用了先進的FPGA技術,實現硬件位置比較輸出、精準輸出功能,保證連續軌跡加工的出色性能和穩定性,以及動態數據捕獲的實時性,從而實現更加精準控制和提高生產效率和品質。
ZMC408CE支持EtherCAT總線軸 + 脈沖軸混合插補,可脫機或聯機運行,可控電機軸數8軸,特殊型號提供16或32軸可選,支持ZDevelop + 多種高級上位機混合編程,可以實現點位運動、電子凸輪、直線插補、圓弧插補、連續軌跡加工和30+種機器人模型的控制。
ZMC408CE產品亮點
1.高性能處理器,提升運算速度、響應時間和掃描周期等;
2.一維/二維/三維、多通道視覺飛拍,高速高精;
3.位置同步輸出PSO,連續軌跡加工中對精密點膠膠量控制和激光能量控制等;
4.多軸同步控制,多坐標系獨立控制等;
5.EtherCAT同步周期可快至125us;
6.EtherCAT總線和脈沖軸混合插補;
7.直線插補、任意空間圓弧插補、螺旋插補、樣條插補等;
8.應用靈活,可PC上位機開發,也可脫機獨立運行;
2.控制器手輪接口MPG定義
3.手輪接線參考
4.注意事項
手輪編碼器軸接口接線原理如上圖所示,手輪廠家的設計多種多樣,請先查看手輪內部的設計圖后與運動控制器確認正確后謹慎接線;請使用雙絞屏蔽線,尤其是環境惡劣的場合,務必使屏蔽層充分接地。
04函數接口指令說明
使用ZAux_Direct_Connect命令,將手輪連接到運動軸,指令說明如下表。
05 C++程序配置
1.配置步驟
(1)參考以上手輪接線示意圖正確連接手輪和控制器;
(2)掃描文章末尾二維碼,下載例程,使用Visual Studio 2022,打開C++手輪運動例程,運行之后根據型號選擇EtherNET、串口、PCI、LOCAL任意一種接口連接控制器。
(3)配置軸號;不同控制器型號,手輪軸號,倍率和軸選擇IN編號不一樣,詳情請參考控制器用戶手冊,本例程使用控制器型號為ZMC408CE,手輪接口軸號為8,該控制器手輪接口無可用默認AXIS軸號,必須進行映射才可以使用,映射避開脈沖軸號,此例程是將手輪映射到軸10。
(4)配置IO;根據需要賦予軸選(HSX,HSY,HSZ,HSU)和倍率(HX1,HX10,HX100)以及緊急停止 (HEMGN)功能;這些信號本質為數字輸入信號,有固定的編號,但無固定的功能,需要ZDevelop開發;其名稱為推薦配置的功能,軸選即為connect同步運動的被連接軸,倍率即connect比率。
(5)完成以上配置即可開始使用手輪。
2.程序運行界面
程序運行成功后會顯示以下界面,未連接控制器之前,軸坐標和手輪軸坐標默認為0,手輪狀態為“未連接”,手輪軸號為10,鏈接倍率為1,手輪軸脈沖方式為“脈沖+方向”,鏈接軸為“未選擇”。
3.控制器鏈接
選擇IP、串口,鏈接到控制器ZMC408CE,鏈接成功,手輪測試則會變成“已連接”,若失敗則會有彈窗“鏈接失敗”點擊確定關閉彈窗,檢查IP地址或串口地址重新鏈接。
(鏈接成功)(鏈接失?。?/span>4.手輪軸操作
程序鏈接上控制器成功之后,會獲取軸坐標和手輪軸位置。通過手輪的“軸選擇”旋轉按鈕選擇鏈接軸,如果鏈接成功,手輪鏈接狀態會變成“已鏈接”,鏈接軸也會顯示出所鏈接的軸號和鏈接倍率。
如果想要切換連接軸和鏈接倍率,只需要旋轉手輪“軸選擇”按鈕和“倍率選擇”按鈕即可。點擊停止按鈕之后,會自動斷開鏈接,此時手輪的“軸選擇”和“倍率選擇”按鈕處于無效狀態,只有點擊繼續后才會重新鏈接,建議在鏈接軸之前先選好鏈接倍率,否則可能會出撞機的危險,點擊坐標清零則會將X、Y、Z、手輪的坐標全部清零。
5.手輪軸軸號修改
此例程的手輪軸軸號綁定到軸10,如果要進行修改,可以在手輪設置中的手輪軸號,直接進行更改,手輪脈沖方式也是在此處進行修改。
6.手輪軸號映射
不同控制器的默認手輪軸接口不同,具體需要參考控制器手冊,相同點是不管使用哪個型號的控制器都需要重新進行軸映射將手輪軸映射到其他軸號去。
在控制器手冊中找到默認手輪接口軸號,使用ZAux_Direct_SetAtype(handle,重映射的軸號,0)將重映射的軸類型設置為0,還原軸設置, ZAux_Direct_SetAtype(handle,要修改的本地脈沖軸號,0)將要修改的本地脈沖軸號軸類型也設置為0,低版本不設置會報錯。
使用本地軸映射指令ZAux_Direct_SetAxisAddress{ handle,重映射的軸號,(-1<<16) +要修改的本地脈沖軸號 }。
7.手輪軸參數配置
軸號映射參數修改完后,接著使用ZAux_Direct_SetAtype(handle,手輪軸軸號,3/6)進行修改手輪軸的類型,ATYPE=3正交編碼器,ATYPE=6脈沖方向方式的編碼器,設置好之后可在運行主界面進行切換。
使用ZAux_Direct_SetUnits(g_handle,手輪軸號,脈沖當量)根據實際需求修改手輪軸的脈沖當量。
8.建立手輪鏈接
查詢控制器手冊,找到手輪對應軸輸入信號、倍率信號、急停信號,使用ZAux_Direct_GetIn(g_handle,輸入口編號,&獲取輸入口的狀態值)進行IO信號讀取,這里運動軸是X、Y、Z對應控制器的0、1、2軸。
通過IO信號的判斷使用同步運動指令ZAux_Direct_Connect(g_handle,鏈接比率,手輪軸,運動軸),進行軸的鏈接、綁定,使用單軸運動停止指令ZAux_Direct_Single_Cancel(g_handle,運動軸,停止模式),斷開軸鏈接。
9.手輪軸位置獲取、清零
建立鏈接之后,需要使用ZAux_Direct_GetMpos(g_handle,手輪軸號,&showpos[手輪軸號])來獲取,手輪軸的當前位置,并顯示在界面上。
使用ZAux_Direct_SetMpos(g_handle,手輪軸號,0)進行手輪坐標清零。
本次,正運動技術EtherCAT運動控制器在數控加工手輪隨動中的應用之C++,就分享到這里。更多精彩內容請關注“正運動小助手”公眾號。
本文由正運動技術原創,歡迎大家轉載,共同學習,一起提高中國智能制造水平。文章版權歸正運動技術所有,如有轉載請注明文章來源。
審核編輯黃宇
-
運動控制器
+關注
關注
2文章
408瀏覽量
24773 -
ethercat
+關注
關注
18文章
728瀏覽量
38792 -
運動控制系統
+關注
關注
0文章
92瀏覽量
14167
發布評論請先 登錄
相關推薦
評論