关键字:嵌入式数控系统; 构件; 软件复用
现代数控系统高速化、智能化、网络化、集成化、开放化的特征使得基于单片机开发的数控系统已经不适应于现代数控的发展和需求。而基于PC的数控系统,因其在结构和性能上的通用性,其在现代数控系统的应用优越性并不明显。另一方面,随着微电子技术的发展,作为嵌入式系统硬件载体的微处理器的可靠性和应用水平越来越高,其所集成的部件越来越多,功能也越来越强大,不仅功耗越来越低而且和模拟电路结合越来越多。嵌入式微处理器与PC系统之间的距离越来越小,在一些场合的应用优势越来越大。同时,嵌入式微处理器和嵌入式系统所具备的结构紧凑性,功能上的高可靠性、集成性、实时性,对恶劣的工作环境高适应性,以及统一的编程界面,强大的网络通信能力,这些都很好的满足了现代数控的需求。
嵌入式软件是嵌入式系统的灵魂,负责嵌入式系统全部资源的分配、调度和控制。嵌入式系统的发展重在嵌入式软件的发展。但是长期以来基于生命周期的软件开发技术本身的缺陷长期困扰着嵌入式软件开发人员,比如:整体开发周期长,模块化程度低,可复用性差,可移植性差,维护成本高等。因此,缩短软件开发周期、降低开发和维护成本、提高软件质量是嵌入式软件开发人员的迫切要求,也是嵌入式软件适应今天嵌入式技术飞速发展、应用领域急速扩大的要求。
软件复用正是提高软件质量和开发效率的有效方法,是当前软件开发研究的热点之一。软件复用主要是基于构件的开发(Component-Based Development,简称CBD)或基于构件的软件工程(Component-Based Software Engineering,简称CBSE)。它是一种软件开发新范型,是在一定构件模型的支持下,复用构件库中的一个或多个软件构件,通过组合手段高效率、高质量地构造应用软件系统的过程。本文通过研究嵌入式数控系统的特点,提出了一种适应其特点的构件模型。
1. 构件的基本概念
OO技术是在“数据+算法”的基础上提升了对事物的认识方法。对象的概念符合人们认识世界的习惯, 而构件的思想则更多地将重点从建模本身发展到对软件生产的考虑, 即构件可以在应用领域的软件生产中作为零件纳入新的体系中被重用。 因此,构件是OO思想的沿袭和扩展,认识事物的角度从对象个体本身上升到个体在群体中的作用。
构件有如下几个基本属性:
1) 构件是可独立配置的单元,因此构件必须自包容。
2) 构件强调与环境和其他构件的分离,因此构件的实现是严格封装的,外界没有机会或者没有必要知道构件内部的实现细节。
3) 构件可以在适当的环境中被复合使用,因此构件需要提供清楚地接口规范,可以与环境交互。
4) 构件不应当是持续的,即构件没有个体特有的属性,理解为构件不应当与自身副本区别,在任何环境中,最多仅有特定构件的一份副本。
理论上,一直没有停止对构件模型的争论,有代表性的理论模型包括:
(1)3C模型
3C模型是学术界普遍认同的一个具有指导性作用的构件模型。该模型从概念(concept)、内容(content)和语境(context)三个不同方面来描述构件。
u 概念 关于“构件做什么”的抽象描述,可以通过概念去理解构件的功能。概念包括接口规约和语义描述两个部分;
u 内容 概念的具体实现,描述构件如何完成概念所刻划的功能;
u 语境 构件和外围环境在概念级和内容级的关系。语境刻画构件的应用环境,为构件的选用和适应性修改提供指导。
(2)REBOOT模型(刻面模型)
REBOOT模型是基于已有软构件的一种刻面分类和检索模型,从各个角度,即刻面(Facet)刻画软构件属性。
(3)青鸟模型
北京大学青鸟工程以三个视角(形态、层次和表示)和九个方面定义构件模型。
(1) 概念 :对构件功能的抽象描述。
(2) 操作规约:用来指称构件对外提供的、可被请求的服务。
(3) 接口:给出了构件的对外行为描述。
(4) 类型:用于定义“什么值可用作为操作参数”。
(5) 实现体:这是构件的具体实现部分,是实际完成被请求服务的系统。
(6) 构件复合:构件通过复合组成系统。
(7) 构件性质:指明构件的形态、层次和表示。
(8) 构件注释:描述和构件库相关的其他性质。
(9) 构件语景:描述构件的软、硬件使用环境和实现依赖。
青鸟构件模型更多地关心构件的易理解性、封装性及间关系,通过给构件提供明确的对外接口实现服务提供者和其服务请求者的分离,更多地关心构件及其使用者间的交互,特别是对构件使用者有意义的部分。
目前比较成熟的应用在通用计算机系统环境中的构件模 型 实 现 技 术 有 Microsoft 公 司 提 出 的 构 件 对 象 模 型COM(Component Object Model)、对象管理组织 OMG 提出的通用对象请求代理体系结构 CORBA(Common Object Request Broker Architecture)以及 SUN 公司提出的 EJB(Enterprise JavaBeans)构件技术。每种技术都具有不同的优势,分别适用于通用计算机系统环境下不同规模和类型的应用。
2. 嵌入式数控系统分析
数控系统作为一个面向控制应用的有机整体,其控制功能的实现是由众多的硬件和软件按照一定的规则,如拓扑关系、同步关系、通讯协议等关系所组成。嵌入式数控系统虽然有着硬件平台选择多样性与操作系统硬实时性的要求,但与传统数控系统一样有如下功能:
人机界面输入:输入数控系统的加工程序段、刀具偏置、刀具半径、控制参数、零点坐标、补偿数据等。
译码:对输入程序段含有零件的轮廓信息(起点、终点、直线、圆弧或者曲线要求的加工速度),以及M、S、T辅助信息(换刀、换档、冷却液开关等),计算机通过译码程序来将加工程序翻译成计算机内部能识别的语言,并对输入的程序段进行语法检测,对不符合加工精度范围的进给坐标进行圆整。
刀补预处理:刀补预处理一般包括刀具半径补偿,刀具偏置的坐标换算,从而得到刀具中心运行轨迹,并对加工速度进行加减速处理。使得机床运行比较平稳,减少运行冲击。
插补:即根据给定的曲线类型(如直线、圆弧或者高次曲线)起点、终点以及速度,在起点和终点之间进行数据点的密化处理。
运动控制:将计算机送出的位置进给脉冲或者进给速度指令,经变换和放大后转化为伺服电机的转动,并根据光电码盘或光栅等信号进行速度和位置控制。
信息处理:对于数控机床上的如刀具应力、振荡、测量、油温等传感器信号进行采集,并分析机床可能引起的误差,以及故障等及其相关模式识别。
开关量I/O:负责对于开关量方面的I/O响应。
管理调度:负责对于各功能模块的协同。
辅助功能:现场总线接口、以太网接口等。如图1所示。
图1 嵌入式数控系统结构
3.嵌入式数控系统构件模型
数控系统构件是可预制和可重用的软件部件, 是实现领域应用的功能封装体. 依据对数控领域知识的抽象程度和构造逻辑的划分需要, 可生成不同粒度级的构件元素。
构件通过接口定义了同外界信息传递和承担的系统功能,是实现构件服务的明确规约。构件接口代表了构件同环境的全部交互内容,也是唯一的交互途径。除此之外,环境不应对构件做任何其他与接口无关的假设。
数控系统本身是信息加工系统,信息流动的过程也就是数控加工的过程,上个构件产生的信息成为下个构件触发引擎,通过CAD/CAM自动生成或者手动输入的加工信息流通过一定的方式发送给数控装置,数控装置内部通过对于信息流的解码、转换形成各个有机构成部分信息处理内容,在内部进行处理后,输出相应的位置信号给伺服系统,经过电动机和滚珠丝杠副驱动工作台或刀具按照设定要求移动,同时结合辅助功能和现场开关量的信息处理,并对数控系统的运行状况进行监测和保护。数控系统的连续控制一方面包括了构件间的信息流,同时又包含了大量的离散行为,如对手动模式、紧急情况及故障情况的响应,对不同的加工模式如快速移动、粗加工、精加工的处理,不同控制模式如位置控制、速度控制的切换等。因而在数控程序运行的不同时期,它们将会有不同的状态。因此必须在构件模型中反映出状态的转化。
另外考虑到嵌入式数控系统是在实时方式下工作,而且资源受限,这就要求嵌入式构件不仅要提供足够的功能,还必须满足系统的时限以及内存限制等要求。同时,和传统的软件开发相比,嵌入式系统软构件和硬件联系紧密,软件的失误可能会导致物理系统的破坏。因此嵌入式构件必须具备高的可靠性——让用户做版本测试代价太昂贵。我们把这些体现嵌入式构件性能的指标称作嵌入式构件的服务质量(QoS)属性。QoS属性是用户选择合适的嵌入式构件的一个重要依据。这也是嵌入式构件区别通用构件的一个重要特色。
综上所述,构件模型设计如图2。
图2 嵌入式数控系统构件模型
在图中,左上方是构件的接口部分,一个构件可以支持多个不同的接口,这些接口刻画了构件对外提供的服务以及要求的环境服务,体现了该构件同环境的交互。上方中间用带输出的有限状态机刻画构件的行为,构件接收到外部事件消息后,根据当前所处的具体状态,在构件内部进行状态变迁,实现对数控系统事件的实时响应。右上方是构件的属性部分,包括构件实现的功能属性以及描述属性、约束属性、配置属性和服务质量(QoS)属性等非功能属性。
此模型不仅可以描述一般的原子构件和复合构件,其还可以描述基于活动对象的构件系统,所谓基于活动对象的构件系统就是具有某种功能和任务关联的构件和子构件系统的集合,从而把密切关联、经常一同复用以实现某个常用数控功能的构件组织成为一个构件系统,它是可以作为构件库存储的又一基本单位。其不同于一般意义上的原子构件和复合构件,基于活动对象的构件系统是一种粗粒度的构件,即每个活动对象构件在物理上不小于数控系统上的调度任务(线程),其将功能相关或者周期相关的构件集成为一个活动对象任务,每个任务完成一定的功能,任务可以嵌套,即可在一个任务中包含一个或几个下级任务,一系列相关的任务对象构件组成某种类型的数控系统。
基于活动对象构件系统在活动对象构件的构成上可以支持细粒度的构件集成,从而容易实现更高层次的数控开放性和更多的选择。另一方面基于活动对象的构件系统集成数控系统,有利于提高复用的粒度和相关构件的复用,从而减少系统的复杂性和系统集成的难度。
4. 总结
在嵌入式数控系统软件开发中利用软件复用技术,特别是构件复用,既可以满足嵌入式数控系统模块化、可扩展、可集成等要求,又缩短了数控系统的开发周期,同时也提高了数控系统的可靠性。
本文通过研究嵌入式数控系统领域下的构件特征,提出了嵌入式数控系统构件模型,已初步建立起嵌入式数控系统的理论构架。但在理论和实践方面尚有许多工作要做,仍有待于进一步研究。
参考文献
1. 张明亮 解旭辉 李圣怡, 开放式数控体系结构的初步研究[J], 中国机械工程, 2001,12(11):
2. Shige Wang, Kang G. Shin, Constructing Reconfigurable Software for Machine Control Systems, IEEE Transactions on Robotics and Automation, Vol. 18, No. 4, 2002, pp475-486
3. 李霞 王永章 郑佳昕 梁宏斌, 开放式软数控系统的关键技术研究及实现[J], 组合机床与自动化加工技术, 2003,10:6-8
4. 万麟瑞 胡 宏 孙红星. 面向构件的软件开发方法学研究[J], 小型微型计算机系统, 2003, 24(3):365-370
5. 董爱民 一种基于CAN总线的嵌入式Linux数控系统[J], 微计算机信息 2007,7-2:26-28