APP下载

一种基于PC全软件多轴运动控制器的实现和测试

2014-03-18石永华华磊

机床与液压 2014年21期
关键词:驱动程序数控系统驱动器

石永华,华磊

(华南理工大学机械与汽车工程学院,广东广州510000)

0 前言

多轴运动控制器的核心功能是对多个电机的联动控制。机器人控制器和机床数控系统都属于多轴联动控制器,数控系统和机器人控制器的发展历史如下:第一阶段为数值逻辑控制阶段,其特征是不具有CPU,依靠数值逻辑实现数控所需的数值计算和逻辑控制(包括第一代电子管数控系统,第二代晶体管数控系统,第三代集成电路数控系统);第二个阶段为计算机控制阶段,其特征是直接引入CPU 控制,依靠软件计算完成数控的主要功能(包括第四代是小型计算机数控系统,第五代是微型计算机数控系统,第六代是PC 数控系统)。

PC 数控系统的发展初期,形成了“NC+PC”过渡型结构,既保留传统NC 硬件结构,仅将PC 作为HMI。代表性的产品包括FANUC 的160i、180i、310i、西门子的840D 等。更加革命性的结构是全部采用PC 平台的软硬件资源,仅增加与伺服驱动及I/O设备通信所必需的现场总线接口,从而实现非常简洁的硬件体系结构。典型的产品包括西门子840DSL、海德汉TNC620、POWER AUTOMATION 公司的 PA8000 NT、国内的大连光洋的 GDS07、GDS09、GNC60、GNC61、华中数控的华中8 型、KUKA 机器人、ABB 机器人等产品[1-2]。

PC 数控系统在操作系统的选择上有以下方案:DOS 操作系统、RT-Linux、Windows +RTS、Windows+ VxWorks、Windows + 实时补丁[3-4]。例如KUKA机器人控制器采用的是Windows + VxWorks 操作系统。可以推断,基于PC 和WINDOWS 操作系统的开放式、模块化数控系统是当今数控技术发展的方向[5]。所以,作者设计了一款基于Windows +实时补丁操作系统的全软件运动控制器。

1 硬件构成

该控制器的硬件核心是通用PC,利用其通用接口完成人机交互;利用USB 键盘、触摸屏和显示器构成示教控制器;以FPGA 芯片为核心设计一款基于PCI 接口的控制扩展卡,扩展卡具有模拟量输入输出、开关量输入输出、电机驱动器控制接口。由此组成一个完整的多轴联动控制器。系统硬件构成如图1所示。

控制扩展卡的原理框图如图2所示。PCI9054 芯片完成PCI 总线的通信协议,并将PCI 总线的数据读写信号转为本地总线的数据读写时序,与FPGA 芯片相连接。FPGA 芯片内部的“PCI9054 接口模块”负责与PCI9054 芯片通信,将读写信号与内部的4 个内存区域相连接。4 个内存区域分别是:输入信息内存、输出信息内存、脉冲内存1 和脉冲内存2。FPGA内部有相关时序逻辑功能,能够对4 个内存区域进行处理,完成脉冲发送、开关量信号输入和开关量信号输出功能。

图1 硬件构成简图

图2 扩展卡原理框图

2 运行原理

PC 采用WINDOWS 操作系统,采用VC ++ 编写操作系统用户模式下的用户应用程序,DDK 编写操作系统内核模式下的设备驱动程序,设备驱动程序控制控制扩展卡,FPGA 芯片的程序采用Verilog 编写。

多轴运动控制器主要实现的功能是执行G 代码等控制器指令。G 代码的一部分功能是判断外部开关量模拟量的状态,然后根据逻辑需要输出开关量和模拟量,另外一部分功能是根据G 代码生成电机脉冲时序,从而控制多个电机的位置。

