DMC3000控制卡由于硬件上的限制,最多只能實現(xiàn)三軸插補(bǔ)動作.但有的客戶需要四軸插補(bǔ)動作,常見的動作為雙平臺相互動作.即XY為一平臺, ZU為一平臺,并且此平臺具有某種互動性,例如: 泡沫切割,定點跟蹤. 當(dāng)需要四軸插補(bǔ)函數(shù)時,可以用軟件算法來完成,再調(diào)用多軸同時啟動的函數(shù),具體實現(xiàn)如下:
int MoveINP4( long x, long y, long z, long u, long start, long speed, long accel, long decel ) { long len = sqrt( x*x + y*y + z*z + u*u ); if( len < 1 ) return 0; static struct MultiMoveData axis[4]; static double k=0; axis[I].Pos = x; axis[1].Pos = y; axis[2].Pos=z;axis[3].Pos=u; for( int I(0); I<4; I++) { k = double(axis[I].Pos)/double(len);//計算一個比例 axis[I].Axis = I; axis[I].TS = 1; //以下根據(jù)比例計算速度曲線 axis[I].StrVel = start*k; axis[I].MaxVel= speed*k; axis[I].Acc = accel*k; axis[I].Dec = decel*k; axis[I].Jerk = 1; } d3000_start_multi_move(4, axis );//同時啟動多軸運動 }
利用以上方法,可以進(jìn)行更多的插補(bǔ),但要注意一點的是,要有多軸同時啟動的函數(shù),若不能同時啟動,則插補(bǔ)在較高速情況下,會使路徑錯位.
|