引用
引用樓主浪子海風(fēng)于2022-08-05 15:38發(fā)表的 信捷XD5,如何實(shí)現(xiàn)兩軸聯(lián)動(dòng)? :
看到手冊(cè)沒有支持實(shí)現(xiàn)兩軸聯(lián)動(dòng),一般要實(shí)現(xiàn)聯(lián)動(dòng)要怎么弄?
我是這么想的,目前未上機(jī)證實(shí):
概據(jù):S=VT 距離=速度*時(shí)間 聯(lián)動(dòng)就是在不同的速度來實(shí)現(xiàn)在相同時(shí)間內(nèi)到達(dá)不同的距離/
設(shè):X軸 S1距離=100 求:V1速度=? S1=V1*T1
.......
對(duì)軌跡要求不高,只是需要兩軸同時(shí)到達(dá)的,可以寫個(gè)C語(yǔ)言模塊換算下軸速度就可以
有做個(gè)差不多的,效果還可以
float x, y, l, lx, ly, ll, ss, sx, sy, mx, my;
x = DW[390]; //D390 X當(dāng)前位置
y = DW[490]; //D490 Y當(dāng)前位置
mx = DW[220]; //D220 X目標(biāo)位置
my = DW[222]; //D222 Y目標(biāo)位置
ss = DW[230]; //D230 設(shè)定速度
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軸目標(biāo)位置
DW[202] = my; //D202 Y軸目標(biāo)位置
DW[210] = sx; //D210 X軸速度
DW[212] = sy; //D212 Y軸速度
設(shè)定了最小速度為5,速度為0時(shí)有問題