在该架构中,有两个重要的内存空间,一个是WINDOWS 系统中的X86 内存,另一个是FPGA 芯片里面的内存区域。两个内存空间的的信息存储结构如图3。输入信息区域存储外部输入信息,例如传感器,按钮等输入信息。输出信息区域存储系统产生的输出信息,例如开关量、模拟量输出等。电机脉冲区域存储驱动程序产生的电机脉冲。FPGA 以5 μs 的周期更新其内存与外部设备的信息交互;FPGA 以100 μs 的周期产生中断,使得扩展卡的驱动程序能够以100 μs 的周期循环执行,完成G 代码执行任务,完成一次X86 内存与FPGA 内存的交换更新,并保证FPGA 的电机脉冲缓冲区域被及时更新。每次中断响应,将会执行一条或几条G 代码,X86 内存的电机脉冲缓冲区域存储一条或者几条G 代码指令对应的电机脉冲序列,使得G 代码执行的延迟不超过100 μs。控制器用户程序包含:视窗界面显示模块、G 代码编辑模块。

图3 运行原理简图

值得注意的是,该控制器并不介入电机位置的半闭环或闭环控制,而是把这一任务交付给电机驱动器完成,现在的商业驱动器内部有智能算法,可以很好地完成实际工业控制需求。电机控制框图如图4所示。

图4 电机控制框图

3 响应实时性和计算耗时分析

开关量与FPGA 内存的读写交换时间。设计FPGA 的时钟频率40 MHz,存储周期为200 个时钟信号,即5 μs 可以完成FPGA 内存与外界信息的交换。FPGA 最大可以发生电机脉冲的频率小于10 MHz,足以满足工业应用。

驱动程序中断响应的时间。将控制卡的中断级别设置到设备最高级别,根据文献[6]推断:中断产生到中断响应的延迟一般为几十条指令的时间。估算中断响应延迟时间小于1 μs,文献[7]中的实验也证实了上述推断的正确性。

驱动程序定时器精度。采用DPC 定时器,定时器的响应例程运行与DISPATCH_LEVEL 的IRQL 级别[8],不会被任何普通程序打断,但是可能会被设备中断例程抢占。DPC 例程队列一般存放实时性要求不高的中断响应例程。 DPC 定时器的时钟源实际上认识系统时钟中断推动,系统时钟中断间隔一般为10 ~15 ms[9],所以DPC 定时精度约为10 ~15 ms 左右。

驱动程序将FPGA 内存读入到用户程序数组的时间。主要取决于PCI 接口的速度,接口速度约为133 MB/s,设计FPGA 内存大小为4 Kbyte,则FPGA 内存更新一次数据的时间是30 μs。

用户程序对输入信息的反应时间。采用定时查询法查询输入信息,反应时间约为定时器的精度,定时器的精度与线程调度周期有关。线程调度程序运行在DISPATCH_ LEVEL 级别,线程调度周期约36 ms[10],用户程序对输入信息的反应时间约为36 ms 或更长。

CPU 对电机轨迹的计算能力。用当前工业应用最复杂的六轴机器人的运动学逆解来做测试,即已知末端点的位姿矩阵,求6 个关节角度。在CPU G530@2.4GHz 上做测试,36 s 完成了1 000 000 次求解,平均36 μs 每次求解。如果按轨迹插补间距0.1 mm,计算,该系统可以达到的最快末端移动速度是2 777 mm/s 的速度。系统的其他耗时与之相比较几乎可以忽略。

4 六轴串联机器人运动测试

上述的全软件运动控制器构架现在已经成功实现,并将其运用到串联六轴机器人的控制当中。机器人机械本体自主设计制造,额定负载58.8 kg,工作半径1 650 mm,6 个减速器为国产3 弧分精度谐波减速器,6 个松下伺服电机。

图5 机器人系统

4.1 轨迹几何精度测试

测试过程如下:机械手端夹持一只红色水笔,让机器人从点P1直线运动到点P2,速度设定10 mm/s,距离900 mm。其中通过松下PANATERM 伺服监控软件,抓取机器人行走直线时的伺服驱动器返回的相关波形曲线。水笔所画出来的直线效果如图6。第一轴驱动器的波形曲线如图7。

