基于运动控制平台的圆弧插补运动的程序设计
2024-03-05郭慧晶
郭慧晶
(山西机电职业技术学院,山西 长治 046011)
0 引言
随着新型先进制造装备产业的快速发展,运动控制系统的发展经历了从直流到交流,从开环到闭环,从模拟到数字,直到基于PC的伺服控制网络(PC-Basedsscnet)系统和基于网络的运动控制系统的发展过程[1]。而中国市场对运动控制的需求与日俱增,运动控制技术作为相关工业自动化技术的核心,起着非常重要的作用,该技术适用于激光加工、装配生产、电子加工、机器人以及数控机床等方面。
固高科技是国内首家专业运动控制核心技术平台研发公司,为装备制造业的发展做出了巨大贡献。本文用到的是固高公司生产的GTS-800-PV-PCIe 运动控制器,其核心是由DSP和FPGA组成,可以实现高性能的控制计算,提供标准的 PCIe 总线接口[2],可以实现高性能的控制计算和高速的点位运动,提供Visual C++,Visual Basic,C#,VB.NET 等函数库和 Windows 动态链接库。
本文利用Visual Studio 2019开发软件,用C++语言程序实现平面篮球图的MFC界面设计以及运动轨迹的设定。
需要绘制的平面篮球图如图1所示,要求建立相对于机械原点坐标系的加工坐标系,然后以速度50Pulse/ms速度移动XY轴,使激光束沿下图轨迹移动,尽量使轨迹平滑。丝杠导程为10 mm。
图1 平面篮球图
坐标位置如下表1所示,单位为毫米,其中2、5、7为圆心位置。
表1 坐标位置表 单位:mm
1 圆弧插补运动的电气接线
圆弧插补是给出两个端点间的插补数字信息,以一定的算法计算出逼近实际圆弧的点群,控制道具沿这些点运动,加工画出圆弧曲线[3]。
为完成对X轴、Y轴和Z轴的正负限位以及原点的控制,需要在运动控制平台上将X轴、Y轴和Z轴端子按照接线要求进行电气接线。
除此之外,还需要按照要求完成轴-驱动器-编码器的电气接线。
2 平面篮球图的MFC界面设计
MFC是Microsoft Foundation Classes微软基础类库的简称,封装了许多的C++类库[4]。
根据任务要求,需要完成平面篮球图的设计,运动控制平台通过Visual Studio 2019软件的程序完成初始化后,清除状态,之后对X轴、Y轴和Z轴进行伺服使能,然后X轴、Y轴和Z轴分别完成回零操作,打开激光笔后,进行平面篮球图的绘制,绘制完成后,关闭伺服使能。综上所述,MFC界面设计需要用到初始化、伺服使能、回零、轴运动、下使能、清除状态、轴号的选择的功能,应对其分配对应按钮控件和文本框。
MFC界面的设计流程为:创建新项目,选择MFC应用,在应用程序类型中选择基于对话框,完成后进入对话框,将配置文件复制到项目文件夹,打开Visual Studio 2019软件在头文件处添加现有项,打开源文件进行声明,选择初始化、伺服使能、回零、轴运动、下使能、清除状态按钮控件,并对对应按钮进行功能程序编写,轴号的选择需要在MFC界面中选择静态文本框和实例编辑框。平面篮球图的MFC界面设计如图2所示。
图2 圆弧插补运动——平面篮球图的MFC界面
3 平面篮球图的程序设计
基于实际工作流程,把平面篮球图绘制的工作步骤分解成了三个部分:外圆的绘制、1-7-3圆弧段的绘制和4-7-6圆弧段的绘制。
程序流程图中,最核心的环节是圆弧插补运动。具体的程序流程图如图3所示。
图3 圆弧插补运动——平面篮球图的程序流程图
首先完成系统的初始化,包括:运动控制器的打开、运动控制器的复位、运动控制器的配置及消除隔周的报警和限位。具体程序段如下:
voidClineDlg::init()
{
short sRtn;
sRtn = GT_Open();
sRtn = GT_Reset();
sRtn = GT_LoadConfig("GTS800.cfg");
sRtn = GT_ClrSts(1,4);
}
打开伺服使能,可通过sRtn = GT_AxisOn(gAxis); 程序实现。
回零运动需要分别对X轴、Y轴和Z轴进行回零,具体程序如下:
voidClineDlg::zeroPos()
{
short sRtn;
short gAxis = 1;
THomeStatus tHomeSts;
THomePrm tHomePrm;
gAxis = getAxis();
sRtn = GT_ClrSts(gAxis);
sRtn = GT_ZeroPos(gAxis);
sRtn = GT_AxisOn(gAxis);
//设置 Smart Home 回原点参数
sRtn = GT_GetHomePrm(gAxis, &tHomePrm);
tHomePrm.mode = 11;
tHomePrm.moveDir = 1;
tHomePrm.edge = 0;
tHomePrm.velHigh = 30;
tHomePrm.velLow = 5;
tHomePrm.acc = 0.3;
tHomePrm.dec = 0.3;
tHomePrm.pad2[0] = 1;
tHomePrm.pad2[1] = 1;
tHomePrm.pad2[2] = 1;
tHomePrm.searchHomeDistance = 0;
tHomePrm.searchIndexDistance = 10000;
tHomePrm.escapeStep = 2000;
sRtn = GT_GoHome(gAxis, &tHomePrm);
do
{
sRtn = GT_GetHomeStatus(gAxis, &tHomeSts);
} while (tHomeSts.run);
sRtn = GT_ZeroPos(gAxis);
}
圆弧插补运动需要完成两步操作:建立坐标系和缓存区存入数据。运动控制器在初始状态下,所有轴处于单轴运动模式,两个坐标系无效,因此在插补运动前,必须首先建立坐标系,可以通过GT_SetCrdPrm 指令完成坐标系的建立。
运动控制器插补运动模式采用缓存区运动方式,然后,启动插补运动,运动控制器会依次执行插补数据,直到所有的插补数据全部运动完成[5]。向缓存区写入大圆的圆弧插补数据,具体指令如下:
sRtn = GT_ArcXYC(1, 10325, 96364, 54610, -30825, 0, 50, 0.1, 0, 0);
1-7-3段圆弧和4-7-6段圆弧的圆弧插补指令为:
//1-7-3圆弧
sRtn = GT_ArcXYR(1, 120418, 97238, 65000, 1, 50, 0.1, 0, 0);
// 4-7-6圆弧
sRtn = GT_ArcXYR(1, 9938, 31508, 65000, 1, 50, 0.1, 0, 0);
需要指出的是:圆弧插补指令有两种描述方法:半径描述法和圆心坐标描述法。使用半径描述法时,可以通过指令 GT_ArcXYR、GT_ArcYZR、GT_ArcZXR来描述,需要输入圆弧终点坐标和半径值,但是这种方法不能画整圆;圆心坐标描述法通过指令 GT_ArcXYC、GT_ArcYZC、GT_ArcZXC 来实现,需要输入圆弧插补终点坐标和圆弧插补的圆心相对于起点位置的偏移量。
最后通过sRtn = GT_AxisOff(gAxis);指令关闭使能。
4 调试结果
程序代码检查无误后,对程序进行编译并调试,点击对应控制按钮对运动控制平台进行控制,经检验,可以完成平面篮球图的绘制。
5 结语
本文基于固高运动控制平台,利用Visual Studio 2019软件实现了平面篮球图的MFC界面设计和绘制。此外,还可通过直线插补运动和圆弧插补运动完成复杂图形的运动轨迹,为运动控制技术的进一步发展提供便利。