導讀
想深入了解ZMC600E運動控制器的插補算法嗎?空間直線插補適用于精確定位,圓弧插補提供平滑曲線過渡。合理應用這些算法,能提升多軸協同能力,保障工作精度與可靠性,讓工業自動化更高效、更智能。
ZMC600E是廣州致遠電子股份有限公司開發的最新一代高性能智能總線型控制器,是面向工廠智能化時代的機器人控制器。ZMC600E采用多核異構應用處理器為核心,其內核包括2個64位的ArmCortex-A53核,主頻1.0GHz;4個Cortex-R5F內核,主頻800MHz。同時板載1GB DDR4、4GB eMMC以及32KB FRAM。
ZMC600E EtherCAT主站控制器為了滿足不同的自動化應用需求,在硬件接口上面,精心設計了1路EtherCAT主站接口,ms 周期任務抖動±5μs 以內;3 路以太網接口,其中1路是千兆網口;2路RS485;2路CAN;32個用戶I/O,其中16路DI,16路DO,輸入支持最多2路正交編碼或兩路脈沖計數;1個USB3.0接口;支持TF卡;系統電源采用高穩定隔離電源,支持掉電檢測;提供多種程序加密手段,保護用戶應用軟件知識產權。
ZMC600E 示意圖及接口圖如下所示:
圖1 產品示意圖
圖2 ZMC600E接口圖
ZMC600E EtherCAT主站控制器為設備制造商提供多軸數、多IO點數控制的新一代可靠智能的運動控制解決方案,提供空間直線、圓弧插補算法,可以廣泛應用于注塑行業、沖壓行業、車床行業、搬運碼垛、關節機器人、噴涂、玻璃機、壓鑄機、包裝設備、3C設備、鋰電池設備、紡織、流水線工作站、非標自動化裝備、特種機床等高端設備應用。
?插補的概念
插補是數控機床中的一項關鍵技術,它通過特定的算法精確確定刀具或機械部件的運動軌跡。這一過程的核心目標是根據預定的運動要求,實時計算出各個坐標軸的運動指令,驅動執行部件協調地運動,確保機械部件能夠沿著理想的軌跡和速度精確移動。插補算法的基本原理涉及數字計算,它不斷地生成各軸的進給指令,使得在運動過程中各軸能夠同步且協調地運動,從而確保設備能夠精確地完成預定的路徑。
插補通常涉及至少兩個軸的協同工作。首先,通過建立坐標系,將運動軸映射到相應的坐標系中。然后,運動控制器依據插補算法來控制各個軸的運動,實現所需的軌跡。在常見的插補類型中,直線插補用于實現兩個點之間的直線運動,而圓弧插補則用于實現沿圓弧軌跡的運動。這兩種插補都依賴于算法的實時計算,以保證軌跡運動的精度和平穩性。簡而言之,插補是數控系統中確保機械部件按照預定軌跡精確、高效運動的一種技術。
?直線插補
以二維空間簡化說明,如圖1所示,直線插補運動:由起始點處沿X 方向走一小段(給一個脈沖當量軸走一段固定距離),發現終點在實際輪廓的下方,則下一條線段沿 Y 方向走一小段,此時如果線段終點還在實際輪廓下方,則繼續沿 Y 方向走一小段,直到在實際輪廓上方以后,再向 X 方向走一小段,依次循環類推,直到到達輪廓終點為止。空間直線適用于任意維空間的直線,插補方法也是一樣的道理。
圖3 直線插補示意圖
?圓弧插補
圓弧插補與直線插補類似,都是通過給定起止點及相關參數,計算出一系列逼近實際圓弧的離散點。這些點構成插補軌跡,控制各個軸沿此軌跡運動,最終完成圓弧路徑的加工。空間圓弧插補既可以在二維平面進行,也可以是三維空間的協同運動。
以二軸為例簡化說明,如圖2所示,圓的插補運動:將通過一定的算法,逐步計算出圓弧的離散點,并控制兩個軸按這些點進行協調運動,最終加工出目標圓弧路徑。這一過程能夠實現精確的曲線軌跡控制,確保機械部件沿指定的圓弧軌跡平穩移動。
圖4 圓弧插補
空間圓弧默認為三維,構造圓弧時,方向逆時針為正、除起始點和終點外,輔助參數輸入分為三種:
圖5 空間圓弧構造
輔助點為圓弧上的點,其優勢在于,路徑方向唯一,且實際輔助點可以通過示教獲得。
輔助點為圓心點,正常情況下是有兩個方向的解,因此需要額外指定方向。但與起點、終點的夾角不能是180度,否則有無數解;缺點在于圓心處于障礙物區間時無法通過示教獲得。
輔助點為與與原點形成的向量為平面法向量,向量長度為半徑坐標,方向根據右手原則。但已知半徑下,圓心在它們的中垂線上,同樣有兩個解。算法會選擇起點和終點之間距離較短的那個圓,即總的運動角度最多為180度。缺點是圓弧角度必須小于或等于180°。
?插補算法API
ZMC600E 運動控制器提供了直線和圓弧插補 API 接口,方便用戶進行插補運動的設置和調整。
創建直線軌跡規劃
創建圓弧軌跡規劃
刪除軌跡規劃的句柄
設置起始位置
設置終點位置
開啟軌跡規劃
獲取當前軌跡規劃經過的總距離
獲取某個經過距離點的規劃信息
?示例1. 直線插補示例:起始點{0, 10, 20},終點{ 10, 0, -20}代碼如下:
#include #include #include #include#include "trajectory.h"int main(){ double startPos[3] = { 0, 10, 20 }; double endPos[3] = { 10, 0, -20 };
trajectory_handle handle = trajectory_new_line(3); trajectory_set_start_pos(handle, startPos); trajectory_set_end_pos(handle, endPos); trajectory_set_plan(handle);
double dist = trajectory_get_plan_distance(handle); for(double d = 0; d <= dist; d+=0.1) { double pass_dist[3]; trajectory_get_plan_slice(handle, d, pass_dist); std::cout << "pass_dist :" << pass_dist[0] << "," << pass_dist[1] << "," << pass_dist[2] << endl; } trajectory_delete(handle); return 0;}
執行結果如圖下圖所示:
圖6 直線插補軌跡
2.圓弧插補示例:起始點{-10,0,10},終點{ 10, 0, 5 }, 經過圓弧點{0, 10, 7.5}
代碼如下:
#include #include #include #include#include "trajectory.h"int main(){ double startPt[3]= { -10, 0, 10 }; double auxPt[3] = { 0, 10, 7.5 }; double endPt[3] = { 10, 0, 5 };
trajectory_handle handle = trajectory_new_arc(0, auxPt, 0); trajectory_set_start_pos(handle, startPt); trajectory_set_end_pos(handle, endPt); trajectory_set_plan(handle);
double dist = trajectory_get_plan_distance(handle); for (double d = 0; d <= dist; d+=0.1) { double pass_dist[3]; trajectory_get_plan_slice(handle, d, pass_dist); std::cout << "pass_dist :" << pass_dist[0] << "," << pass_dist[1] << "," << pass_dist[2] << endl; } trajectory_delete(handle); return 0;}
執行結果如圖下圖所示:
圖7 空間圓弧插補示例
ZMC600E運動控制器 配備了直線和圓弧插補算法,這些算法能夠靈活應對各種應用需求,確保軌跡的精確性。掌握這些運動插補技術,有助于提高設備的控制精度和工作效率,為工業生產帶來顯著的效益提升。
-
控制器
+關注
關注
112文章
16433瀏覽量
178950 -
機械
+關注
關注
8文章
1614瀏覽量
40697 -
運動控制器
+關注
關注
2文章
408瀏覽量
24772 -
硬件接口
+關注
關注
0文章
45瀏覽量
10859
發布評論請先 登錄
相關推薦
評論