基于UML的一种开放式数控软件系统建模与界面实现研究

来源:互联网

点击:1449

A+ A-

所属频道:新闻中心

关键词:开放式 数控软件 数控系统

      本文在对上海电气中央研究院三轴铣削数控系统需求分析的基础上,结合固高运动控制器GE-300SV的功能实现,提出了一种适用NC嵌入PLC型的开放式数控软件系统框架模型。采用统一建模语言UML来描述系统的功能需求、总体设计、模块设计等,并建立了各种功能视图,有效地对开放式数控软件系统进行了建模,并通过面向对象编程语言VC++实现了该系统的接口界面。

    1 基于UML的建模方法及其在开放式数控软件系统开发中的应用优势

      1.1 基于UML的建模方法

      面向对象技术是软件工程领域的重要技术。UML是由美国Ratianal公司的三位软件工程师发起并实现的标准建模语言。CTML建模采用的是一种图形表示法,它定义了建模语言的文法,并通过元模型对语言中的基本概念、术语和表示方法给出了统一的较为严格的定义和说明以及这些概念的准确含义,充分体现了面向对象技术的封装、继承与多态等特点。UML在融入软件工程领域的面向对象技术的基础上,不仅支持面向对象的分析与设计,而且还支持从需求分析开始的软件开发的全部过程。UML利用可视化的框图来描述系统的功能实现,为开发者提供了从不同角度去观察和展示系统各种功能和行为特征的有效方法。

      基于UML的建模方法就是在需求分析的基础上提取出未来系统中的实体对象,使用UML的状态视图来描述每个实体对象的状态变化及其相关事件;建立实体对象及其相关事件的动态时序视图,用以描述实体对象间的消息传递。通过状态视图可以明确系统功能对象的具体活动、行为条件等,而顺序视图则表现了消息传递的时序性。两者结合可以有效建立系统实现的类图及其交互关系,提高了系统实现的透明度和可靠性。

      1.2 UML在开放式数控软件系统开发中的优势

      由于开放式数控软件系统的开发涉及到系统硬件功能的实现,包括译码、插补、位置和轨迹控制、线程间通信及I/O状态监控等功能,因此,需要明确系统的各功能对象的具体行为和交互关系。UML所提供的模型管理视图可以有效地将上述功能进行可视化模型描述。通过模型管理机制,开发者可以将各个模型元素合理地分配到各个不同层次的包,从而对系统中各功能对象间的关系在不同层面上进行全面描述,有效地提高了系统设计的可读性和可维护性。UML的这种面向对象的层次化、模块化建模机制非常适合于开放式数控软件系统的开发,一方面通过层次化、模块化建模可以保证软件系统的开放性;另一方面UML可以将系统中的各个功能对象用可视化的框图加以描述,增强了系统功能的透明度,有利干提高系统开发的质量和效率。

      另外,UML的支持工具Ifatinnal Pose软件为IJIVIL的实现提供了强大的集成操作环境,同样为开放式数控软件系统的开发提供了高效可靠的实现手段。

    2 利用UML对NC嵌入PC型开放式数控软件系统进行分析与建模

      2.1 系统需求分析

      系统需求分析就是要对开放式数控软件系统的功能模块和结构模型进行分析,从系统参与者的角度,明确系统所能提供的具体功能。对于开放式数控软件系统而言,系统参与者代表了与系统有接口行为的人或事物,是代表某一特定功能的角色。参与者是虚拟的概念,可以是软件的使用者机床操作者),也可以是外部系统或设备(I/O接口)。

      围绕上海电气中央研究院对开放式三轴铣削加工数控系统研发的目标,对其数控软件系统进行了详细的功能需求分析。

      (1)该系统是基于固高运动控制器的NC嵌入PC型开放式数控系统,必须保证软件系统的模块化和开放性。

      (2)创该系统能够实现自动程序加工方式和MDI加工方式,并在人机界面上显示相关的加工位置信息、速度信息、刀具信息、进给信息、加工时间、报警信息及I/O状态信息。

      (3)该系统能够实现JOG运动控制方式、连续运动控制和手轮控制运动方式等。

      (4)用户可以通过该系统控制机床实现基本的直线/圆弧插补功能,并保证机床运行可靠和稳定。

      (5)必须提供机床操作者一个操作简便、响应适中且人性化的人机接口界面。

      (6)应该具有程序管理功能,如:程序修改、删除以及新程序建立并存储等功能。

      (7)应具有参数管理和配置功能,如:系统参数配置、刀具参数设置,坐标系参数设置等功能。

      (8)必须具有功能可扩展、可重构等特点。

      (9)必须具有完全的自主知识产权。

      根据以上对系统的功能需求分析,采用固高公司国产运动控制器,提出并设计了该数控软件系统的总体框架模型,如图1所示。

      该开放式数控软件系统主要完成人机交互和译码功能,由嵌入式运动控制器(GE-300SV)完成插补和位置轨迹控制功能。系统人机界面主要完成系统运行的数据显示、加工运行状态显示、I/O状态监控和报警功能。机床操作者通过人机界面对系统进行操作控制,系统维护员可以通过人机界面进行系统参数维护。系统的译码线程是一个虚拟对象,主要完成对NC程序的译码工作。通过UML的用例视图图2可以清楚地描述上述系统框架模型和系统的具体功能需求。系统用例图描述了不同参与者的具体行为及其流。程。例如:机床操作者通过人机交互用例可以实现对系统的运行操作、参数设置操作和程序管理操作等3个子功能行为。同样,机床操作者通过系统运行操作用例可以实现诸如自动加工方式、连续运动方式等多种方式的加工用例行为,从而为开发者清楚地描述了所需要实现的功能类型和实现路径及其相关对象。

      2.2 系统用例描述

      用例图中的每个用例都是从用户的角度来描述的系统的具体功能,都代表了使用系统的不同方式并完成产生不同的结果。为了能够描述用例的具体行为,每一个用例可以再进行详细的用例事件行为)说明。下面仅以人机交互用例的一个具体用例事件自动方式运行加工操作来说明其功能行为及流程。首先,对该用例做一个简要描述:

      (1)该用例实现的前提条件。系统已经正常启动并使该用例处于可执行状态。

      (2)该用例的事件流程为:

      ①操作者通过人机界面选择进入自动方式子界面。

      ②操作者选择程序管理功能项进入程序管理子界面。

      ③操作者选择相应程序后返回自动程序运行子界面。

      ④操作者根据系统提示进行下一步操作。

      ⑤系统显示各种数据及程序运行状态信息。

      ⑥该程序正常运行完毕,系统提示操作者执行下一步。

      ⑦系统恢复初始状态,该用例结束。

      对应于该用例事件的UML活动可用图3来表示。

      2.3 系统顺序图

      系统顺序图描述了参与者与系统之间的交互事件、事件发生的顺序以及系统对象之间消息传递的时序,展示了机床操作者与系统之间的交互行为和流程。通过对系统用例的分析,可以将整个系统分解到不同的子运行场景,从不同的角度分析和评价系统框架模型的合理性。子运行场景是指用UMLL的顺序图描述的具体用例事件的发生流程和对象间消息传递的时序。消息的类型及其传递的顺序是系统顺序图描述的核心,建立顺序图的前提就是利用UML的模型单元分组机制将系统按功能对象进行分解。

      本系统的功能对象主要分布在3个不同的线程中,分别是系统主线程、NC程序解析线程和固高板块接口线程。将功能对象与具体用例事件在3个主要线程中的实现用系统顺序图进行描述可以有效表达功能对象间消息的交互,从而提高系统开发的可操作性。整个系统的功能对象之间的消息交互可以由自动方式执行顺序图、MDI方式执行顺序图、点动方式运动控制顺序图和连动方式运动控制顺序图等8个系统顺序图进行描述。限于篇幅,现仅以自动方式执行用例事件来建立自动方式执行顺序图图4,以便与自动方式用例活动图相对应来说明在自动方式下机床操作者与系统之间的交互以及系统对象间的消息传递情况。系统功能对象以分析类的形式出现,是对系统模型中问题域事物的描述,不同于软件设计中的类。

      2.4 系统设计类图

      系统类图是系统设计阶段关键一环,是实现用例的逻辑解决方案。将整个系统作为功能对象的集合,借助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工具为具体系统建立了各种静态和动态视图,描述了系统的功能需求、实现流程、设计类图及其交互关系,完成了系统框架模型的需求分析、总体设计、模块设计和详细设计。有效地降低了数控软件系统开发的复杂性和设计人员之间对系统理解的偏差,提高了该数控软件系统设计的一致性、完整性和系统开发的质量和效率。

    (审核编辑: 智汇张瑜)

    声明:除特别说明之外,新闻内容及图片均来自网络及各大主流媒体。版权归原作者所有。如认为内容侵权,请联系我们删除。