王 维 郭鹏飞 杨 光 钦兰云 卞宏友王 伟 项 坤 蔡 淦 王 婷
(①沈阳航空航天大学航空制造工艺数字化国防重点学科实验室,辽宁沈阳 110136;②沈阳航空航天大学机电工程学院,辽宁沈阳 110136)
源于开放式数控系统的可扩展性、可重用性、可移植性、互换性等优点[1],基于PC的开放式数控系统成为当前数控技术的主要发展潮流[2]。中国台湾Advantech公司的PCI-1240U系列运动控制卡是一款专门应用于一般精确运动的可编程轴步进/脉冲型伺服运动控制卡[3]。由于其性价比较高,因此被广泛应用于工业领域。与普通机床相比,对于所有的数控机床而言,尽管其精度和加工效率明显提高,但是其在刀具微动、工件对刀和对工作台的运动控制等功能方面,仍存在欠缺。为改变这种状况,手轮应运而生。手轮全名叫手摇脉冲发生器,它是一种光电式的位置控制元件,在转动情况下,其转动的角度大小和转动方向转变为含有脉冲和方向信息的脉冲序列,机床通过其产生的脉冲序列信号的频率和脉冲个数实现控制轴的运动速度和位移控制[4],它的有无直接关系到数控机床的使用性能和加工效率。因而,在数控系统的开发过程中,如何基于PCI-1240U运动控制卡实现手轮功能是普遍存在的一个问题。
本文主要介绍了基于“PC+PCI-1240U运动控制卡”的手轮控制系统的硬件结构,并开发了其控制程序,为基于PCI-1240U的手轮功能的实现提供了相关的技术支持,具有一定的参考价值。
本文研发的数控机床是由工控机、PCI-1240U运动控制卡、步进电动机驱动器、三坐标精密工作台、手轮等单元组成,各个单元之间的硬件连接如图1所示。
多轴控制卡PCI-1240U是基于PC平台的开放性高速四轴运动PCI控制卡,简化了步进和脉冲伺服运动控制,可以显著提高电动机的运动性能。该卡采用日本NOVA公司的MCX314运动ASIC芯片,能够实现2/3轴线性插补、2轴圆弧插补、T/S曲线加速/减速、手轮和慢进功能等;此外,该卡在执行这些运动控制功能控制电动机时,不会增加处理器的负担[5]。PCI-1240U运动控制卡提供了接线端子 ADAM-3952,方便了对PCI-1240U板卡上的接口进行转接。
ADAM-3952是位置转接板。脉冲发生器可以通过ADAM-3952的nEXOP+/nEXOP-与PCI-1240U 相连,用来驱动伺服单元和获取编码器反馈信号等信息。CN1是PCI-1240U与外部设备机械连接的唯一接口,可通过PCL-10251总线与两块ADAM-3952转接板的CN1或CN4相连,这样,PCI-1240U共包含4组通道,每一通道对应一套伺服驱动系统,即它可以驱动4台步进电动机。每一通道包括模拟量输入/输出引脚、数字量输入/输出引脚等。本系统为三坐标系统,共有3台步进电动机,占用板子的3个通道。手轮的进给轴和进给倍率控制线没有对应的接口,这里将其接入到IN1、IN2和IN3口并通过相应的软件进行管理。当手摇脉冲发生器产生的脉冲信号送到PCI-1240U后,经PCI-1240U运算处理所得的结果结合用户的初始化设置,驱动相应的执行元件运动。
为了满足手轮驱动模式下数控机床的各轴的独立运动及倍率的选取功能,选择Hand Wheel Mode 3模式,其接线如图2、图3所示。
这里巧妙的运用了板卡所提供的IN口的输入状态作为判断条件,进行轴和倍率的切换。其中,将手轮的轴切换开关对应的X、Y、Z的三根接线S0、S1、S2分别接到 ADAM-3952的 U-IN1、U-IN2、U-IN3接口;倍率切换开关对应的×1、×10、×100的三根接线P0、P1分别接入ADAM-3952的X-IN3、Z-IN3接口。各个通道的IN口初始电平为高电平,接通时变为低电平。
PCI-1240U专门提供了Motion Utility功能,可以通过设置其中的参数(如图4所示),进行简单的手轮功能的调试。
本系统是主从式双系统结构,有上位PC机和下位PCI-1240U控制卡组成(图5)。它们各有自己的CPU、存储器和外部设备,但是分工不同,PC机可以完成人机交互界面、系统任务管理和机床状态变量的读取并能进行运算的功能[6];而 PCI-1240U卡的 DSP负责运动控制、I/O管理。
根据PCI-1240U运动控制卡的DLL可知,调用函数 P1240MotDI(BYTE byBoard_ID,BYTE byReadDIAxis,BYTE*lpReturnValue),这个函数用来获取PCI-1240U指定轴通道IN口的当前状态值,将其存放在lpReturnValue所指向的字节型内存地址中。通过调用外部驱动模式函数P1240MotExtMode(BYTE byBoard_ID,BYTE byAssignmentAxis,BYTE byExternalMode,LONG lPulseNum),实现对驱动轴、驱动模式、手轮脉冲对应到步进电动机上的脉冲数等参数的设定。手轮的上位机程序一方面用于通过VC编程设定手轮驱动模式下进给轴和倍率的选取。相应程序代码如下:
另一方面系统运行时需要实时监测手轮控制的运动轴和进给倍率开关的状态。这里利用Visual C++里的Timer定时器控件,在程序运行时,计时器控件每隔0.1 s对 PCI-1240U 设定轴的 IN1、IN2、IN3 进行读取,后将其返回给程序,从而实现进给轴和进给倍率的切换。
首先将SetTimer写在OnlnitDialog中。程序代码如下:
然后将上面的主程序代码嵌入到时间定时器里面,程序代码如下:
在以上硬件搭建的小型数控磨床中,工作台能准确跟随手轮的动作进行相应的运动,且运动连续平稳;利用上位机的VC++编程,可以方便地进入手轮驱动模式和退出手轮驱动模式的切换,同时实现了手轮驱动模式下的进给轴的切换以及进入/退出手轮模式(轴选择开关在OFF档上,则退出手轮驱动模式)的切换,通过拨动倍率开关,可以方便地调节某一指定轴的随动平台的移动速度,从而更加方便了刀具微动、工件对刀以及对工作台运动的控制等。
手轮功能的实现对数控机床而言,很大程度上方便了操作者,提高了工作效率。本文构建了以PCI-1240U运动控制卡和工控机为硬件核心的数控系统,利用VC++编程技术实现了手轮模式切换、控制轴切换和倍率切换等功能。该方法在实际中得到了应用,适合于所有基于PCI-1240U的数控系统。
[1]周建忠,刘会霞.激光快速制造技术及应用[M].北京:化学工业出版社,2009.
[2]崔延,李淑萍.基于运动控制卡的开放式数控系统研究及应用[J].机械工程与自动化,2011(6):193-195.
[3]ADVANTECH Co.,Ltd.PCI-1240 User's Manual[Z].
[4]赵海军,叶佩青.手轮脉冲驱动均匀化控制[J].机床和液压,2003(1):117-118.
[5]张志明,梅顺齐.基于 PCI-1240的伺服电机控制系统研究[J].机电产品开发与创新,2006,19(2):124-125.
[6]王益红,陈志同.基于PMAC的数控机床手轮功能的实现[J].机械工程师,2005(12):68-70.