系统类图是系统设计阶段关键一环,是实现用例的逻辑解决方案。将整个系统作为功能对象的集合,借助UML包的概念,将系统功能对象进行分类别、分层次描述,从而形成包图。包是类对象组,可以进一步对包中的类进行类属性和类方法的识别,并最终得到完整的系统类图,为下一阶段的系统实现提供保障。
通过将分析类转化为系统实现过程中所需的设计类,可以得到系统的设计类图。仍以自动方式下程序运行操作用例为例,得到实现该用例所需要的设计类图5。该设计类图中的类主要完成人机界面交互操作、NC程序解析处理、NC程序译码结果存储写固高控制器缓冲区)处理,I/O状态变量读取与显示操作和加工信息界面显示处理功能。其中,CNuinCnntrnLApp是主线程类,由CNumContmlDlg类实现并完成界面操作及其信息显示功能;NCfaode类是Nf;程序解析类,通过CNumCanntrnlDlg类提供的界面操作进行程序的自动解析及运行处理。在处理过程中调用I/O处理线程的处理结果,并通知CNumCnntrnlDlg类进行显示处理。
3 系统界面实现
根据所设计的系统框架模型和UML分析所得到的系统设计类,利用UML支持工具Rational Rose生成了软件系统的主要框架C++语言代码。选用VC++面向对象编程工具进行了具体的界面实现。
首先,根据系统设计类图的描述进行CNnmContmlDlg类的实现。该类是系统功能实现的主类,在实
现过程中,可以调用译码线程进行NC程序解析,并通过译码线程调用I/O接口线程完成对I/O状态的监控,然后实现与其有直接依赖关系的6个子类。在具体实现CCNCaProGTProg类时,必须限制固高控制器硬件缓冲区的最大容量,否则容易产生运行异常。译码线程的实现主要依靠CSourceCde类、ProgrameLine。类和CNCFile类等5个系统设计类。
CNumfanntrnlDlg类所实现的主界面如图6所示,同时系统的初始状态配置为系统回零状态。在主界面上有两类功能按钮,一类是位于界面底端的主功能按钮,操作者可以通过主功能操作按钮进行相应的程序加工、程序管理、参数配置等操作;另一类是侧面竖排的子功能按钮,操作者必须在选择了主功能后才能进行相应的子功能操作。为了提高人机交互的效率,NC程序运行状态、位置信息、加工工艺信息和报警信息均按类别分区显示在主界面上,这有利于操作者在加工过程中准确做出响应。
系统的程序加工主功能按钮是操作者控制机床进行加工的主要操作按钮。它的子功能按钮是按照加工方式实现的,主要包括点动加工方式、连续运动方式、手轮方式、MDI方式和自动加工方式等。每一个子功能按钮均对应主界面的相应显示项,如点动方式界面见图7。
系统的程序管理主功能按钮是对系统程序管理类的实现,主要负责程序编辑、删除、创建及存储等工作,如图8。
操作者通过程序管理子功能按钮实现具体的程序管理工作,如:创建一个新程序,操作者仅需要选择“新程序”子功能按钮,同时在出现的新对话框中输入所要创建的程序的名字,就可以方便地在系统程序管理主界面建立该程序,然后双击该程序名便可进入程序编辑界面进行NC程序输入和编辑。在程序创建完毕后进行保存操作。
系统的参数配置主功能包括刀具参数设置图9和系统参数配置图10,主要完成NC程序加工前的刀具半径补偿、零点偏置、用户参数设置以及与系统有关的伺服功能参数、主轴参数和I/O信息的配置。
4 结语
本文针对具体的开放式数控软件系统进行了功能需求分析,设计了一种适用于NC嵌入PC型的开放式数控软件系统框架模型,该模型为该开放式数控软件系统的开发提供了功能框架和实现机制。
利用统一建模语言UML及Ratinnal Rose工具为具体系统建立了各种静态和动态视图,描述了系统的功能需求、实现流程、设计类图及其交互关系,完成了系统框架模型的需求分析、总体设计、模块设计和详细设计。有效地降低了数控软件系统开发的复杂性和设计人员之间对系统理解的偏差,提高了该数控软件系统设计的一致性、完整性和系统开发的质量和效率。