邓永红, 曹树坤
(济南大学 机械工程学院, 山东 济南 250022)
目前,开放式数控系统因不依赖某个特定的硬件、软件,可以优化选配来自不同供应商的零部件,提供最大柔性,根据用户需要集成特殊功能等优点,已成为国际研究数控系统主潮流.美国的NGC和OMAC计划、欧盟的OSACA计划以及日本的OSEC计划最有代表性,其体现了国外开放性数控的发展现状[1].国内对开放式数控系统的研究还在起步阶段,与国际先进水平存在很大差距.国内在数控系统中实现直接数字控制的方法主要是现场总线控制,基于现场总线的数控系统同样需要在CNC上开发通信板卡,这些板卡须插入CNC的标准ISA/PCI插槽内,但ISA/PCI总线接口复杂,驱动程序、硬件接口开发难度大,开发成本较高,开发周期也较长,同时还需要伺服系统提供相应的现场总线接口[2].而且目前市场上多种现场总线并存,不同类型现场总线之间不能相互通信,很难满足开放性数控系统的要求.本文以开放式数控系统为研究对象,设计一套基于DSP核心控制器的开放式五轴数控系统,以期提供一种响应速度快、可靠性高、灵活性好,能够更好地满足机械加工中的更高要求,提高数控机床使用安全和效率的开放式数控系统.
如图1所示,基于DSP核心控制器的开放式五轴数控系统由上位机、下位机和五轴数控机床等组成.它采用上位机与下位机组成的开放式控制系统,上位机由PC机、ARM模块、DSP模块、储存单元四部分组成,各自硬件相互独立,操作界面完善,给操作人员多种操作机器的手段,通过功能切换并与下位机连接成功后可对五轴数控机床操作[3].下位机由电机控制板、电液伺服阀和数据采集及输出模块组成.上位机完成配置硬件、设置试样参数、实时显示图形、保存数据、打印报告等功能,且通过USB高速接口与下位机进行通讯,下位机负责实时接收其命令,实时采集传感器数据并返回给上位机显示,并做有关数据运算、伺服电机闭环控制等工作[4].
图1 系统总体结构框图
为了满足数控系统低成本、高性能、低功耗的要求,本文设计的解决方案采用Samsung 公司的16/32位RISC处理器S3C2410A.S3C2410A提供了以下丰富的内部设备:分开的16KB的指令Cache和16KB数据Cache, MMU虚拟存储器管理,LCD控制器(支持STN&TFT),支持NAND Flash系统引导,系统管理器(片选逻辑和SDRAM控制器),3通道UART,4通道DMA,4通道PWM定时器,I/O端口,RTC,8通道10位ADC和触摸屏接口,IIC-BUS接口,IIC-BUS接口,USB主机,USB设备,SD主卡&MMC卡接口,2通道的SPI以及内部PLL时钟倍频器[5].
ARM模块的功能是负责处理各种接口通信与人机交互、数据存储与发送.ARM处理器s3c2410是数控系统的主要硬件,RT-Linux操作系统运行在此硬件上.操作系统主要完成数据的计算和逻辑运算,管理中断信号和实时调度工作,采用现场总线技术通过CAN总线控制器与DSP实现数据传输.
本开放式数控系统使用的核心处理器为TMS320F28335.TMS320F28335采用静态CMOS技术,主频达150MHz; CPU核供电电压为1.8V,I/O口供电电压为3.3V;具有3个独立的外部扩展接口,超过2M的寻址空间;芯片内部本身具有256K X16位FLASH,34K X16位SARAM空间;具有丰富的内部外围模块、完善快速的中断体系及丰富的I/O资源[6].
DSP处理器TMS320F28335是本数控系统的核心硬件,本系统使用DSP处理器的EPWM模块对伺服电机进行控制,例如通过让EPWM1模组的时基与EPWM2和EPWM3同步,同时让EPWM4的时基与EPWM5和EPWM6同步,即可现实对两个伺服电机的独立控制;通过让EPWM1的时基与另外五个模组同步,即可现实两个伺服电机在同一时间启动,完成机床两轴联动.应用eQEP模块对电机位置与速度进行实时测量.应用通用定时器和外部中断接口实现各外设控制.应用通用I/O模块实现DSP与各外设以及ARM平台间的数据交互.
储存单元由IDE硬盘、FLASH和内存组成,IDE硬盘主要储存零件加工程序.加工零件程序编写复杂、数据量大,可在该系统加上硬盘以弥补FLASH的储存空间不足,将调试好的RT-Linux操作系统以及用户的应用程序等存放于FLASH储存器[7].RT-Linux操作系统由BootLoader、RT-Linux内核、文件系统组成;用户应用程序主要为数控系统部分模块和人机界面软件等[8].当数控系统运行时,其主要区域为内存,内存中包含系统及用户数据以及系统运行时的堆栈.
电机控制板模块负责驱动伺服电机并反馈传感器信号.图2所示为MCT8000F8控制器控制的一个交流伺服电机的控制图.在本系统中,采用松下MSD伺服驱动器驱动交流伺服电机.MCT8000F8控制板和MCT8000F8-IO接口板向伺服驱动器输出控制信号.编码器检测电机的实际位置并反馈给MCT8000F8.MCT8000F8将需要的位置指令信息与反馈的编码器实际位置信号进行比较,通过DAC输出端子DAC0将产生的偏差信号输入伺服驱动器,形成闭环位置控制系统[9].三个数字输出信号DO0、DO1、DO2用于控制伺服驱动器;两个数字输入信号DI0和DI1用于检测驱动器的运行状态.本系统用一个MCT8000F8同时控制5个电机,实现五轴联动加工.
图2 交流伺服电机的控制图
本系统使用DSP核心控制器加上ARM处理器,实现多处理器并行工作,将软件工作分配给各级处理器,完成实时多任务处理,提高了整个系统的运行速度.将数控系统中整个软件分为三部分各自独立运行:在PC的windows运行部分、在ARM的RT-Linux运行部分以及在DSP的运行部分.在PC中完成复杂曲面的高效、精密加工; ARM运算速度比DSP高,用于事件处理;DSP芯片内部没有操作系统,基本上单任务运行,不支持进程间调度问题,但支持高速浮点运算,因此该环境可以运行实时要求高及运算量大的任务[10].
整个系统的软件部分是以Visual C++6.0为开发工具,采用了面向对象和模块化的思想进行开发,主要分为五大模块:参数设置、运行模式、状态显示、状态控制、系统管理[11].参数设置模块包括运行模式的选择、刀具选择、加速度设置和速度设置,此模块负责各轴运动控制的脉冲输出设置和刀具选择等.运行模式模块主要包括点动运行、手动运行和自动运行,此模块完成调整运行的方式[12].状态显示模块包括运行状态显示、运行轨迹显示、速度显示和I/O显示,该模块负责将运行状态(位置、速度、I/O量等)及调整后的参数实时显示[13].状态控制模块包括I/O控制、速度控制,该模块负责向运动控制卡及其他执行部件发送控制指令.系统管理模块包括帮助文档、程序编译和文件管理,其负责文件管理以及软件的操作说明等.上述各个模块在主框架程序控制下相互协调,组成一个完整的运动控制系统[14].
该系统是以DSP为核心的运动控制器,需要与ARM进行通信以得到代码指令,并完成指令解析和插补算法,最终输出PWM脉冲驱动各电机完成有序运动.其主程序流程图如图3所示.
图3 DSP主程序流程图
部分程序代码:
struct CMachinePara
{
double machRect[6];//工作台行程
double mmPrePulse[5];
double arcPrePulse[5];
int ciraxis;//旋转轴号
double calibratehig;//对刀器高度
double calibrateVel;//对刀速度
short LimSns,HomeSns;
double HomeVel[5];//五轴的回零速度
int HomeDir[4];//回零方向
double sysMaxVel;//系统最高速度
int SpineDelay;//主轴启动延迟时间
bool startGohome;//程序启动自动会零
};
……
(1)主操作界面
该系统主操作界面中包括标题栏、菜单栏、工具栏、轨迹跟踪区、代码跟踪区、坐标跟踪区、速度调节区、转速调节区、状态显示区、手动控制区和系统状态栏.系统正常启动后,出现如图4所示的系统主操作界面,此时用户即可进行各项正常操作.
图4 系统主操作界面
(2)参数设置界面
在进行加工之前需用设置系统参数.点击主操作界面上的“工具”以及“设置系统参数”菜单项,系统将弹出“系统参数设置”对话框.“机床参数设置”对话框包括三个部分:速度设置、加速度设置、其他,如图5所示.
图5 系统参数设置
将该数控系统应用到一台五轴坐标数控铣床上进行实物加工试验,五轴坐标机床实验平台X轴的行程为240mm、Y轴的行程为130mm、Z轴的行程为140mm,转动轴A轴最大转动角度为360°,转动轴C轴的最大转动角度为140°.试验系统如图6、图7所示.
图6 数控系统测试平台1
图7 数控系统测试平台2
整个数控系统工作过程如下:
(1)操作端对需要加工的零件进行UG建模、刀具轨迹生成并进行刀具轨迹信息提取.
(2)DSP模块将数控机床初始化等待ARM指令.
(3)操作端通过数据线将刀具轨迹信息传送到ARM模块.
(4)ARM接到刀具轨迹信息后向DSP发送测量指令,并获取反馈的测量信息,DSP获得指令启动测量功能获得加工工件的初始尺寸和定位信息,并反馈回ARM.
(5)ARM根据测量信息智能规划刀具的路径、根据智能工艺数据库选择加工工艺参数,并自动生成数控代码,进行加工仿真和数控代码检查、将检查过的数控代码传送给DSP并控制DSP的工作状态.
(6)DSP接受数控代码,向电机控制板、电液伺服阀发送指令脉冲.
(7)电机控制板、电液伺服阀接受脉冲指令,电机控制板将指令发向伺服驱动器.
(8)伺服电机、电液伺服阀按数控指令驱动五轴数控机床.
(9)五轴数控机床完成数控加工同时将加工中的状态信息通过DSP反馈给ARM.
(10)加工完成后,ARM再次启动测量功能,对工件尺寸和形状进行自动检测,实现加工质量的主动控制.
(11)DSP接收到ARM命令后再次启动测量功能对工件的关键尺寸和形状等质量状态进行在线检测,并反馈给ARM.
配置适当参数对X轴、Y轴、Z轴、A轴及C轴进行测试,机床在测试过程中运行平稳.
试验表明,本文设计的基于DSP核心控制器的开放式数控系统响应速度快、可靠性高、灵活性好,能够较好地满足实际加工中的更高要求,提高了数控机床使用安全和效率,且具有以下特点:
(1)采用DSP作为核心器件,在整个数控系统中可以集成、固化多种伺服控制核,实现控制的灵活性以及灵活的智能化控制.
(2)通过增设ARM模块,融合了数控技术和可嵌入技术,实现数控系统与人交互功能;通过监控终端实现对数控机床状态实时监控,及时了解各数控机床生产加工过程以及机床状态,实现预知维修,及早发现故障隐患把损失降到最低,提高数控机床使用效率.
[1] 张恒.直接面向加工路径的开放式数控系统研究[D].济南:济南大学,2009.
[2] 李攀,裴海龙,王清阳.开放式数控系统软运动控制器全数字化的实现[J].机床与液压,2011,39(4):83-86.
[3] 盛晓超,陶涛,张东升,等.基于运动控制器的开放式数控系统设计[J].机床与液压,2011,39(19):58-66.
[4] Kim D Y,Do H S, Jeon D Y.Feed-system autotuning of a CNC machining center: rapid system identification and fine gain tuning based on optimal search[J].Precision Engineering,2012,36(2):339-348.
[5] 侯殿有.嵌入式系统开发基础——基于ARM9微处理器C语言程序设计[M].北京:清华大学出版社,2011:2-15.
[6] 刘陵顺.TMS320F28335DSP原理及开发编程[M].北京:北京航空航天大学出版社,2011:1-5.
[7] 苏传芳.嵌入式处理器实现IDE硬盘存储[J].计算机时代,2002,25(4):36-38.
[8] Bousias K,Guang L,Jesshope C R,etal. Implementation and evaluation of a microthread architecture[J].J.Syst.Architect,2009,55 (3) :149-161.
[9] 周虹.开放式数控系统在数控车床上的应用[D].长沙:湖南大学,2005.
[10] 徐跃,王太勇.基于ARM和DSP的可重构数控系统[J].吉林大学学报:工学版,2008,38(4):848-851.
[11] 陈先锋.西门子数控系统故障诊断与电气调试[M].北京:化学工业出版社,2012:1-10.
[12] 徐斌.基于运动控制卡的机械手控制系统研究[J].合肥学院学报:自然科学版,2010,20(3):86-88.
[13] 许青林,解争龙.基于ARM的Linux系统移植研究与实现[J].物联网技术,2013,37(1):37-42.
[14] 李建奇,肖继国,贺盛修,等.基于NURBS插补算法的数控雕刻机控制系统的设计与实现[J].计算机测量与控制,2012,20(13):3 249-3 252.