基于WindowsCE.net的开放式数控系统研究

发布日期:2011-11-25    兰生客服中心    浏览:1961

介绍了开放式数控系统的产生背景、特点及软硬件平台现状,研制基于Windows CE.net平台的开放式数控系统,介绍了基于Windows CE.net的开放式数控系统的实现方案。



1 引言

    自从1952年第一台数控机床在麻省理工学院研制成功以来,随着计算机技术的飞速发展,数控系统的功能得到极大的扩展。随着技术、市场、生产结构等方面的快速变化,用户对数控系统提出了更高的要求: 希望能够根据不同的加工要求,迅速、高效、经济地构筑面向客户的控制系统;逐渐降低生产厂家对控制系统的高依赖性;大幅度降低维护和培训费用;改变过去数控系统的封闭性设计模式;适应未来车间面向任务和订单的生产模式,使底层生产控制系统更简便有效。在这种背景下,开放式数控系统应运而生。其主要目的是解决当今变化繁杂的需求与过去控制系统专一固定之间的矛盾,使数控系统易变、紧凑、廉价。


2 开放式数控系统的定义及特点

    按照IEEE对于开放式系统的定义,一个开放式系统具有以下能力:经过恰当实现的应用程序能够在不同厂商的多个平台上运行,能够与其它系统的应用程序互操作,并且能够提供一致性的人机交互界面。这个定义是针对信息技术中的开放性而言的。开放式数控系统作为一种开放式系统,其核心是建立一种对数控系统的软硬件开发商、机床制造商和最终用户都开放的体系结构和标准,使数控系统不依赖于特定厂家,达到可互联、可互操作、可重组和可互换的目的。根据开放式数控系统的要求,除它的硬件要采用基于标准总线的模块化设计外,其软件也应采用平台技术、统一的标准规范(如标准的操作系统、通信机制、语言接口等)。


    开放式数控系统应具有以下5个基本特点:

    (1)由一系列逻辑上独立的构成要素组成;

    (2)提供系统各个构成要素与系统之间接口的完善规范和标准,来自不同厂商的符合规范的构成要素能够构成一个完整的数控系统;

    (3)能够动态改变系统的拓扑结构;

    (4)能够实现与其它自动化系统与软件模块的互操作;

    (5)能够提供一致性好的人机界面。

    因此,选择通用的系统平台是实现数控系统开放化的重要前提。

    工业PC以其成熟的技术和稳定的性能已经在控制领域得到了广泛应用,PC机开放的体系结构也为数控系统提供了一个很好的开放的硬件平台,在工业PC的基础上进行数控系统的开发已经成为大家的共识。而软件平台的选择至今没有形成一致的意见。


3 开放式数控系统的软件平台现状

    开放式数控系统的软件平台在很大程度上决定了数控系统的工作方式、工作效率及其开放程度。数控系统的软件是在软件平台的基础上对不同功能模块的集成,通过分时共享或中断技术来实现数控系统的实时多任务控制。目前大多数基于PC的数控系统采用DOS作为其软件平台,也有少数采用Windows9x,WindowsNT,Windows 2000等。鉴于这些操作系统各自的弱点,无法完全满足开放式数控系统的要求。本文提出采用Microsoft公司的嵌入式操作系统WindowsCE.net作为开放式数控系统的软件平台。


3.1 WindowsCE.net简介

    自从1999年Microsoft公司推出嵌入式操作系统Windows CE3.0以来,由于在技术上取得了较大的进展,占领了一部分嵌入式操作系统市场。紧接着该公司于2002年4月推出了Windows CE.net,性能上有了更进一步的提高,如支持蓝牙技术,支持TCP/IPv6,专用开发工具Platform Builder的改进等,引起了更大的关注,并在实时多任务控制领域得到了成功的应用。


图1  Window CE体系结构


图1  Window CE体系结构


表1  Windows CE.net中断延时数据表


表1  Windows CE.net中断延时数据表



    Windows CE.net并不是Windows 9x/NT/2000的一部分或缩减版本,而是Microsoft公司全新设计开发的一种模块化(可组装定制)、实时的、有强大通信能力的、抢先式多任务的32位嵌入式操作系统。它可以运行在多种体系结构的CPU上,内嵌了对多种通信协议和多媒体特性的支持,如无线设备、消费类电子、工业自动化装置等都能采用其作为控制系统。



    一个基于Windows CE.net的平台主要由以下几部分组成:分别是内核模块、对象存储/文件系统模块、网络与通信模块、GWES模块(图形、窗口、事件子系统)。此外还有3个重要组成部分:驱动程序、设备管理器、OAL(OEM适配层,OEM Ad-aptation Layer)。图1所示即为一个基于Windows CE的平台的体系结构。


