首页 > 范文大全 > 正文

基于VB的四轴运动控制系统设计

开篇:润墨网以专业的文秘视角,为您筛选了一篇基于VB的四轴运动控制系统设计范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

摘 要:采用“PC+运动控制卡”的运动控制方案,设计了基于vb的四轴运动控制系统,通过调用控制卡的运动函数库实现单轴点动、连续运动以及直线和圆弧插补等功能。详细说明了运动控制系统的组成及运动控制系统的软件设计。

关键词:VB;运动控制卡;运动控制系统;运动函数库

引言

为了提高产品质量和产量,运动控制系统正在不断地深入到各个领域并得以迅速发展,运动控制系统在各类控制工程中有着广泛的应用前景。其应用范围涵盖数控加工业、汽车制造业和机器人等多个领域。通过开发实时多轴运动控制系统软件来满足实际工作的需求,已经成为备受关注的研究课题[1,2]。

近年来,PC+运动控制卡模式的运动控制系统得到了广泛应用。它具有结构简单、开放性易实现、成本相对较低等优点[3]。文章的控制系统也采用PC+运动控制卡模式。

1 系统硬件设计

整个系统由运动执行机构及运动控制系统组成,PC为控制系统的上位机,运动控制卡为下位机,系统设计方案如图1所示。

PC主机与控制卡通过PCI通讯方式实现信息交换,PC机通过调用运动控制卡动态链接库向控制卡发出运动指令,运动卡接收来自上位机的指令后向驱动器发出控制脉冲信号,控制卡可以控制所发出脉冲的频率、个数及频率变化率,从而能满足电机各种复杂的控制要求[4,5],主机也可以通过总线读取运动控制卡的输入信号,如通用输入口、限位信号、原点开关等,经判断并执行相应运算后向运动控制卡发出相应执行指令。

系统采用的运动控制卡是深圳固高公司生产的基于PCI总线的型号为GTS-400-SV的高性能运动控制卡,该控制卡可以同时控制4个轴,实现多轴协调运动。

图1 运动控制系统的硬件结构框图

系统其中一个轴的电路连接方式如图2所示,控制卡的脉冲信号及方向信号发送给驱动器,经放大处理后驱动步进电机运动,LIM+和LIM-分别连接对应轴的正向限位和负向限位开关,HOME为原点触发信号的输入引脚,连接原点开关[6]。

图2 电路连接图

2系统软件设计

固高运动控制卡的控制系统可以使用VC、VB和Delphi等支持动态链接库的开发工具来编写[7]。文章的运动控制系统的控制软件采用VB(Visual Basic)语言进行设计。VB是面向Windows的可视化编程开发工具,具有简练的语法和强大的功能、结构化程序设计思想以及方便快捷的可视化编程手段[8],它屏蔽了Windows环境下程序设计的复杂性,利用动态链接库DLL可以很快开发出Windows平台下的运动控制系统,因此VB在机电系统软件开发方面占有很大的比例。

2.1 程序界面设计

程序界面主要包括参数设置、功能选择和运动操作模块。硬件参数包括电机每转脉冲数、丝杠螺距、驱动器细分倍数及控制卡控制周期的设置,增加了使控制系统的适用性,参数设置还包括运动轴轴号选择、运动速度设置、移动距离设置、加速度以及加加速度设置,功能选择模块包括直线插补、圆弧插补、单轴运动、电子齿轮等运动模式的选择,操作模块包括驱动复位、位置清零、回原点、开始、停止和点动等,控制程序界面如图3所示。

图3 程序界面

2.2 控制程序的编写

运动控制卡提供了Windows环境下的动态链接库,在Windows系统下,用户通过PC机调用函数库中的指令,向运动控制器发出控制指令,实现各种功能。在使用VB编写程序之前,首先将控制卡动态链接库gts.dll和函数声明文件gts.bas复制到工程文件夹中,然后选择工程菜单下的“添加模块”,切换到“现存”标签页,选择工程文件夹中的函数声明文件gts.bas,将其添加到工程中。最后将运动控制器的动态链接库文件gts.dll复制到PC机中C盘windows system 文件夹中。至此可以调用函数库中的指令函数来编写程序[9],使用VB编写控制程序的界面如图4所示。

