理论篇:
前面记录的那些运动模式,比如PT、Jog模式都是以单轴进行的独立运动模式。插补运动可以建立X轴Y轴甚至更多轴之间的关系,通常以坐标系关系来建立轴与轴之间的运动关系。
直线插补方式中,两点间的插补沿着直线的点群来逼近。首先假设在实际轮廓起始点处沿 x 方 向走一小段(如一个脉冲当量),发现终点在实际轮廓的下方,则下一条线段沿 y 方向走一小段,此 时如果线段终点还在实际轮廓下方,则继续沿 y 方向走一小段,直到在实际轮廓上方以后,再向 x 方向走一小段。依次循环类推。直到到达轮廓终点为止。这样实际轮廓是由一段段的折线拼接而成,虽然是折线,如果我们每一段走刀线段都在精度允许范围内,那么此段折线还是可以近似看做一条 直线段。

在固高提供的GTS-400-PT运动控制卡中最多只支持思维坐标系的创建。
插补运动步骤:
1、建立坐标系关系
2、打开使能
3、向缓存区存入数据
4、启动插补运动
代码篇:
前台设计:

代码:
public partial class Form1 : Form
{
//定义坐标系号
short _space = 1;
static short _cardNum = 0;
TCrdPrm prm ;
public Form1()
{
InitializeComponent();
//启动固高运动控制卡
new GT.GTS_Start(0, Application.StartupPath + "\\GTS800_1.cfg", -1, false, Application.StartupPath + "\\ExtModule.cfg");
}
private void button1_Click_1(object sender, EventArgs e)
{
int p1 = int.Parse(this.textBox1.Text);
int p2 = int.Parse(this.textBox2.Text);
//清除1号坐标系中的缓存数据
GTS.GT_CrdClear(_cardNum, _space, 0);
//向坐标系的缓存区写入插补数据
GTS.GT_LnXY(_cardNum, _space, p1, p2, 100, 0.1, 0, 0);
//GTS.GT_ArcXYR(_cardNum, _space, 0, 0, 20000, 0, 100, 0.1, 0, 0);
//启动插补运动
GTS.GT_CrdStart(_cardNum, 1, 0);
}
private void button2_Click(object sender, EventArgs e)
{
打开使能
GTS.GT_AxisOn(_cardNum, 1);
打开使能
GTS.GT_AxisOn(_cardNum, 2);
//定义TCrdPrm结构体
prm = new TCrdPrm();
prm.dimension = 2;//定义为二维坐标系
prm.synVelMax = 500;//最大合成加速度
prm.synAccMax = 1;//最大加速度
prm.evenTime = 50;//最小匀速时间
prm.profile1 = 1;//规划器1对应X轴
prm.profile2 = 2;//规划器2对应Y轴
prm.setOriginFlag = 1;//需要指定坐标系的原点坐标的规划位置
prm.originPos1 = 100;//坐标系的原点坐标(100,100)单位为pulse
prm.originPos2 = 100;
//建立1号坐标系,设置坐标系参数
GTS.GT_SetCrdPrm(_cardNum, _space, ref prm);
}
}
关于所需环境,参见:https://blog.csdn.net/weixin_44490080/article/details/101468746
3万+

被折叠的 条评论
为什么被折叠?



