浪子海風
浪子海風
級別: 略有小成
|
看到手冊沒有支持實現兩軸聯動,一般要實現聯動要怎么弄? 我是這么想的,目前未上機證實: 概據:S=VT 距離=速度*時間 聯動就是在不同的速度來實現在相同時間內到達不同的距離/ 設:X軸 S1距離=100 求:V1速度=? S1=V1*T1 Y軸 S2距離=50 V2速度=10 S2=V2*T2 即:(S1/S2)*V2=V1 100/50*10=20 M1--------------------davi K100 K20 K150 Y0 Y2 I ---davi K50 K10 K150 Y1 Y3 sm1000-----------------------------------------inc D0 sm1020--------I D0=K2-------------------------------------------rst m1 相互討論,相互學習. 各位大師指點一下. |
|
---|---|---|
|
蘇州工人
級別: 工控俠客
|
對軌跡要求不高,只是需要兩軸同時到達的,可以寫個C語言模塊換算下軸速度就可以 有做個差不多的,效果還可以 float x, y, l, lx, ly, ll, ss, sx, sy, mx, my; x = DW[390]; //D390 X當前位置 y = DW[490]; //D490 Y當前位置 mx = DW[220]; //D220 X目標位置 my = DW[222]; //D222 Y目標位置 ss = DW[230]; //D230 設定速度 if ( x >= mx ) { lx = x - mx; } else { lx = mx - x; } if ( y >= my ) { ly = y - my; } else { ly = my - y; } if ( lx >= ly ) { sx = ss; sy = ss / lx * ly; } else { sy = ss; sx = ss / ly * lx; } if ( lx == ly | lx == 0 | ly == 0 ) { sx = ss; sy = ss; } if(sx<5) { sx = 5; } if(sy<5) { sy = 5; } DW[200] = mx; //D200 X軸目標位置 DW[202] = my; //D202 Y軸目標位置 DW[210] = sx; //D210 X軸速度 DW[212] = sy; //D212 Y軸速度 設定了最小速度為5,速度為0時有問題 |
---|---|
|