3.2 Windows CE.net的特点

    WindowsCE.net具有以下特点,使得它适合作为快速开发开放式数控系统的软件平台:

    (1)Windows CE.net满足开放式数控系统的实时性要求。

    尽管WindowsCE.net操作系统以前的一些版本提供了一些RTOS(实时操作系统)功能,但是自从Windows CE.net以来,内核的许多重大改变极大地提高了WindowsCE的实时性能。WindowsCE.net的实时性能主要通过以下技术实现:支持嵌套中断,中断处理分为中断服务理性程序(ISR)和中断服务线程(IST);高优先级的中断(IST)并不需要等待低优先级的中断服务例程(ISR)完成;256个线程优先级,可以灵活调度嵌入式系统的任务;通过固定高优先级中断服务线程(1ST)的最大调度延迟改善线程响应时间;使用API函数CeSet Thread Quan tum和CeGet Thread Quan tum修改操作系统中线程的线程量;中断服务子程序的响应时间非常短;支持信号量。


    Windows CE.net的设计目标可以满足95%的硬实时系统的要求。它1ms定时周期的误差约为100us,在200MHz的X86系统下可达到501us。如果考虑其它因素,如CPU类型、时钟频率、总线速度等的影响,许多实际的基于WindowsCE.net平台的响应时间更短。因此,对于数控系统中任务周期为4ms的插补和位控等实时性较高的线程,Windows CE.net完全可以满足要求。实时能力的另一个中断指标是中断延时。表1列出了微软在参考平台上测得的中断延迟数据。


    (2)Windows CE.net满足开放式数控系统的模块化以及功能上柔性化的要求。

    WindowsCE.net的模块化设计使得开放式数控系统开发者和应用系统开发者能够根据产品的不同需求定制自己的专用操作系统。既可定制一个只包括内核的,大小仅为几百K的最小操作系统,也可定制包括所有组件的最大操作系统。Windows CE.net提供了良好的开发方式,可以方便地对内核进行增加与裁减。它完全满足开放式数控系统的模块化和功能柔性化的要求。


    (3)Windows CE.net可以兼容市场上大量的软硬件资源,具有强大的网络通信功能。

    Windows CE.net支持目前市场上的多数硬件设备,为开放式数控系统的硬件选配提供了极大的方便。Windows CE.net采用与Windows 9x/2000相同的编程模型,它的APl是Win32 API的子集,大约有600个APl函数,可以实现所有的嵌入式应用。Windows CE.net还支持当前流行的软件技术和运行库,如MFC、ATL、COM。Win32的兼容性可以很容易地把现有的Windows应用程序移植到Windows CE中。目前有许多开发人员精通Windows编程技术,他们只需学习很少的知识就可以开发Windows CE.net应用程序。


    Windows CE.net具有强大的通信能力,广泛支持各种通信硬件、局域网连接以及拨号连接,并提供与PC、内部网以及Internet的连接,包括用于应用级数据传输的设备至设备间的互连。完全能够满足开放式数控系统的联网,尤其是与互联网联网,从而实现车间级和设备级网络化制造的要求。Windows CE.net的一系列特点决定了开发基于Windows CE.net的数控系统,既可以提高系统的性能、可靠性,而且容易实现系统的模块化、开放化、网络化,还能提供友好的用户界面和窗口工作环境,同时又具有经济性。因此,研究基于Windows CE.net的开放式数控系统符合数控系统的发展趋势,具有重大的现实意义。


4 基子Windows CE.net的开放式数控系统的实现方案

    整个系统由一台基于Windows CE.net的主机(联想IPC 800A工控机)外加一些功能模块组成。


    Windows CE.net支持广泛的硬件平台和外部设备,因此可以较方便的为开放式数控系统组建基于Windows CE.net的硬件平台。数控系统借助于各种插到总线插槽的数控模板、接口模板来完成系统功能。软件上一般表现为定时往某一数控模块的某一地址写入数据或读取数据。笔者采用的是美国Delta tau Data systems公司的PMAC(programmable Multi-Axis Controller)多轴运动控制卡。系统硬件组成如图2所示。


    开放式数控系统的软件开发主要包括两部分:即数控系统应用程序的开发和设备驱动程序(主要是数控模块的驱动程序)的开发。由于Windows CE.net开发工具Platform Builder4.2只提供了最基本的一些设备驱动程序,而开放式数控系统中的各种板卡的驱动程序必须由自己开发。所有的Windows CE.net设备驱动程序都是动态链接库(DLL),可以用标准的Windows CE API实现。Windows CE.net提供了两种驱动程序模型:流接口驱动程序和本地驱动程序。经研究,认为数控系统硬件板卡的驱动程序符合流接口驱动程序的基本特点,可以用Platform Builder4.2开发。


    数控系统是一个典型的实时多任务系统。系统应用程序中有许多任务,如位置控制、插补计算、PLC任务、程序解释、用户界面等。各任务或强或弱都具有实时性要求。从各任务对实时性要求的角度结合Windows CE.net的多任务实现方法,可将其划分为:

    (1)实时突发性任务:这类任务的特点是任务的发生具有随机性和突发性,它们往往有很强实时性要求。它们主要包括故障中断(急停、机械限位、硬件故障等)、机床PLC中断等。

    (2)实时周期性任务:这类任务是精确地按一定的时间间隔发生的。主要包括加工过程中的插补运算、位置控制等任务。为了保证加工精度和加工过程的连续性,这类任务的实时性是关键。在任务的执行过程中,除系统故障外,不允许被其它任务中断。

    (3)弱实时性任务:这类任务的实时性要求相对较弱,它们只要保证在某一段时间内得以运行即可。这类任务主要包括:人机界面管理、程序解释等。


图2  开放式数控系统硬件组成图


图2  开放式数控系统硬件组成图


图3  基于Windows CE.net开放式数控系统软件结构图


图3  基于Windows CE.net开放式数控系统软件结构图



    图3所示为基于Windows CE.net的开放式数控系统软件结构图。

    对于数控系统应用程序,主要是完成插补计算、程序解释、用户界面、动态显示等功能。可以利用eMbedded Visual C++4.0来完成应用程序的开发。充分利用Windows CE.net的多线程处理能力,将应用程序的各功能模块分为几个主要的线程,并根据实时性的不同分配以不同的优先级,由内核统一管理,协调运行。



5 结论

    Windows CE.net内核紧凑小巧,灵活可靠,实时性强,能够满足开放式数控系统的需求。而且其软硬件资源丰富,网络通信功能强,容易实现系统的开放性和网络化。因此研究与开发基于Windows CE.net的开放式数控系统具有重大的现实意义。