基金颁发部门:国家自然科学基金委;项目名称:宽谱XCT 的投影数据模拟以及投影数据校正方法的研究;编号:60551003;基金申请人:牟轩沁,邓振生;备注:本论文是基金项目中仪器设备研究科目:"控制X线机双能量曝光的控制设备"的控制方法研究之一。
基于运动控制卡的控制系统的设计与实现 Design and implementation of motion control systembased on motion control card柳叶青1,*邓振生1,陈真诚1,牟轩沁2LIU Ye-qing1, DENG Zhen-sheng, CHEN Zhen-cheng, MOU Xuan-qin2(1.中南大学信息物理工程学院生物医学工程研究所,湖南 长沙 410083;2.西安交通大学电子与信息工程学院图像处理与模式识别研究所,陕西 西安 710049)(1.Institute of Biomedical Engineering, School of Info-Physic and Geomatic Engineering, Central South University, Changsha, Hunan, 410083, China; 2. Institute of Image Processing and Pattern Recognition, The School of Electronic and Information Engineering, Xi'an Jiaotong University, Xi'an, Shanxi, 710049, China)摘 要:本文介绍了一个基于多轴运动控制卡的运动控制系统。
该系统以工控计算机、通用操作系统、PCI-8134多轴运动控制卡及其功能库函数为平台,采用VC++开发的人机界面,实现了三轴(X,Y,Z轴)独立运动、各个轴的连续直线运动以及梯形加减速运动等功能。
关键词:PCI-8134运动控制卡;运动控制;VC++Abstract: In this article, a motion control system based on control card of multi-axis movement was introduced. It is grounded on the industrial computer, the common operation system; a multi-axis motion control card, PCI-8134, and its movement function library, the interface in VC++ Language can be programmed in order to implement the control. The motion control functions include the movement of three axes separately; continuous linear movement and T-curve acceleration/deceleration movement of each axes, etc.Key words: motion control card PCI-8134, motion control, VC++0 引言运动控制技术的发展是推动新的产业革命的关键技术。
传统的数字运动控制装置一般直接采用微机或单片机来实现位置控制,外围电路复杂,计算速度慢。
近年来,对运动控制系统的速度和精度的要求愈来愈高,使得传统的运动控制系统难以取得满意的控制效果,因此急需一种运算速度快、可以满足高精度运动控制的。
随着技术的成熟稳定,目前市场上出现了种类繁多的运动控制卡。
本研究利用基于PCI总线的PCI-8134多轴运动控制卡及其功能库函数、工控计算机,设计了可控制多轴的步进电机、按照编程预定的运动轨迹及运动参数作定位运动的控制系统。
本系统具有通用性,可方便地移植到各种运动控制系统的开发中去,例如机器人、雕刻机及专用数控机床的开发等。
1 基于运动控制卡的运动控制系统实现原理运动控制卡通常采用专业运动控制芯片或高速DSP作为运动控制核心,大多用于控制步进电机或伺服电机。
运动控制卡与PC机构成主从式控制结构:PC 机负责人机交互界面的管理和控制系统的实时监控等方面的工作,例如键盘和鼠标的管理、系统状态的显示、运动轨迹规划、控制指令的发送、外部信号的监控等等;控制卡完成运动控制的所有细节,包括脉冲和方向信号的输出、自动升降速的处理、原点和限位等信号的检测等。
运动控制卡通过板卡接口输出PC机运算结果的运动控制脉冲数和运动方向控制等信号,经过伺服驱动功率放大器放大后,驱动步进电机或交流数字伺服电机转动,再通过滚珠丝杠传动机械,驱动两轴或三轴精密十字工作台运动。
对于运动目标位置控制通常有两种模式:一种模式是采用步进电机驱动的开环控制系统模式,另一种是采用交流数字伺服电机驱动闭 * 本文通讯作者:邓振生环控制系统模式。
前者因为步进电机每个脉冲的转过的步距角一定并与控制脉冲数成正比,在转动一圈的过程中无累积误差,加上目前具有步距角细分技术的步进电机驱动控制器己是成熟技术,因此用开环系统也能达到一定的精度。
后者将光电编码盘等传感器检测的目标位置,经由控制卡反馈至伺服控制驱动器,驱动电机运转。
如采用步进电机开环控制系统,能实现0.01mm 的位置控制精度。
如采用交流数字伺服电机及光电编码盘位置检测,构成闭环反馈控制系统,则能实现更高的位置控制精度。
2 PCI-8134运动控制卡PCI-8134是基于PCI总线的多轴运动控制卡。
PCI总线是一种先进的高性能32/64位地址数据复用局部总线,可以同时支持多组外围设备,具有高数据传输率、即插即用、低功耗、适应性强等特点。
图1为PCI-8134运动控制卡的系统结构图。
系统所采用的PCI专用接口芯片PCI9052与PCI总线之间的高速通信;芯片PCL5023实现运动控制。
如图所示:系统采用两片PCL5023芯片实现对电机的运动进行控制。
其中一片PCL5023控制轴一和轴二,另外一片PCL5023控制轴三和轴四。
通过高频脉冲驱动步进电机或者伺服电机,完成预期的速度输出要求。
同一系统中可以同时使用多块本款运动控制卡(最多可以使用12块卡,即同时控制48个轴),从而达到对多轴的运动控制,满足在多种情况下的运动控制要求。
图1 PCI-8134系统结构图PCI-8134能够产生高频率的脉冲序列。
脉冲序列的频率控制电机的转速,脉冲的数量控制电机的位置,而差动输入/输出信号能够减少噪声的影响。
指令输出选项包括DIR/OUR 模式与CW/CCW模式。
3 基于PCI-8134运动控制卡运动控制系统的开发3.1本系统可实现的主要功能(1) 可实现三轴(X,Y,Z轴)独立运动;(2) 可设定各轴的速度参数实现连续运动;(3) 可设定速度及加减速时间参数做梯形加减速运动;3.2 基于PCI-8134运动控制卡的软件开发基于PCI-8134运动控制卡的软件开发具有良好的开放性, 用户可以在DOS、VC、VB 环境下做软件开发。
在这里是在Windows XP系统下利用VC ++ 6.0 的MFC以面向对象方式进行编程。
底层开发库采用了运动控制卡提供的静态库pci_8134.lib、头文件pci_8134.h。
3.2.1 运动控制卡的安装将PCI-8134运动控制卡插入PCI插槽中。
根据具体的硬件平台,可设置卡上的开关,用于设置脉冲输出信号的信号种类(differential line driver output, open collector output),限位开关的工作模式(normal open ,normal close)等参数。
3.2.2 卡的初始化在VC++中创建一个基于对话框的motion工程,将pci_8134.LIB、头文件pci_8134.H添加进工程。
在所建工程的On InitDialog中进行初始化工作,调用W_8134_initialA( ),用于确认运动控制卡是否存在并且将其初始化;利用Motion Creator 中的Config Axis 来配置各轴,其中可以设置脉冲输出的模式,位置反馈的模式,限位开关的工作模式, 伺服信号的使用与否,中断信号控制等配置信息。
并将设置好的信息保存,将其存为8134.cfg文件,调用以下语句来初始化运动卡、配置卡的各种信息:cardno =W_8134_InitialA(&TotalCards);GetSystemDirectory (SysDir, 1024); FStr.Format ("%s", SysDir);FStr+="\\8134.cfg";Err=W_8134_Set_Config (FStr.GetBuffer (0));for (i=0; i<TotalCards; i++){W_8134_INT_Enable (i, &hEvent [4*i]);W_8134_Set_INT_Control (i, TRUE);}SetTimer (1, 100, NULL);至此,通过_8134_set_config()此函数的调用,就将Motion Creator 所提供的Configuration 窗口转化成为应用程序,按照8134.cfg文件配置了卡的参数,并设置了定时器。
3.2.3 人机用户界面的设计及相关功能图2 操作主界面在对话框中添加按钮,如图2所示。
基于运动控制卡控制系统的操作主界面。
界面上部是X、Y、Z轴的运动响应按钮,便于控制各轴的独立运动。
下面是显示各轴的运动位置。
中间是运动模式选项,包括连续运动和梯形运动。
做连续运动时,各轴以指定初速度、及加速时间运动到设定的速度,然后开始做连续匀速运动,直到收到停止命令为止;做梯形运动时,各轴以设定的初速度加速运动到指定的最大运动速度,随后减速并最终停止在设定的位置上。
界面最下方的两个设定表格是各轴运动速度设定和加速、减速、初速度的设定。
停止按钮用于结束各个轴的运动。
退出按钮结束程序。
此界面主要实现控制操作功能。
3.2.4 运动控制功能的实现根据所设计的人机界面以及所需要实现的运动控制功能,在界面中各个命令按钮的响应函数中编程实现。
对话框上端的X、Y、Z轴按钮时,要从速度设定、其他设定编辑框中读取各轴相应的运动速度,加速时间,减速时间和其初速度,根据所选择的运动模式,我们可以选择性的读取这些设置,参数的选择及运动控制过程如图3:图3 运动控制流程实现过程如下:在X (Y、Z) 轴按钮的单击事件命令响应函数中调用v_move(axis,str_vel, max_vel , Tacc)用于实现连续运动模式时三轴的独立运动,在结束运动按钮单击事件命令响应函数中调用v_stop(axis,Tdec),停止各轴的运动。