一种基于Windows的易伸缩数控系统转让专利

申请号 : CN201010022854.1

文献号 : CN101788803B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 牟凤林黎建伟汤同奎

申请人 : 上海维宏电子科技有限公司上海奈凯电子科技有限公司

摘要 :

本发明公开了一种基于Windows的易伸缩数控系统,该系统中的应用程序层实现整个系统数据的处理,中间层以驱动程序为核心,结合Windows操作系统内核提供的服务,通过自行建立的共享内存交换区及两个单向的环形缓冲区来与应用程序层发生数据交换;底层硬件层为硬件端子板,通过PCI总线与PC连接,主要负责为数控系统提供精准的定时中断及一个40组单元的指令缓冲区。本发明通过大范围改造MFC形成独特的NC System FrameWork(数控系统软件框架),并在此基础上开发的数控系统,它涉及一种基于Windows的全软件数控系统,以解决现有基于PC的开放式数控系统存在的重构性和实时性难以兼顾的问题。

权利要求 :

1.一种基于Windows的易伸缩数控系统,其特征在于,所述数控系统包括应用程序层、中间层以及底层硬件层;

所述应用程序层实现整个数控系统的数据处理,包括负责数控系统任务调度、定时器管理、消息处理机制和线程管理工作的控制内核模块,负责与操作人员的信息交互工作的用户界面模块和界面处理基础库,负责系统逻辑控制功能的软PLC模块,负责系统各种参数读入、保存和分配工作的参数解析模块,负责将零件图形文件转化成数控系统可处理的加工数据的图形文件处理模块,负责处理加工前的仿真功能的仿真图形处理模块,负责将加工代码转化成数控系统可识别的数据格式的加工代码编译模块,负责轨迹控制点的密化和生成工作的轨迹插补模块,所述控制内核模块协调数控系统各模块完成任务处理工作;

所述中间层以驱动程序为核心,结合Windows操作系统内核提供的服务,其包括共享内存交换区,上、下行环形缓冲区以及驱动程序模块,通过自行建立的共享内存交换区及两个单向的上、下行环形缓冲区来与应用程序层发生数据交换,并通过驱动程序模块实现应用程序层与底层硬件层的数据连接;

所述底层硬件层为硬件端子板,其中通过PCI总线与PC连接,负责为数控系统提供精准的定时中断及相应的指令缓冲区。

2.根据权利要求1所述的一种基于Windows的易伸缩数控系统,其特征在于,所述控制内核模块通过上、下行环形缓冲区和共享内存交换区与驱动程序模块发生通信。

3.根据权利要求1所述的一种基于Windows的易伸缩数控系统,其特征在于,所述用户界面模块与界面处理基础库一起完成任务处理工作,并显示由驱动程序模块反馈回来的数据。

4.根据权利要求1所述的一种基于Windows的易伸缩数控系统,其特征在于,所述软PLC模块,通过驱动程序模块、共享内存交换区以及上、下行环形缓冲区以及控制内核模块来完成开关量的逻辑控制和过程控制。

5.根据权利要求1所述的一种基于Windows的易伸缩数控系统,其特征在于,所述参数解析模块通过控制内核模块将参数信息送至各个模块中。

6.根据权利要求1所述的一种基于Windows的易伸缩数控系统,其特征在于,所述图形文件处理模块与基本运算支持库和控制内核模块配合完成加工文件的格式转换。

7.根据权利要求1所述的一种基于Windows的易伸缩数控系统,其特征在于,所述仿真图形处理模块与轨迹插补模块和控制内核模块完成二维/三维图形的仿真。

8.根据权利要求1所述的一种基于Windows的易伸缩数控系统,其特征在于,所述轨迹插补模块用于轨迹规划、位置控制、速度规划、补偿处理、解析线程管理和轨迹点密化工作;

并包含有四个通用型数据结构:第一通用型数据结构用于存放译码后数据、第二通用型数据结构用于将加工文件描述的加工轨迹快速加载至界面、第三通用型数据结构用于存放插补后的有关运动指令的数据点以及第四通用型数据结构用于存放插补后所有指令的数据点。

9.根据权利要求1所述的一种基于Windows的易伸缩数控系统,其特征在于,所述上、下行环形缓冲区的输入、输出端处在不同的中断请求级别的代码上,该上、下行环形缓冲区用于共享内存交换区,实现驱动程序模块往里面读、写数据,应用程序层中各模块往里面写、读数据。

10.根据权利要求1所述的一种基于Windows的易伸缩数控系统,其特征在于,共享内存交换区,用于实现操作系统Ring0层和Ring3层之间的数据交换;并实现驱动程序模块与应用程序中相应的模块共享同一块物理内存。

