基于领域建模的数控系统代码自动生成方法

文档序号:6292605阅读:317来源:国知局
专利名称:基于领域建模的数控系统代码自动生成方法
技术领域
本发明涉及的领域有面向领域建模、嵌入式式数控开发以及源代码自动生 成,特指根据面向数控领域的模型自动生成数控系统源代码的自动化开发方法 和相关工具链。
背景技术
成本、质量以及对市场需求的反应是制造业企业的三大支柱。现代计算机数控(Computerized Numeric Control CNC)系统及相关技术是制造业的基石, 高可靠性、高性价比是当今嵌入式数控系统的重要发展趋势。嵌入式软件系统 与特定硬件环境紧密关联,并且在多数情况下要完成严格规定的任务,导致它 与运行在PC上的软件系统存在很大的差别,它不仅要在功能上保证完全正确, 而且还要满足众多非功能特性的要求,如实时性,可靠性,容错性。实时性要 求系统对外部事件能够立刻做出判断并及时响应,其输出不但要求正确而且要 在规定的时限内完成,否则其输出不但没有任何作用,甚至会引发严重事故或 灾难。可靠性和容错性要求系统能够适应不同的外部环境能够长时间稳定运 行,甚至在某些硬件或软件模块发生错误的情况下,能够自动选择一个纠错策 略进行恢复以使系统继续有效地运行。目前嵌入式数控系统的开发,大都采取 以程序代码为中心的强耦合的过程式开发方法,从而导致系统可维护性差,技 术改进速度慢,开发周期不可预测,跟不上市场需求的变化。软件建模是当前软件工程中的重要方法,但大部分软件模型只作为软件 文档的形式出现,从模型到代码仍需要手工编码来完成。实现从模型到代码的 自动转换一直是软件工程界所努力的目标。Simulink是广泛应用的动态系统 建模和仿真工具,其中的RTW可以根据控制模型自动生成C代码,然而要开 发一个完整的系统,仍然需要手工对这些代码进行补充、粘合。因此,有必要 改进开发方法,以求縮短开发周期,提高幵发效率。发明内容本发明的目的在于克服上述现有技术的缺陷,提供一种基于领域建模的 数控系统代码自动生成方法,以提高嵌入式数控系统的开发效率,减少人工编码的错误率,实现从模型层次的系统快速定制与源代码自动生成过程,即从系 统模型到源代码完全自动化转换,本发明的技术方案为-(1) 首先根据数控领域的系统概念和逻辑,创建数控领域的元模型,形成 该领域的一套建模规则。本发明把建模过程分为三个层次,即元元模型,数控 系统元模型以及数控系统应用模型。元元模型是构建领域元模型的基础设施, 而领域元模型则是构建应用模型的规则,该建模规则具有包容、继承、关联的 描述能力。对数控系统三个模块分别建立元模型,即人机交互模块、可编程逻 辑控制模块、运动控制模块。(2) 建立已创建的数控元模型规则,开发数控系统应用模型的建模环境, 针对不同系统需求建立不同的数控系统应用模型。如用户界面模块,可配置的 部分主要包括界面显示的内容(如加工位置、加工参数的显示等)、操作的按 钮功能(如连续运动、单步运动等),基本功能的配置(如代码编辑、编译、加工模拟等)。PLC模块主要有PLC程序的编辑、输入输出位的设定、以及PLC 代码的解释等。运动控制可配置的内容包括运动轴数量、轴组管理的配置、运 动指令的增减、插补算法的变更、多任务调度的配置等。(3) 根据目标平台及其编程语言类型,确立目标平台的软件框架,软件框 架的组成主要包括功能代码、非功能代码和配置数据。其中功能代码对应于系 统中各个子模块的功能实现,如通信模块、插补算法及其相关的数据变量声明 等,而非功能代码对应于任务管理、任务同步以及任务之间的通信。配置数据 主要为目标开发环境的各种配置参数,并根据这些参数信息自动形成系统配置 文件。(4) 根据数控领域元模型以及目标平台的软件框架,建立从模型到源代码 的映射规则库。不同模型元素映射到不同的功能代码,元素之间的关联关系映 射到非功能代码或配置数据。模型静态结构、关联关系以及领域语义都与目标 源代码具有对应的映射关系,同时也对源代码的组织结构进行规划。如目标语 言为C或C++,则可组织为头文件(.h)、实现文件(.cpp)以及开发环境的配置 文件等类型,不同代码内容分别插入不同类型的文件中。(5) 根据数控领域元模型,开发面向数控领域的领域类库,该领域类库用 于对应用模型中的元素进行访问和遍历。领域类库依赖于领域元模型,元模型 的修改直接影响领域类库的结构,领域类库屏蔽了模型解释器与建模环境的底 层交互细节,使得模型解释器的开发任务主要集中于从模型到代码的转换。(6) 根据已经建立的映射规则库和领域类库,开发面向特定平台的模型解释器。利用模型解释器,对不同的应用模型进行解释,自动生成对应的系统源 代码。源代码通过编译链接,导入硬件平台即运行。与现有技术相比,不发明具有如下优点本发明根据数控领域的系统特征 和模块,建立面向该领域的建模建模和建模环境,根据目标平台类型,确定软 件代码框架和映射规则库,实现从模型到数控系统源代码的自动转换。现有的 开发方式中,系统建模与编码还是相对独立的过程,编码实现主要靠手工来完 成,而本发明所提出的方法及其支持工具实现了从模型到代码的自动化转换, 能够有效縮短数控系统开发周期,节省开发成本,提高开发效率。