图6 10 mm/s 走直线

图7 第一轴驱动器的波形曲线

测试结果:

(1)从图6 得出,水笔轨迹精度1 mm。

(2)从图7 得出,控制器指令脉冲序列和理论脉冲序列有着极高的一致性。

(3)从图7 得出,电机驱动器的指令位置最大偏差3 指令单位,等效到机械位移约0.1 mm

另已知该机械本体的机械精度约为1 mm,机器人的轨迹几何精度主要影响因素有:控制器指令脉冲精度、电机驱动器响应性能和机械精度。由此得出结论:该机器人轨迹几何精度主要由机械精度决定;控制器指令脉冲有着极高的准确性;电机驱动器有着较高的响应性能。

4.2 轨迹重复精度测试

图8 “IVU”笔迹截图

测试过程如下:编写一段机器人指令程序,该程序用微小直线段书写“IVU”文字,笔迹移动速度8 mm/s。重复执行该机器人指令程序10 次,观察笔迹的重合度。测试结果如图8。

测试结果:

(1)轨迹重合度1 mm。结论分析:轨迹重合度1 mm 的偏差主要由机械精度产生的。控制器有着较好的稳定性和重复性。

5 结论

综上所述,该系统对外界信息的响应能力中,FPGA 程序响应强于中断响应,中断响应强于驱动程序定时响应,驱动程序定时响应强于用户程序响应。可以根据系统的实时性要求,将控制部分放在不同的层次程序中。该构架将实时性要求不高的工作部分放在用户程序层来完成,例如G 代码的读写保存等,将实时性要求高的部分放在驱动程序层来完成,对外界信息的响应延迟最小可以少于3 μs。G 代码执行的响应延迟不超过100 μs。末端执行器速度可以达到2 777 mm/s 以上。六轴串联机器人进行直线运动的测试结果表明,该控制器构架有良好的性能表现,可以承担对六轴串联机器人等多轴联动设备的控制。

[1]陆启建,刘明灯.网络信息时代发展中国数控技术的几点看法[J].机械工程师,2001(5):53-54.

[2]PARK Sungsik,KIM Sun-Ho,CHO Hyunbo.Kernel Software for Efficiently Building Re-configuring and Distributing an Open CNC Controller[J].International Journal of Advanced Manufacturing Technology,2006,27(7/8):788-796.

[3]郁发新.常用嵌入式操作系统比较分析[J].计算机应用,2006,26(4):761-764.

[4]KAWAKAMI Isamu,NIMURA Yuji,HAMADA Keiichi.Real-time Extension for Windows NT/CE Used for Control Systems[C].SICE2000.Iizuka,Japan,2000:319-324.

[5]宓方伟,陈功福.PMAC 多轴运动控制器应用研究[J].机床与液压,2004(12):129-130.

[6]潘爱民.WINDOWS 内核原理与实现[M].北京:电子工业出版社,2010:311-323.

[7]范剑,潘建峰,白建华.全软件数控系统实时控制研究[J].制造技术与机床,2007(5):45-47.

[8]张帆,史彩成.驱动开发技术详解[M].北京:电子工业出版社,2007:275-276.

[9]尤晋元,史美林.WINDOWS 操作系统原理[M].北京:机械工业出版社,2001:128-129.

[10]孙斌,杨汝清.基于PC 的数控系统的研究现状和发展趋势[J].机床与液压,2001(4):3-5.

猜你喜欢

驱动程序数控系统驱动器
藏起驱动器号确保数据安全
计算机硬件设备驱动程序分析
基于FANUC 32i A数控系统的外部测量设计
西门子840D sl数控系统在SC125大型车铣镗床技术改造中的应用
基于FANUC Oi mate TD数控系统的手动功能开发
数控系统中GUI软件平台设计和实现
压电陶瓷驱动器的迟滞特性
SiC基和Si基永磁同步电动机驱动器的比较
电场调制FeCoSi/PZT驱动器磁性研究
基于MPC8280的CPU单元与内部总线驱动程序设计