2.2驱动模块
构建驱动模块实际上就是构建电火花加工机床专用硬件的实时驱动方式。驱动模块需要把专用硬件状态信息(如进给信号、回退信号、抬刀信号、限位状态和热保护状态等)实时地输入给实时控制模块,同时还需要把实时控制模块的驱动信息实时地输出给专用硬件,如轴号、运行方向和脉冲信号等。为了保证和增强数控系统的实时性,应选择一个最为合理的实时驱动方式,使输入和输出信息能以最快的速度输送到指定目标。
外部硬件都有自己固定的物理内存地址,无论输入还是输出都需要通过该物理内存地址进行传输,因此提出了内存映射法,以在驱动模块中构建硬件实时驱动方式。内存映射法就是在内存中按照外部硬件物理内存的大小开辟一块缓存区,并将缓存区和外部硬件物理内存建立起一一对应的映射关系,这样对缓存区的输入和输出操作就相当于对外部硬件物理内存进行直接操作。
在内存中开辟一块交换缓存区,将专用硬件的物理地址全部映射到该缓存区上,这样对该缓存区进行的输入和输出操作实际上就是对专用硬件进行输入输出操作。实时控制模块向交换缓存区发送驱动信息以驱动专用硬件,专用硬件向交换缓存区发送状态信息以供实时控制模块读取,保证了整个数控系统和专用硬件的交互具有非常强的实时性。驱动模块的驱动方式如图6所示。
2.3 用户管理模块
用户管理模块为用户提供GUI来完成人机交互。GUI包含许多功能模块,用户可以利用这些功能模块对电火花加工机床进行操作。GUI应用Linux下著名的开发工具Qt和Kdevelop共同开发完成。图7所示为开发完成的五轴联动电火花加工数控系统GUI主界面。
2.3.1 图形用户界面
GUI主界面包含三大模块,即信息显示模块、电参数显示及调整模块和功能按键模块。
信息显示模块包含坐标信息显示、程序显示和辅助信息显示,用户可以通过这些信息来了解当前机床的运行信息和加工信息,并根据这些信息在必要的时刻做出调整。电参数显示及调整模块包含参数功能按键及参数值显示两部分,在加工过程中用户可通过该模块快速地调整某些电参数值来调节加工状态。功能按键模块包含如下一些功能按键:开始加工、停止加工、暂停加工、恢复加工、轨迹回退、坐标移动、定位、手动加工、文件加工、加工履历、机床参数、加工条件和系统退出。其中坐标移动、定位、手动加工和加工履历等功能是真正应用于生产实践和产品化的数控系统所特有的,是实验性质的数控系统所不具备的。
2.3.2 用户管理模块内部结构
采用线程一处理器模式构建用户管理模块内部结构,能够将复杂的管理任务归类,使其清晰且易于管理。内部结构核心部分为控制线程,它是一个非实时线程,负责执行用户命令和收集实时控制模块发送的控制状态。处理器包括刀具半径补偿器、解释器、实时命令处理器和非实时命令处理器。刀具半径补偿器负责执行刀具半径补偿;解释器负责从NC文件中分离出G代码并将其转换成NC命令;实时命令处理器负责处理实时命令;非实时命令处理器是若干个非实时命令处理器的统称,负责处理非实时命令。
当一个用户命令到达时,控制线程首先调用刀具半径补偿器,刀具半径补偿器调用解释器从NC文件中获取NC命令。如果有需要进行刀具半径补偿的NC命令,则刀具半径补偿器进行刀具半径补偿。补偿完毕后,解释器逐一对每个命令进行判断,如果命令属于非实时命令,则解释器调用相应的菲实时命令处理器在用户管理模块内执行该命令;如果命令属于实时命令,则解释器调用实时命令处理器,实时命令处理器通过用户管理模块和实时控制模块之间的通信将该命令传递给实时控制模块。图8所示即为用户管理模块内部结构。
2.4模块间通信
用户管理模块、实时控制模块和驱动模块三者之间的通信非常重要,难点在于如何选定出色的通信方式。出色的通信方式能够增强整个数控系统的实时性能,进而保证系统能够稳定、可靠地运行。图9所示为三个模块间的通信方式。
2.4.1 用户管理模块与实时控制模块间的通信
根据用户管理模块与实时控制模块之间各个通信的自身特点,将其分为参数通信和命令通信两类。其中,参数通信是双向的,用户管理模块向实时控制模块传递控制参数,如高速运行速度、加工速度、抬刀速度和软限位等;实时控制模块向用户管理模块传递状态参数,如运行状态、加工效率、加工进程和专用硬件输入状态等。命令通信是单向的,即用户管理模块向实时控制模块传递实时任务命令。