CN101221424A - 基于领域建模的数控系统代码自动生成方法 - Google Patents
基于领域建模的数控系统代码自动生成方法 Download PDFInfo
- Publication number
- CN101221424A CN101221424A CNA2008100256347A CN200810025634A CN101221424A CN 101221424 A CN101221424 A CN 101221424A CN A2008100256347 A CNA2008100256347 A CN A2008100256347A CN 200810025634 A CN200810025634 A CN 200810025634A CN 101221424 A CN101221424 A CN 101221424A
- Authority
- CN
- China
- Prior art keywords
- model
- numerical control
- field
- code
- meta
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Stored Programmes (AREA)
Abstract
本发明公开了一种基于领域建模的数控系统代码自动生成方法,首先根据数控领域的系统概念和逻辑,创建数控领域的元模型,再针对数控系统的需求,建立系统的应用模型。通过模型解释器把应用模型直接转换为系统源代码,从而实现以模型为中心的自动化开发过程。根据数控系统的三大模块(人机界面、PLC和运动控制模块)分别创建元模型,以元模型为基础,构建应用模型的建模环境。根据目标平台和编程语言的类型,确立目标软件框架,建立从模型到软件源代码的映射规则库,使得建模者能够从模型层次对系统功能进行快速重配置,并自动生成源代码或相关配置文件。该开发方法及其相关支持工具能够有效缩短数控系统开发周期,提高开发效率。
Description
技术领域
本发明涉及的领域有面向领域建模、嵌入式式数控开发以及源代码自动生成,特指根据面向数控领域的模型自动生成数控系统源代码的自动化开发方法和相关工具链。
背景技术
成本、质量以及对市场需求的反应是制造业企业的三大支柱。现代计算机数控(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为本发明从模型到代码自动转换示意图
具体实施方式
下面结合附图对本发明方案进一步说明:
1、本发明提供的基于领域建模的数控系统代码自动生成方法,其整个开发过程如图1所示。首先建立面向数控领域的元模型,该元模型作为建立数控应用模型的建模基础。根据数控元模型,开发面向数控领域的建模环境。根据不同的系统需求,建立不同的数控应用模型。为了从实现从模型到目标平台的源代码的自动转换,所先确定目标平台类型。根据目标平台类型,确定目标软件框架,再根据领域元模型及目标软件框架,建立从模型到代码的映射规则库(如图1所示)。接下来根据元模型建立数控领域类库。该类库和映射规则库是开发模型解释器的基础。模型解释器通过领域类库访问和遍历应用模型数据元素,查询映射规则库,最终自动生成源代码或配置文件。
2.本发明的数控系统元模型从三个模块分别建立(如图2所示)。系统基本功能划分为人机交互、PLC模块、运动控制模块三大部分。人机交互包括分为数据显示、代码编辑、操作模式的更改等功能;PLC分为逻辑控制、输入输出控制等功能;运动控制模块包括运动准备、轴控制以及运动任务管理等功能。每个模块都是一个独立的模型视图,而它们之间又通过关联机制相互引用,其中一个模型视图发生改变,与此视图有关的视图也会随之发生改变,模型之间的保持完整性和一致性。在人机交互模型中,以数控系统的操作模式为主线,分为手轮模式、自动模式、MDI模式、编辑模式、手动模式和回零模式。在各种操作模式下有着不同的显示面板,人机界面包含各种不同的显示控件,如按钮、编辑框架等。PLC元模型各种对应的逻辑控制元素,如冷却状态、模式选择、主轴开关、润滑状态等元素。运动控制模块元素为一个容器实体,包含轴模块,轴管理,运动命令,以及运动任务等可配置元素。运动控制系统是一个实时的多任务系统,任务的管理与调度是系统实现核心,运动指令经过轴组管理模块进行判别,轴管理模块根据运动指令的类型启动相应的任务。创建应用模型的时候,用户可以根据系统的需求增加轴的数量,相应增加指令类型和运动任务(如快速移动、连续移动、2D插补、3D插补等),从而达到对不同系统功能进行快速配置的目的,图2显示了元模型的整体结构。
3、本发明中的模型解释器的作用是根据不同的应用模型自动生成目标平台下的源代码或配置文件。模型解释器的设计是实现自动代码的核心。从本质来看,模型解释器是一个以模型数据为输入,以源代码文件(或配置文件)为输出的处理系统。应用模型建立在元模型的基础之上,元模型是一套建模规则,具有确定性,而目标平台也具有确定的软件框架结构,这些为从模型数据到目标源代码之间自动转换提供了基础,图2显示了模型解释器的内部结构。首先根据元模型规则建立领域类库,这些领域类库建立在底层COM组件接口交互的类库基础之上。通过领域类库,模型解释器对建模环境发出访问请求,建模环境对模型进行遍历,根据访问请求返回相应的模型数据。通过领域类库获取的应用模型数据,先暂存在临时内存中,文本生成查询映射规则库,对模型数据进行分析、处理,最终输出文本到源代码文件。这些文本文件可能是目标开发环境中的程序源代码,也可能是其配置文件。从以上结构可知,映射规则库是模型解释器的核心模块。映射规则库建立的根据是元模型的规则和目标开发环境的代码结构。由于数控系统的硬件平台种类繁多,采用的实时操作系统也有所不同,所使用的开发环境也随之改变,如面向VxVorks的Tornado开发环境、面向WinCE的EVC++开发环境以及面向DSP/BIOS的CCS开发环境。不同目标开发环境中的代码结构差别很大,甚至采用不同的编程语言,所以面向不同的开发环境,模型解释器必须建立相应的映射规则库。
4、本发明中的模型到源代码自动转换过程中,针对不同系统需求建立相应的的系统应用模型,可配置的数控系统功能主要包括人机界面的定制、运动轴数量的更改、轴组管理的配置、运动指令的增减、插补算法的变更、多任务调度的配置等。系统模型的信息可以分为三大类型,静态结构、关联关系以及领域语义。静态结构主要包括系统中模块的构成极其属性,是系统模型的重要组成部分;关联关系则是各个元素之间的交互情况,如任务的同步关系;而领域语义则为针对数控领域的参数信息,如运动轴的各种参数,运动任务的周期等。目标代码的也可以分为三个部分:功能代码、非功能代码以及配置数据。功能代码通常是是一些固定不变的程序代码或变量声明,如通信代码、插补算法及其相关的数据变量等,这些代码与模型中的元素一般具有静态的映射关系。非功能代码主要涉及任务调度,包括运行任务管理、任务同步以及任务之间的通信等,这类代码则根据模型中提供的元素关联信息进行映射。配置数据的映射主要根据领域语义,分析领域语义中各种参数的类型和意义,以确定目标开发的各种配置参数,并根据这些参数信息自动形成系统配置文件。转换算法框架根据事先建立的映射规则库,对以上三种模型信息进行分析综合,查询映射规则库,生成对应类型的代码,这些代码文件和配置文件则构成最终的系统完整代码,图4显示了从模型到源代码的转换示意图。
Claims (5)
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)中领域类库依赖于领域元模型,元模型的修改直接影响领域类库的结构,领域类库屏蔽了模型解释器与建模环境的底层交互细节,使得模型解释器的开发任务主要集中于从模型到代码的转换。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2008100256347A CN101221424A (zh) | 2008-01-04 | 2008-01-04 | 基于领域建模的数控系统代码自动生成方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2008100256347A CN101221424A (zh) | 2008-01-04 | 2008-01-04 | 基于领域建模的数控系统代码自动生成方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101221424A true CN101221424A (zh) | 2008-07-16 |
Family
ID=39631307
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2008100256347A Pending CN101221424A (zh) | 2008-01-04 | 2008-01-04 | 基于领域建模的数控系统代码自动生成方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101221424A (zh) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102929681A (zh) * | 2012-10-31 | 2013-02-13 | 中国运载火箭技术研究院 | 一种虚拟试验分布式对象模型框架代码自动生成方法 |
CN103235549A (zh) * | 2013-04-08 | 2013-08-07 | 北京信息科技大学 | 可编程序控制器应用程序的自动生成方法及装置 |
CN103984555A (zh) * | 2014-05-29 | 2014-08-13 | 四川航天系统工程研究所 | 一种树表结合驱动特定平台通讯协议源代码自动生成方法 |
CN103995703A (zh) * | 2014-05-29 | 2014-08-20 | 中国航空无线电电子研究所 | 一种基于模型化工具Simulink的软件重构方法 |
CN104111608A (zh) * | 2014-06-28 | 2014-10-22 | 中国北方发动机研究所(天津) | Simulink模型中信号和参数的设置方法及装置 |
CN104950815A (zh) * | 2015-06-29 | 2015-09-30 | 遵义宏港机械有限公司 | 一种数控铣床自动编码系统 |
CN106094561A (zh) * | 2016-05-24 | 2016-11-09 | 哈尔滨工程大学 | 船舶综合电力推进系统建模仿真方法及装置 |
CN106708510A (zh) * | 2016-11-28 | 2017-05-24 | 华南理工大学 | 一种基于图形化组态的工业智能相机软件体系结构及方法 |
CN106970801A (zh) * | 2017-04-18 | 2017-07-21 | 北京思特奇信息技术股份有限公司 | 一种快速构建应用系统的方法及装置 |
CN109542043A (zh) * | 2018-10-31 | 2019-03-29 | 武汉华中数控股份有限公司 | 一种基于插件的数控系统管理方法及装置 |
CN112666894A (zh) * | 2020-12-14 | 2021-04-16 | 广东省科学院智能制造研究所 | 一种代码自动生成的方法及装置 |
-
2008
- 2008-01-04 CN CNA2008100256347A patent/CN101221424A/zh active Pending
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102929681A (zh) * | 2012-10-31 | 2013-02-13 | 中国运载火箭技术研究院 | 一种虚拟试验分布式对象模型框架代码自动生成方法 |
CN102929681B (zh) * | 2012-10-31 | 2016-06-01 | 中国运载火箭技术研究院 | 一种虚拟试验分布式对象模型框架代码自动生成方法 |
CN103235549B (zh) * | 2013-04-08 | 2015-09-23 | 北京信息科技大学 | 可编程序控制器应用程序的自动生成方法及装置 |
CN103235549A (zh) * | 2013-04-08 | 2013-08-07 | 北京信息科技大学 | 可编程序控制器应用程序的自动生成方法及装置 |
CN103984555B (zh) * | 2014-05-29 | 2017-03-15 | 四川航天系统工程研究所 | 一种树表结合驱动Windows/Linux平台通讯协议源代码自动生成方法 |
CN103995703A (zh) * | 2014-05-29 | 2014-08-20 | 中国航空无线电电子研究所 | 一种基于模型化工具Simulink的软件重构方法 |
CN103984555A (zh) * | 2014-05-29 | 2014-08-13 | 四川航天系统工程研究所 | 一种树表结合驱动特定平台通讯协议源代码自动生成方法 |
CN104111608A (zh) * | 2014-06-28 | 2014-10-22 | 中国北方发动机研究所(天津) | Simulink模型中信号和参数的设置方法及装置 |
CN104950815A (zh) * | 2015-06-29 | 2015-09-30 | 遵义宏港机械有限公司 | 一种数控铣床自动编码系统 |
CN106094561A (zh) * | 2016-05-24 | 2016-11-09 | 哈尔滨工程大学 | 船舶综合电力推进系统建模仿真方法及装置 |
CN106094561B (zh) * | 2016-05-24 | 2018-02-27 | 哈尔滨工程大学 | 船舶综合电力推进系统建模仿真方法及装置 |
CN106708510A (zh) * | 2016-11-28 | 2017-05-24 | 华南理工大学 | 一种基于图形化组态的工业智能相机软件体系结构及方法 |
CN106970801A (zh) * | 2017-04-18 | 2017-07-21 | 北京思特奇信息技术股份有限公司 | 一种快速构建应用系统的方法及装置 |
CN109542043A (zh) * | 2018-10-31 | 2019-03-29 | 武汉华中数控股份有限公司 | 一种基于插件的数控系统管理方法及装置 |
CN112666894A (zh) * | 2020-12-14 | 2021-04-16 | 广东省科学院智能制造研究所 | 一种代码自动生成的方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101221424A (zh) | 基于领域建模的数控系统代码自动生成方法 | |
Drath et al. | AutomationML-the glue for seamless automation engineering | |
Suh et al. | Architecture and implementation of a shop-floor programming system for STEP-compliant CNC | |
Rauch et al. | An advanced STEP-NC controller for intelligent machining processes | |
EP2169547B1 (en) | Compilation model for programmable logic controllers (PLC). | |
Xu* et al. | STEP-compliant NC research: the search for intelligent CAD/CAPP/CAM/CNC integration | |
WO2019076233A1 (zh) | 一种智能车间快速定制设计方法及系统 | |
US7660638B2 (en) | Business process execution engine | |
Xu et al. | STEP-NC and function blocks for interoperable manufacturing | |
CN100465838C (zh) | 一种基于多cpu并行处理技术的开放式数控系统 | |
US20070073426A1 (en) | Editing and configuring device | |
Cha et al. | A roadmap for implementing new manufacturing technology based on STEP-NC | |
CN1527984A (zh) | 用于工业自动化服务的数据库系统和方法 | |
CN102999322A (zh) | 一种工业控制器软件界面设计方法 | |
CN105807628A (zh) | 用于复杂cps的机器人柔性控制器及其实现方法 | |
CN102012673A (zh) | 复杂反应型系统控制器设计方法 | |
Angione et al. | Integration and deployment of a distributed and pluggable industrial architecture for the perform project | |
CN101673106B (zh) | 一种制造数字控制信息的应用软件系统与方法 | |
Li et al. | A model based integration framework for computer numerical control system development | |
CN101206468B (zh) | 一种计算机数控领域的建模方法 | |
López-Ortega et al. | A STEP-based manufacturing information system to share flexible manufacturing resources data | |
Hamilton et al. | Implementing STEP-NC: Exploring possibilities for the future of advanced manufacturing | |
Yusof et al. | Interoperable CNC system for turning operations | |
Rauch et al. | A STEP-NC approach for multi-process manufacturing, simulation and optimisation | |
Liu et al. | Development of a novel component-based open CNC software system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Open date: 20080716 |