高 聪
(黄河水利职业技术学院,河南 开封 475004)
传统的运动控制系统大多数都是封闭式结构,其控制软件的兼容性差、容错性弱、可靠性低[1]。 伴随着科学技术的进步, 这些运动控制系统已难以满足当今机械加工行业的发展要求[2]。因此,研究和开发高性能运动控制系统具有重要意义。
随着计算机技术和集成电路技术的快速发展,开放式结构广泛普及并强劲发展。 而开放式结构的发展为运动控制系统积累了经验, 创造了良好的前提条件。 智能化的运动控制系统成为运动控制系统的发展方向[3]。由于目前单片机的广泛普及,采用运动控制器的数控系统将成为数控技术的发展趋势。运动控制器直接发出运动控制指令, 驱动设备接收指令,并且根据指令向主轴发出运动控制信号。这种开放式运动控制器已占据运动控制系统设计方案的主导地位[4]。 为了解决实际工程问题,笔者采用PIC24FJ256DA210 单片机和MCX314AL 运动控制芯片设计了一套四轴伺服控制器[5-6]。
该控制器通过PIC 单片机对MCX314AL 的WR0-7 模式寄存器进行读写操作,以控制MCX314的输出状态,从而实现2/3 轴插补、圆弧插补、直线加减速、S 曲线加减速、外部脉冲驱动、限位原点检测、急停检测等功能。 它还可将输出脉冲送至松下脉冲型伺服驱动器,带动伺服电机完成控制系统功能[7]。 运动控制系统结构图如图1 所示。
图1 运动控制系统结构图Fig.1 Structure of motion control system
微控制器PIC 单片机与专用运动控制芯片MCX314AL 的接口设计是运动控制器设计的关键。MCX314AL 和PIC24FJ256DA210 两个芯片之间的16 根数据线须对应相接。 由于专用运动控制芯片内部没有用电阻拉高,所以在相接时,需要先用高阻抗将数据线拉高到+3.3V, 再将MCX314AL 芯片的H16L8 引脚、TESTN 引脚置高。 MCX314 采用16 位数据总线的模式,所以地址线只用到A0、A1、A2,将它们分别与单片机的地址线PMA0、PMA1、PMA2 连接。 PIC 单片机的读写操作与MCX314AL 的RDN和WRN 连接。 另外, 为了设计MCX314AL 硬件中断,将MCX314AL 的中断引脚INTN 置于高位后,与PIC 单片机的中断信号INT0 连接。 PMCS1 与MCX314AL 片选 CSN 相连。 PIC 单片机与MCX314AL 的总线接口设计如图2 所示。
图2 PIC 单片机与MCX314AL 的总线接口设计图Fig.2 Design of bus interface of PIC MCU and MCX314AL
MCX314AL 实现四轴控制 (X 轴、Y 轴、Z 轴、U轴),其信号驱动接口电路设计如图3 所示。
图3 MCX314AL 信号驱动接口电路设计框图Fig.3 Design of MCX314AL signal driver interface circuit
MCX314AL 芯片各个轴模块中均有2 个脉冲输出引脚, 与X 轴相对应的引脚为XPP/PLS 和XPM/DIR,其输出脉冲有CW/CCW、Pulse/DIR2 种模式。 在CW/CCW 模式下,正方向驱动时,驱动脉冲从XPP输出; 负方向驱动时, 驱动脉冲从XPM 输出。 在Pulse/DIR 模式下,XPP 输出驱动脉冲,XPM 输出方向信号。 输出脉冲模式的选择可以通过内部寄存器WR2 的D6 位来完成。
2 个轴的脉冲输出信号XPP、XPM 和YPP、YPM通过数字隔离器ADUM1412 隔离,而后由差分驱动芯片AM26LS31 输出差分信号XPP+/XPP-、XPM+/XPM-和YPP+/YPP-、YPM+/YPM-。 在差分输出的信号接口上,都并联一个压敏电阻,用于防止外部高压脉冲引起输出电路的损坏,保护敏感的电子组件。输出的差分信号被送到伺服驱动器,经过功率放大,驱动伺服电机运动。MCX314AL 中部X、Y 轴脉冲输出接口电路设计如图4 所示。
图4 脉冲输出接口电路设计图Fig.4 Design of pulse output interface circuit
当左右限位开关中的某一个发生动作时, 相应的XLMT+或XLMT-信号为有效低电平, 经光电耦合器TLP121 后, 进入到运动控制芯片的硬件限位信号(XLMTP、XLMTM)输入引脚,停止脉冲的输出。采用光电耦合器可以有效地防止干扰从过程通道进入运动控制卡。 光电耦合器TLP121 的主要优点是,能有效抑制尖脉冲及各种噪音干扰, 从而使过程通道上的信噪比大大提高。 超程限位开关信号接口电路设计如图5 所示。
图5 超程限位开关信号接口电路设计图Fig.5 Design of interface circuit of over-travel limit switch signal
在闭环控制中, 当控制电路向电机发出理论控制脉冲后, 前端编码器能够将实际脉冲数反馈给控制电路。 反馈的编码器信号将nECAP、nECAN、nECBP、nECBN、nIN0P、nIN0N 分别对应连接到编码器A、/A、B、/B、Z、/Z 信号输出端。 同时,在信号的输入端,增添了高速光电耦合器PC9D10,进行电气隔离。 编码器接口电路设计如图6 所示。
图6 编码器接口电路设计图Fig.6 Design of encoder interface circuit
软件设计可以分为PIC24FJ256DA210 与PC 机之间的通信和PIC24FJ256DA210 对MCX314AL 的控制2 部分。
在系统通电之后, 开发板上固有的初始化程序开始执行(比如存储器空间的定义和中断的初始化等),接着要执行C 语言编制的主程序。 如果主程序运行中断,可判断是否调用驱动程序。 如果不调用,程序再次等待, 直到调用开始, 给驱动器发出电信号。电机运转之后,位置检测装置立刻开始检测电机是否正常运转。如果电机不能够正常运转,就让信号返回驱动器,而后进行差补处理;如果电机能够正常工作,则直接由电机带动执行机构做下一步工作,继而开始执行结构工作的判断。如不能正常工作,就返回到主程序进行异端处理;如能正常工作,则返回驱动器进行下一次的循环。系统工作流程如图7 所示。
图7 系统工作流程Fig.7 System work flow
MCX314AL 可以按S 形曲线和梯形曲线进行加/减速设置。 用户根据电机性能和负载情况,在人机界面的参数设置中,进行加/减速参数设置。 在进行直线插补之前, 系统软件根据参数判断是否需要进行反向间隙补偿。在执行直线插补时,系统软件根据给定的速度和位移量,在MCX314AL 相应寄存器中写入控制命令。 直线插补程序流程如图8 所示。
图8 直线插补程序流程图Fig.8 Linear interpolation program flow
MCX314AL 提供了圆弧插补功能。 系统根据指令的位置和速度,向MCX314AL 写入相应的控制命令。 MCX314AL 对圆弧插补提供了自动加速功能,但减速点需要根据MCX314AL 的性能在软件中进行专门的处理。由于设计者的算法不同,补偿效果也不同,因此圆弧插补要比直线插补复杂得多。圆弧插补程序流程如图9 所示。
图9 圆弧插补程序流程图Fig.9 Circular interpolation program flow
连续插补是执行一系列插补的过程, 例如直线插补、圆弧插补、直线插补……,且在此过程中,没有停顿,连续地输出脉冲。 要执行连续插补,微处理器必须在上一条插补命令执行完之前,向MCX314AL中写入下一条插补命令。 连续插补流程如图10 所示。
在进行连续插补时,如果主状态寄存器RR0 的D9 位是1,MCX314AL 将准备就绪接收下一个指令; 如果D9=0, 单片机将不能把插补指令送到MCX314AL 中。所谓的标准的连续插补过程应该是,写入插补参数和命令后,检查主状态寄存器RR0 的D9 位是1 还是0,若D9 位是1,执行写入的命令;若D9 位不是1,则重复写入命令,并检查D9。
图10 连续插补程序流程图Fig.10 Continuous interpolation program flow
本文设计的独立运动控制器以PIC 单片机为信息处理平台,对MCX314 专用运动控制芯片进行读写操作。MCX314 具有高精度的复杂运动控制算法,程序易于实现,工作性能可靠,接口相对简单,给运动控制系统设计带来极大的方便。 通过PIC 单片机对MCX314 的WR0-7 模式寄存器进行写操作,控制运动控制芯片MCX314 的输出状态,其控制信号可输送至松下伺服电机, 进而实现四轴伺服运动控制。 该伺服控制器具有运动轨迹控制准确、信息处理能力强、开放程度高、通用性好的特点,可广泛应用于机器人、数控机床加工等领域的复杂运动控制系统。