图1为本发明基于领域建模的自动化开发过程示意2为本发明数控系统元模型结构示意图 图3为本发明模型解释器的内部结构示意图 图4为本发明从模型到代码自动转换示意图具体实施方式
下面结合附图对本发明方案进一步说明 K本发明提供的基于领域建模的数控系统代码自动生成方法,其整个 开发过程如图l所示。首先建立面向数控领域的元模型,该元模型作为建立数 控应用模型的建模基础。根据数控元模型,开发面向数控领域的建模环境。根 据不同的系统需求,建立不同的数控应用模型。为了从实现从模型到目标平台 的源代码的自动转换,所先确定目标平台类型。根据目标平台类型,确定目标 软件框架,再根据领域元模型及目标软件框架,建立从模型到代码的映射规则 库(如图1所示)。接下来根据元模型建立数控领域类库。该类库和映射规则 库是开发模型解释器的基础。模型解释器通过领域类库访问和遍历应用模型数 据元素,查询映射规则库,最终自动生成源代码或配置文件。2.本发明的数控系统元模型从三个模块分别建立(如图2所示)。系统 基本功能划分为人机交互、PLC模块、运动控制模块三大部分。人机交互包括 分为数据显示、代码编辑、操作模式的更改等功能;PLC分为逻辑控制、输入 输出控制等功能;运动控制模块包括运动准备、轴控制以及运动任务管理等功 能。每个模块都是一个独立的模型视图,而它们之间又通过关联机制相互引用, 其中一个模型视图发生改变,与此视图有关的视图也会随之发生改变,模型之间的保持完整性和一致性。在人机交互模型中,以数控系统的操作模式为主线,分为手轮模式、自动模式、MDI模式、编辑模式、手动模式和回零模式。在各 种操作模式下有着不同的显示面板,人机界面包含各种不同的显示控件,如按 钮、编辑框架等。PLC元模型各种对应的逻辑控制元素,如冷却状态、模式选 择、主轴开关、润滑状态等元素。运动控制模块元素为一个容器实体,包含轴 模块,轴管理,运动命令,以及运动任务等可配置元素。运动控制系统是一个 实时的多任务系统,任务的管理与调度是系统实现核心,运动指令经过轴组管 理模块进行判别,轴管理模块根据运动指令的类型启动相应的任务。创建应用 模型的时候,用户可以根据系统的需求增加轴的数量,相应增加指令类型和运 动任务(如快速移动、连续移动、2D插补、3D插补等),从而达到对不同系统 功能进行快速配置的目的,图2显示了元模型的整体结构。3、本发明中的模型解释器的作用是根据不同的应用模型自动生成目标平 台下的源代码或配置文件。模型解释器的设计是实现自动代码的核心。从本质 来看,模型解释器是一个以模型数据为输入,以源代码文件(或配置文件)为 输出的处理系统。应用模型建立在元模型的基础之上,元模型是一套建模规则, 具有确定性,而目标平台也具有确定的软件框架结构,这些为从模型数据到目 标源代码之间自动转换提供了基础,图2显示了模型解释器的内部结构。首先 根据元模型规则建立领域类库,这些领域类库建立在底层COM组件接口交互的 类库基础之上。通过领域类库,模型解释器对建模环境发出访问请求,建模环 境对模型进行遍历,根据访问请求返回相应的模型数据。通过领域类库获取的 应用模型数据,先暂存在临时内存中,文本生成查询映射规则库,对模型数据 进行分析、处理,最终输出文本到源代码文件。这些文本文件可能是目标开发 环境中的程序源代码,也可能是其配置文件。从以上结构可知,映射规则库是 模型解释器的核心模块。映射规则库建立的根据是元模型的规则和目标开发环 境的代码结构。由于数控系统的硬件平台种类繁多,采用的实时操作系统也有 所不同,所使用的开发环境也随之改变,如面向VxVorks的Tornado开发环境、 面向WinCE的£¥0++开发环境以及面向DSP/BI0S的CCS开发环境。不同目标 开发环境中的代码结构差别很大,甚至采用不同的编程语言,所以面向不同的 开发环境7模型解释器必须建立相应的映射规则库。4、本发明中的模型到源代码自动转换过程中,针对不同系统需求建立相 应的的系统应用模型,可配置的数控系统功能主要包括人机界面的定制、运动 轴数量的更改、轴组管理的配置、运动指令的增减、插补算法的变更、多任务 调度的配置等。系统模型的信息可以分为三大类型,静态结构、关联关系以及领域语义。静态结构主要包括系统中模块的构成极其属性,是系统模型的重要组成部分;关联关系则是各个元素之间的交互情况,如任务的同步关系;而领 域语义则为针对数控领域的参数信息,如运动轴的各种参数,运动任务的周期 等。目标代码的也可以分为三个部分功能代码、非功能代码以及配置数据。 功能代码通常是是一些固定不变的程序代码或变量声明,如通信代码、插补算 法及其相关的数据变量等,这些代码与模型中的元素一般具有静态的映射关 系。非功能代码主要涉及任务调度,包括运行任务管理、任务同步以及任务之 间的通信等,这类代码则根据模型中提供的元素关联信息进行映射。配置数据 的映射主要根据领域语义,分析领域语义中各种参数的类型和意义,以确定目 标开发的各种配置参数,并根据这些参数信息自动形成系统配置文件。转换算 法框架根据事先建立的映射规则库,对以上三种模型信息进行分析综合,査询 映射规则库,生成对应类型的代码,这些代码文件和配置文件则构成最终的系 统完整代码,图4显示了从模型到源代码的转换示意图。
权利要求
1、一种基于领域建模的数控系统代码自动生成方法,实现系统模型到源代码的完全自动化转换,其特征是包括以下步骤(1)根据数控领域的系统概念和逻辑,创建数控领域的元模型,形成该领域的一套建模规则,该规则具有规范的数控领域语法和语义。(2)根据(1)所建立的数控领域元模型,开发数控系统应用模型的建模环境,针对不同系统需求建立不同的数控系统应用模型。(3)根据目标平台的类型,确立目标平台的软件框架,软件框架的组成主要包括功能代码、非功能代码和配置数据。(4)针对(1)所建立的数控领域元模型和(3)所确立的软件框架,建立从模型到源代码的映射规则库。(5)根据(1)所建立的数控领域元模型,开发面向数控领域的领域类库,该领域类库用于对应用模型中的元素进行访问和遍历。(6)根据(4)所建立的映射规则库和(5)开发的领域类库,开发面向特定目标平台的模型解释器,该解释器负责从把数控系统应用模型自动转换为软件源代码。
2、 根据权利要求1所述的方法,其特征在于步骤(1)中元模型是针对 特定的数控领域建模规则,该建模规则具有包容、继承、关联的描述能力,对 人机界面、PLC和运动控制三个模块建立了数控领域的元模型。
3、 根据权利要求1所述的方法,其特征在于步骤(3)中根据目标平台 类型及其编程语言类型,软件框架把源代码主要分为功能代码、非功能代码以 及配置数据,其中功能代码对应于系统中各个子模块的功能实现,而非功能代 码对应于任务管理、任务同步以及任务之间的通信,配置数据对应目标开发环 境的配置参数。
4、 根据权利要求1所述的方法,其特征在于步骤(4)中建立了从模型 元素到目标软件框架的映射关系,不同模型元素映射到不同的功能代码,元素 之间的关联关系映射到非功能代码或配置数据。
5、 根据权利要求1 4中任一项所述的方法,其特征在于步骤(5)中领 域类库依赖于领域元模型,元模型的修改直接影响领域类库的结构,领域类库 屏蔽了模型解释器与建模环境的底层交互细节,使得模型解释器的开发任务主 要集中于从模型到代码的转换。 .
全文摘要
本发明公开了一种基于领域建模的数控系统代码自动生成方法,首先根据数控领域的系统概念和逻辑,创建数控领域的元模型,再针对数控系统的需求,建立系统的应用模型。通过模型解释器把应用模型直接转换为系统源代码,从而实现以模型为中心的自动化开发过程。根据数控系统的三大模块(人机界面、PLC和运动控制模块)分别创建元模型,以元模型为基础,构建应用模型的建模环境。根据目标平台和编程语言的类型,确立目标软件框架,建立从模型到软件源代码的映射规则库,使得建模者能够从模型层次对系统功能进行快速重配置,并自动生成源代码或相关配置文件。该开发方法及其相关支持工具能够有效缩短数控系统开发周期,提高开发效率。
文档编号G05B19/18GK101221424SQ20081002563
公开日2008年7月16日 申请日期2008年1月4日 优先权日2008年1月4日
发明者峰 叶, 张亚超, 迪 李, 江幸波, 肖苏华, 舒兆港, 赖乙宗 申请人:华南理工大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1