浪子海風
浪子海風
級別: 略有小成
|
看到手冊沒有支持實現兩軸聯動,一般要實現聯動要怎么弄? 我是這么想的,目前未上機證實: 概據: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 相互討論,相互學習. 各位大師指點一下. |
|
---|---|---|
|
wzy139076378
年輕不是你玩的理由,而是你奮斗的資本。
級別: 網絡英雄
|
XD系列支持插補指令,直接用插補指令就好了 |
|
---|---|---|
|
浪子海風
浪子海風
級別: 略有小成
|
圖片:
手冊上沒看到支持的. |
|
---|---|---|
|
浪子海風
浪子海風
級別: 略有小成
|
沒有實物來測試,不知可行否. |
|
---|---|---|
|
蘇州工人
級別: 工控俠客
|
對軌跡要求不高,只是需要兩軸同時到達的,可以寫個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時有問題 |
---|---|
|
sunpeng
級別: 正式會員
|
目前這個型號 不支持插補指令 寫算法的話 加減速時間都要考慮進去,但是效果肯定不是很嚴謹,要求不高 寫速度比例換算 可以 |
---|---|
|
浪子海風
浪子海風
級別: 略有小成
|
C# 我是真的一點都不懂,看到英文字符就會頭痛,還有治嗎? |
|
---|---|---|
|