图4 程序代码编写界面

程序主要包括返回值处理函数、初始化函数、运动参数设置及运动执行函数等。初始化函数包括控制卡和运动控制轴初始化函数,控制卡初始化函数由GT_Open()(打开运动控制器)、GT_SwitchtoCardNo()(指定当前控制卡)、GT_SetSmplTm()(设置控制周期)、GT_Reset()(复位运动控制器)等指令组成;运动轴初始化函数由GT_Axis()(设置当前轴)、GT_ClrSts()(清除当前轴状态)等指令组成。控制卡提供了大量的运动指令供调用,可以满足各种简单及复杂运动控制的要求。

以下是以电子齿轮模式运动函数为例简要介绍VB编程环境下运动指令的调用方式,对于用户通过主机发送的命令,运动控制器在检查、校验后,会给出一个反馈,这个反馈就是指令(库函数)的返回值,在程序中,指令的返回值赋值给变量rtn,rtn经过返回值处理函数显示出相应的错误信息。指令GT_PrflG(2)为设置当前轴的运动模式为电子齿轮控制模式,主轴为2轴,指令GT_SetRatio(2)用来设置当前轴的电子齿轮传动比为2。指令GT_SetAcc(0.01)、GT_SetVel(B)、GT_SetPos(A)分别用来设置当前轴的运动加速度、速度及目标位置,变量B和A分别为用户输入的速度及目标位置经过运算后的数值。

Private Sub GMotion() '电子齿轮控制模式运动子函数

rtn = GT_Axis(1): Er (rtn)

rtn = GT_PrflG(2): Er (rtn)

rtn = GT_SetRatio(2): Er (rtn)

rtn = GT_Update(): Er (rtn)

End Sub

Private Sub Command6_Click() '以电子齿轮模式运动到目标位置

Dim A As Single

Dim B As Single

A = Text2

B = Text1 / 4 * 1600 / 1000000 * 200

GT_Initial

InputCfg

Axis_1_Initial

Axis_2_Initial

GMotion

rtn = GT_Axis(2)

rtn = GT_PrflT(): Er (rtn)

rtn = GT_SetAcc(0.01): Er (rtn)

rtn = GT_SetVel(B): Er (rtn)

rtn = GT_SetPos(A): Er (rtn)

rtn = GT_Update(): Er (rtn)

End Sub

3 结束语

文中运动控制系统采用“PC+运动控制卡”模式,使系统结构简单,动态链接库机制使VB在对第三方运动控制卡的支持上有了一个通用可行的途径。这种方法不仅可以采用价格相对较低的普通运动控制卡,而且能避免繁琐的界面编程,缩短周期,提高效率,降低成本。文章所引用的程序已在某四轴运动平台上通过测试并得到应用,运行稳定、可靠。

参考文献

[1]丛爽.实用运动控制技术[M].北京:电子工业出版社,2006:38-42.

[2]李刚,杨继东.基于PC的开放式数控系统的开发[J].机床与液压,2006(4):82-83.

[3]何丽娇,张宪民,王宇华.二维定位平台的运动控制系统研究[J].机电工程技术,2008,37(1):54-97.

[4]周光学.基于运动控制器的开放式数控系统研究及软件设计[D].秦皇岛:燕山大学,2005.

[5]关学锋,王伟,胡明.基于运动控制卡的五自由度机器人控制系统的开发[J].机械设计与制造,2009(6):189-190.

[6]李国厚.步进电机驱动与控制系统的设计[J].煤矿机械,2008,29(2):114-116.

[7]杨中宝,康顺哲.VB语言程序设计教程[M].北京:人民邮电出版社,2006:46-77.

[8]沈洪,施明利,等.VB程序设计[M].北京:清华大学出版社,

2010,6:0-56.

[9]固高科技(深圳)有限公司.GTS系列运动控制器编程手册[Z].

2011.