一种可重配置的开放式结构计算机数控系统
技术领域
本发明属于机械制造领域里的数控机床的控制系统。
背景技术
目前,公知的数控机床控制系统基本属于相关开发商独有的封闭体系结构,其软件和硬件具有紧密的耦合性,以至于难以对原有数控系统进行功能增减或从一种机床数控系统改进(升级)成另外一种机床数控系统。在软件开发方面,由于采用传统的先系统建模后编写程序代码方法,二者难以做到有机地结合,以至于系统模型与最终的程序代码大相径庭。并且系统的验证只能待程序代码编写完毕并在实际系统上运行才能进行。若验证结果不理想还要对系统模型和程序代码甚至硬件进行设计更新,从而显著地增加了产品的研发周期和成本。
对于用户来讲,该封闭结构屏蔽了系统的所有技术细节,只对其提供了有限的功能固定的对外通用控制接口,必须按系统要求选择多是由同一开发商所提供的匹配的外围设备来实现数控机床的构建。一旦系统定型,用户就只能仅仅局限于系统固有的功能和特性,无法进行原有功能的改进和新功能的增加,例如将原有二轴联动车床数控系统重配为三轴联动铣床数控系统,因而使得该数控系统无法适应如今快速变化的市场需求。
发明内容
本发明要解决的技术问题是提供一种可以通过重新配置即能适应不同的加工需求的数控系统。
解决上述问题的技术方案是:首先将数控系统进行功能模块划分,基于模型驱动开发方法,采用统一建模语言和统一建模语言建模软件对这些模块进行建模,然后在软件的实现上定义为类模块,根据数控系统功能的层次关系和关联关系以及实现的需要,进一步把相关的类模块组合而成的更大的具有更加复杂功能的组合类模块,作为组合类的模块还可以包含其它类模块的对象实例,所得到的模型为可执行模型且与由模型自动生成的代码保持同步,统一建模语言建模软件支持由模型到代码的正向工程和由代码到模型的逆向工程,使得系统设计开发与验证处于同一模型抽象层;
所述模块的功能与其行为相分离,通过改变相应模块的状态图来对其功能执行的条件、状态、时序等进行调度,从而实现对模块功能的重用;
所述模块间的通信通过端口进行,而端口则利用其契约抽象接口与人机界面(GUI)和底层硬件设备进行交互,从而实现数控系统应用程序与人机界面的简洁交互以及与硬件的无关性,使相关硬件应用程序符合系统所提供的接口功能要求,以实现与数控系统应用程序的无缝连接;
在模型层通过增减或置换相应的模块实现对系统功能的改变,通过对类模块对象实例数的定制实现同一类模块的多个对象实例的动态生成。
本发明在实际应用中,不同的用户可根据自身实际加工的需要对数控系统所要控制的机床类型、运动轴数、主轴数、外围辅助设备的类型和数量通过人机界面进行选择,即可自动生成所要求的计算机数控系统,加以相匹配的机床本体即可完成不同的应用需求。
本发明具有下述优点:
开发层和用户层能够通过对本系统的重配置使其满足不同的数控车床、铣床、钻床、磨床等多种类型机床的不同加工要求;
经过简单的配置即可实现一个到多个运动轴、一个到多个主轴、一个到多个外围辅助设备的控制应用;
模型驱动开发方法的应用使系统设计开发和验证共处同一模型抽象层,能够实现在底层硬件实现之前即可对系统进行验证并为硬件的具体实施提供重要的指引;待系统在模型层验证成功后再将由模型自动产生的程序代码平滑移植到系统硬件层,从而有力地保证了系统软件的健壮性;
模块化结构设计使得模块能够得到充分的重用;
模块间通过端口(内含契约接口)进行通信,从而确保系统软件实现与硬件的无关性。
本发明对开发商来说,可为不同用户量身定做个性化的数控系统,对用户方来说,则可以通过对本系统的重新配置以适应不同的数控加工需求。
附图说明
图1、本发明实施例计算机数控系统模块构成示意图。
图2、本发明实施例计算机数控系统中主轴的状态示意图。
图3、本发明实施例计算机数控系统的组件实现框图。
图4、用户对本发明实施例计算机数控系统进行配置的流程示意图。
图1中A.控制器类模块,2.数字量输入/输出(IO)设备对象模块,3.机床代码检查器对象模块,4.机床代码解释器对象模块,5.辅助设备协调对象模块,6.模拟量转数字量(AD)设备对象模块,7.数字量转模拟量(DA)设备对象模块,8.运动轴和主轴协调对象模块,9.运动轴对象模块,10.主轴对象模块,11.端口,12.接口,B.表示单一关系,C.表示多重关系。
其中,单一关系表示两个对象模块是一对一关系,多重关系表示对象模块之间是多对多的关系,图1所示对象关系上的“*”号表示该对象可以有任意个相对应的模块实例,对象关系上的“1”表示该对象有1个相对应的模块实例。
具体实施方式
下面结合实施例和附图对本发明作进一步说明。
如图1所示,本例设有
运动轴和主轴协调对象模块8,该对象模块有1个相对应的模块实例:其功能是负责动态创建所需数量的运动轴对象模块9和主轴对象模块10,并协调多个运动轴对象模块(比如X轴、Z轴等)的同步运动控制、主轴的运动控制以及运动轴与主轴的同步控制;
辅助设备对象协调模块5,该对象模块有1个相对应的模块实例:其功能是负责动态创建所需数量的外部辅助设备对象模块,它包括IO设备对象模块2、AD设备对象模块6、DA设备对象模块7,并协调这些模块实现对机床辅助设备的控制;
机床代码检查器对象模块3,该对象模块有1个相对应的模块实例:其功能是负责根据所需机床类型(如车床、铣床等)调用相应的机床代码检查子程序模块;
机床代码解释器对象模块4,该对象模块有1个相对应的模块实例:其功能是负责根据所需求的机床类型(如车床、铣床等)调用相应的机床代码解释子程序模块,并利用端口11通过其契约接口12将相应的子程序模块下载至底层硬件供数控加工中机床代码的实时解释用;
控制器类模块A作为组合类包含上述的各对象模块,负责分别创建单一的机床代码检查器对象模块3、机床代码解释器对象模块4、辅助设备对象协调模块5、运动轴和主轴协调对象模块8,并负责协调其行为。对于开发商可以在该组合类模块内通过增减或置换相应的模块来改变数控系统的功能。
控制器类模块A与外部人机界面和底层硬件设备的交互是通过它们之间的端口利用其对应的契约接口来实现,控制器类模块内部具有端口的对象模块如主轴对象模块10与外部人机界面和底层硬件设备的交互则是通过控制器类模块相对应的端口及接口来实现,不具有端口的对象模块如机床代码检查器对象模块3则由控制器类模块直接进行内部调用。
本发明主轴对象模块的功能与其行为相分离,可通过改变其状态图来对其功能执行的条件、状态、时序等进行调度,从而实现在模块功能不变的情况下的重用。见图2,例如当主轴对象行为处于禁止状态时,若控制器类模块1通过相应端口发出evEnableSpindle事件,即可实现主轴对象模块10进入到使能状态。使能状态内的水平虚线将其分为两个同步状态区域,停止状态和设定主轴倍率状态分别为其初始状态。若此时控制器类模块1通过相应端口发出evMoveCW事件,主轴对象模块10便会使用系统默认的主轴倍率通过相应端口(port)实时调用底层硬件moveCW函数使主轴正转,并进入到正转状态。在主轴处于正转状态时,若控制器类模块通过相应端口同时发出evSpindleRatePlus事件和evMoveCW事件,主轴对象模块10便会通过调用spindleRatePuls函数来更新主轴倍率,并通过设定主轴倍率状态反身转换再次进入到设定主轴倍率状态,与其同步的正转状态也由于evMoveCW事件的触发使得主轴对象模块通过相应端口再次调用底层硬件moveCW函数,从而使主轴以新的主轴倍率设定值实时地实现正转。图1中其它模块功能的调度也是采用状态图来实现。
本实施例内容都是基于模型驱动开发方法,采用统一建模语言对这些模块进行建模,并在模型层对系统进行重配置和验证,通过状态图的变化可以清晰地看到各对象模块所处的状态及所正在执行的功能,从而实现在模型层对数控系统的验证。
见图3,GUI为开放式结构数控系统的可执行人机界面组件,CNC_LIB是由通过验证的系统模型自动生成的函数库组件,二者运行在嵌入式实时操作系统环境之下。Hardware_LIB是实时运行在底层硬件上的硬件函数库组件,GUI通过相应端口对CNC_LIB进行调用,进而CNC_LIB通过相应端口对Hardware_LIB进行调用,从而实现数控机床的控制需求。
图4显示了用户重新配置本数控系统的示意流程图。在用户启动数控系统后,系统通过人机界面显示当然的配置情况(步骤401),并提示用户是否要重新配置该系统(步骤402),若否则生成默认的数控系统(步骤403),若需要重新配置该数控系统,则要求用户通过人机界面进行重新配置(步骤404),包括用户所需机床类型、运动轴数、主轴数、外围辅助设备的类型和数量等内容,进而就可以生成新的符合用户需求的数控系统(步骤405),最后即可运行该数控系统以实现不同的应用需求(步骤406)。