11.根据权利要求1所述的一种基于Windows的易伸缩数控系统,其特征在于,所述驱动程序模块根据应用程序层中各模块发送过来的运动数据来向端子板输入控制信号,并接受来自端子板的中断信号,并反馈给应用程序层中相应的模块。

说明书 :

一种基于Windows的易伸缩数控系统

技术领域:

[0001] 本发明涉及一种数控技术,具体涉及一种基于Windows操作系统和模块化设计结构的全软件数控系统。背景技术:
[0002] 制造业是一个国家的基础行业,它直接体现了一个国家的生产力水平。数控技术是提高产品质量和劳动生产率的重要手段,代表着当今的先进生产力。因此,数控技术水平的高低已成为衡量一个国家制造业现代化程度的主要标志。
[0003] 传统的数控系统虽然在实时性方面表现不错,但因其采用的是封闭式的和专机专用的体系结构,这种结构最大的缺点是开放性差,具体表现在难以根据实际应用情况来对系统结构进行伸缩调整,如:加入新的控制算法和功能。
[0004] 目前,随着信息化技术特别是计算机技术的飞速发展,基于Windows操作系统的开放式数控系统越来越受到人们关注。Windows在PC操作系统中一直占据着统治地位,它作为当今最流行的操作系统,在数据处理、文档管理、多任务调度、多媒体和网络通信等方面表现出强大的功能,而且日益完善的软硬件接口标准更让人们看到了真正实现数控系统开放化的曙光。
[0005] 然而,Windows不是一个实时操作系统,它是一个多任务操作系统。因此,不能直接用于数控系统软件的开发,其根本原因是应用程序运行在访问权限最低的Ring3层,不能直接对硬件进行操作,难以保证精确的定时控制。目前解决这个问题主要有以下方式:
[0006] (1)基于双处理器的方案。上层PC的处理器运行Windows平台和数控系统中对实时性要求不高的部分,如:用户界面、加工代码编译、文件管理等。底层处理器,如DSP等,则完成对实时性要求较高的部分,如:端口控制、轨迹插补等。这一方案虽然既发挥了Windows的长处,又满足了实时性要求。但存在着硬件规模太大,不利于可靠性的提高和成本的降低问题。
[0007] (2)基于实时操作系统的全软件方案。目前广泛应用在数控系统上的实时操作系统有:WinCE、RTLinux、ucOS-II等,这种方案虽能通过直接操纵硬件来解决实时性的问题,但它的软、硬件兼容性并不好,基本不能借用第三方的软、硬件资源,这也反相地增加了研发的难度和成本。
[0008] (3)基于Windows内核的实时化改造方案。在Windows内核中加入实时补丁,如:RTX等。但这一方案必须向微软公司购买权限,这将使研发成本进一步加大。而且,改造后实时性的好坏还跟研发人员对内核的理解程度有关,具有很大的不可靠性。
[0009] 传统数控系统和基于双CPU解决方案的数控系统的大多数功能(包括译码、插补、端口控制)采用硬件来实现,目的是硬件在处理速度上存在优势。但是,这种依靠硬件来提高处理速度的系统却难以满足重构性的要求,对其中一个或几个功能模块进行修改往往需要重新对整个解决方案进行评估、设计和测试,而且,硬件的可靠性(受干扰能力)是难以保证的问题,出现问题也难以进行快速、有效的维护。
[0010] 一般的全软件数控系统将大多数功能(包括译码、插补、端口控制)采用软件来实现,目的是利用软件行业先进的成果,提高系统模块可重构的性能,使系统改造变为只是修改代码,这无疑在提高数控系统的重构性上拥有很大的优势。但是,这种系统如果是基本Windows操作系统开发的,则存在实时性差的问题(应用程序不能直接操作硬件,系统提供的定时器不能满足数控要求),如果这种系统是基于实时操作系统开发的(wince、RTLinux等),则存在开发的系统软件兼容性差(不能利用第三方软件,很多设备的驱动程序需要自行开发等)。发明内容:
[0011] 本发明为了解决现有基于全软件方式构建的数控系统普遍存在的实时性与可重构性难以兼顾的问题,提供一种基于MFC开发的易伸缩全软件数控系统。
[0012] 为了达到上述目的,本发明采用的具体技术方案如下:
[0013] 一种基于Windows的易伸缩数控系统,该包括应用程序层、中间层以及底层硬件层;
[0014] 所述应用程序层实现整个数控系统的数据处理,主要包括负责数控系统任务调度、定时器管理、消息处理机制和线程管理工作的控制内核模块、负责与操作人员的信息交互工作的用户界面模块和界面处理基础库、负责系统逻辑控制功能的软PLC模块、负责系统各种参数读入、保存和分配工作的参数解析模块、负责将零件图形文件转化成数控系统可处理的加工数据的图形文件处理模块、负责处理加工前的仿真功能的仿真图形处理模块、负责将加工代码转化成数控系统可识别的数据格式的加工代码编译模块、负责轨迹控制点的密化和生成工作的轨迹插补模块,所述控制内核模块协调数控系统各模块完成任务处理工作;
[0015] 所述中间层以驱动程序为核心,结合Windows操作系统内核提供的服务,其主要包括内存交换区,上、下行环形缓冲区以及驱动程序模块,通过自行建立的共享内存交换区及两个单向的上、下行环形缓冲区来与应用程序层发生数据交换,并通过驱动程序模块实现应用程序层与底层硬件层的数据连接;
[0016] 所述底层硬件层为硬件端子板,其中通过PCI总线与PC连接,负责为数控系统提供精准的定时中断及相应的指令缓冲区。
[0017] 所述控制内核模块通过上行、下行环形缓冲区和共享内存交换区与驱动程序模块发生通信。
[0018] 所述用户界面模块与界面处理基础库一起完成任务处理工作,并显示由驱动程序模块反馈回来的数据。
[0019] 所述软PLC模块,通过驱动程序模块、共享内存交换区以及上、下行环形缓冲区以及控制内核模块来完成开关量的逻辑控制和过程控制。
[0020] 所述参数解析模块通过控制内核模块将参数信息送至各个模块中。
[0021] 所述图形文件处理模块与基本运算支持库和控制内核模块配合完成加工文件的格式转换。
[0022] 所述仿真图形处理模块与轨迹插补模块、控制内核模块完成二维/三维图形的仿真。
[0023] 所述迹插补模块用于轨迹规划、位置控制、速度规划、补偿处理、解析线程管理、轨迹点密化工作;并包含有四个通用型数据结构:用于存放译码后数据、用于将加工文件描述的加工轨迹快速加载至界面、用于存放插补后的有关运动指令的数据点以及用于存放插补后所有指令的数据点。
[0024] 所述上、下行环形缓冲区的输入、输出端处在不同的中断请求级别的代码上,该缓冲区用于共享内存交换区,实现驱动程序模块往里面读、写数据,应用程序层中各模块往里面写、读数据。
[0025] 共享内存交换区,用于实现操作系统Ring0层和Ring3层之间的数据交换;并实现驱动程序模块与应用程序中相应的模块共享同一块物理内存。
[0026] 所述驱动程序模块根据应用程序层中各模块发送过来的运动数据来向端子板输入控制信号,并接受来自端子板的中断信号,并反馈给应用程序层中相应的模块。
[0027] 根据上述技术方案得到的本数控系统能够有效的解决现有基于PC的开放式数控系统存在的重构性和实时性难以兼顾的问题。
[0028] 本发明采用的技术方案在解决这个两难问题上的特点是:
[0029] 重构性上。采用全软件的设计方案,通过大范围改造MFC,结合Win32 API和相应功能函数库,构成一套适合数控系统开发的Frame Work,因此,可很好地解决重构性问题(系统改造变为只是修改代码)。
[0030] 实时性上。硬件上采用端子板,负责控制信号的输出和采集,软件上采用自行开发WDM的方式来实现上位机软件对底层硬件的直接控制功能,这种方式可获得较高精度的定时器控制(最高1ms)。同时,为了进一步解决数据传输的瓶颈,在上位机程序和驱动程序之间设计了两条环形数据缓冲区,并在物理内存上开辟了一块缓冲池,用于驱动程序与硬件数据的交互。这样就解决数据传输的流畅性,从根本解决了运动控制的实时性问题。附图说明:
[0031] 以下结合附图和具体实施方式来进一步说明本发明。
[0032] 图1为本发明的系统框架示意图。具体实施方式:
[0033] 为了使本发明实现的技术手段、创作特征、达成目的与功效易于明白了解,下面结合具体图示,进一步阐述本发明。
[0034] 本发明为能够实现基于全软件方式构建的数控系统能够兼顾实时性与可重构性,提供了如图1所示的基于Windows操作系统和模块化设计结构的全软件数控系统。该系统应用于PC中,并运行在Windows操作系统环境下。
[0035] 参见图1,整个数控系统可以分为应用程序层、中间层以及底层硬件层三部分。
[0036] 其中应用程序层以应用程序接口函数库、微软基本类库、C运行时库、标准化组件库及基本运算支持库为基础构建通用的Windows数控系统框架。应用程序层中实现各功能的应用程序主要包括:控制内核模块、用户界面模块、界面处理基础库、软PLC模块、参数解析模块、图形文件处理模块、仿真图形处理模块、加工代码编译模块、轨迹插补模块,其中控制内核模块为整个系统的核心,其协调数控系统各模块完成任务处理工作。
[0037] 中间层以驱动程序为核心,结合Windows操作系统内核提供的服务,其主要包括内存交换区,上、下行环形缓冲区以及驱动程序模块,通过自行建立的共享内存交换区及两个单向的上、下行环形缓冲区来与应用程序层发生数据交换,并通过驱动程序模块实现应用程序层与底层硬件层的数据连接。
[0038] 底层硬件层为硬件端子板,通过PCI总线连接PC和执行元件(数控设备、电机驱动器等)。为数控系统提供精准的中断定时服务,接收来自PC机的运动控制指令,并将指令发至一块拥有40个单元的指令缓冲区,再送到执行元件。
[0039] 整个数控中的个功能模块具体说明如下:
[0040] 控制内核模块,作为数控系统软件的核心模块,主要承担一些基础性的工作,并不对具体的任务进行处理,它相当于一个任务调度器,主要包含线程管理、消息管理、定时器管理、运行方式管理、系统状态管理等功能,协调数控系统各模块完成任务处理工作。通过上行、下行环形缓冲区和共享内存交换区与驱动程序模块发生通信。
[0041] 用户界面模块,处理与操作人员之间的信息交互工作,包括各种加工、系统信息的显示、各种参数数据的操作和配置、运动方式控制、加工文件管理等。它与界面处理基础库一起完成任务处理工作,并将驱动程序模块反馈回来的数据显示给操作人员。
[0042] 软PLC模块,通过驱动程序模块、上行、下行环形缓冲区、共享内存交换区和控制内核模块来完成开关量的逻辑控制和过程控制功能。
[0043] 参数解析模块,对参数配置文件中的字符信息进行解析,并通过控制内核模块将参数信息送至各个模块中。
[0044] 图形文件处理模块,目前支持DXF、PLT、NCE、ENG、G等格式的加工文件,该模块与基本运算支持库和控制内核模块一同完成加工文件的格式转换功能。
[0045] 仿真图形处理模块,与轨迹插补模块、控制内核模块一同完成二维/三维图形仿真功能。
[0046] 加工代码编译模块,将加工文件翻译成轨迹插补模块可以识别并处理的数据格式。
[0047] 轨迹插补模块,包括轨迹规划、位置控制、速度规划、补偿处理、解析线程管理、轨迹点密化等功能和四个通用型数据结构:NCCODE用于存放译码后的数据;NCNODE用于将加工文件描述的加工轨迹快速加载至界面;Interp_step_t存放插补后的有关运动指令的数据点;NCCMD用于存放插补后所有指令的数据点。
[0048] 上、下行环形缓冲区,其实现通过一个template模板类描述,大小为存放N个T类型数据的数组,输入端和输出端各只有一个使用者,这种机制不必考虑同步问题,不借助任何锁实现,因此输入输出端可以处在不同的中断请求级别的代码上。该缓冲区用于共享内存交换区,驱动程序往里面写数据,应用程序从里面读数据,反之亦然。
[0049] 共享内存交换区,用于实现操作系统Ring0层和Ring3层之间的数据交换。它了在物理内存上划出一块区域,并将首地址映射到用户模式下,从而实现了驱动程序和应用程序共享同一块物理内存。在数控系统启动时进行该块内存的映射工作,在数控系统关闭时释放。
[0050] 驱动程序模块,用于连接应用程序和硬件端子板,它一方面根据应用程序发送过来的运动数据来向端子板输入控制信号,另一方面接受来自端子板的中断信号,并反馈给应用程序。其框架主要包含一个Pnp(即插即用)扩展状态机,IRP的分发、串行化以及同步。
[0051] 根据上述技术方案得到的数控系统,其具体的数控过程如下:
[0052] PC机启动并装载Windows操作系统,启动本数控系统,初始化控制内核模块并分配各个模块的线程优先级,置来自驱动的中断请求优先级最高,建立共享内存交换区并将其首地址映射到用户模式;
[0053] 软PLC模块启动并对底层反馈的端口状态进行检测,用户界面模块启动,并执行各种参数文件、界面配置文件、加工文件的加载;
[0054] 控制内核模块将加工文件路径传给加工代码编译模块,加工代码编译模块进行检错并执行编译;
[0055] 控制内核模块将编译后的数据地址协同加工参数一同发给轨迹插补模块,轨迹插补模块对数据进行运算并存入指定缓冲区;
[0056] 控制内核模块将插补后的数据通过共享内存交换区传给驱动程序模块,驱动程序模块按照硬件端子板的中断信号一方面往硬件缓冲区发送数据;
[0057] 接着由端子板发送执行单元,一方面把发送的数据拷贝一份回发给控制内核模块;
[0058] 最后送至用户界面模块显示,中断返回,数控过程结束。
[0059] 以上显示和描述了本发明的基本原理和主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护范围由所附的权利要求书及其等效物界定。